https://sourceware.org/bugzilla/show_bug.cgi?id=30294
Bug ID: 30294
Summary: Infinite recursion expanding macro
Product: binutils
Version: 2.39
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: potuz at potuz dot net
Target Milestone: ---
The [hashtree](https://github.com/prysmaticlabs/hashtree) fails to compile
since version 2.39 of binutils. GNU's assembler crashes with a SIGSEGV on an
infinite recursion expanding a macro. This regression was introduced in [commit
0x4faaa10f3fabb345aca006ed67a8be97dc924e9c](https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=4faaa10f3fabb345aca006ed67a8be97dc924e9c).
## Steps to reproduce
1. Download [this file from
hashtree](https://github.com/prysmaticlabs/hashtree/blob/main/src/sha256_avx_x1.S)
2. Try to compile it as
```
$ $ cc -c sha256_avx_x1.S
cc: internal compiler error: Segmentation fault signal terminated program as
```
The infinite recursion happens expanding the macro that [rotates the
arguments](https://github.com/prysmaticlabs/hashtree/blob/main/src/sha256_avx_x1.S#L160-L170)
and it recurses here
https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gas/config/tc-i386-intel.c;h=c139c584573c45e9779a583f12f6b6a0641c2844;hb=HEAD#l551
3. Repeat 2 with the commit right before the one marked and compilation
succeeds.
The above assembly is a mod of Intel's assembly from
https://github.com/intel/intel-ipsec-mb/blob/main/lib/avx_t1/sha256_one_block_avx.asm#L159-L171
--
You are receiving this mail because:
You are on the CC list for the bug.