https://sourceware.org/bugzilla/show_bug.cgi?id=30292
Bug ID: 30292
Summary: Unbounded recursion/infinite loop in eqv expansion
Product: binutils
Version: 2.39
Status: UNCONFIRMED
Severity: critical
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: charlechaud at gmail dot com
Target Milestone: ---
Created attachment 14791
--> https://sourceware.org/bugzilla/attachment.cgi?id=14791&action=edit
One of 5 files triggering the infinite loop (run out of gcc or do gcc -E
first).
gas from binutils-2.38 works fine and produces correct object code. While
introduced in 2.39, this bug persists in 2.40.
There is an infinite loop of i386_intel_simplify_symbol mutually recursing with
i386_intel_simplify in all x64 .S files except the "shani" one in this repo:
https://github.com/prysmaticlabs/hashtree
For example:
https://github.com/prysmaticlabs/hashtree/blob/main/src/sha256_avx_x4.S
To be complete/autonomous, I have attached this file, but the other 5 fail in a
very similar way if that helps. (Note that it needs pre-processing first.)
Setting a breakpoint at those symbols with a debugging enabled build, it seems
like expanding the symbol `e` in translating a "vpslld TMP,e" instruction (in
thatsha256_avx_x4.S file, anyway - the instruction triggering the looping
recursion varies).
The `e` symbol in question is part of some `eqv` s near the start of the file.
I have not really tried to minimize this to the smallest reproducing bug, but
the consistency of failure does suggest such minimizing might be
straightforward.
There was a somewhat substantial patch to this file between 2.38 and 2.39 that
may be the origin of the problem.
--
You are receiving this mail because:
You are on the CC list for the bug.