bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/30294] New: Infinite recursion expanding macro


From: potuz at potuz dot net
Subject: [Bug gas/30294] New: Infinite recursion expanding macro
Date: Thu, 30 Mar 2023 22:46:35 +0000

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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]