diff options
author | Alan Modra <amodra@gmail.com> | 2020-05-15 18:06:05 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-05-15 18:21:07 +0930 |
commit | 2a50b401465f74d7f3ee1654915b9070b4dc0fee (patch) | |
tree | 40b5b90d909e7fef28d2f4099d03f1a1ec5f84a8 /sim/m32c/trace.c | |
parent | a51951c25813b8d6c763f51d78d3756d9ca85ee1 (diff) | |
download | gdb-2a50b401465f74d7f3ee1654915b9070b4dc0fee.zip gdb-2a50b401465f74d7f3ee1654915b9070b4dc0fee.tar.gz gdb-2a50b401465f74d7f3ee1654915b9070b4dc0fee.tar.bz2 |
Fix tight loop on recursively-defined symbols
This patch fixes a bug in GAS where the assembler enters a tight loop
when attempting to resolve recursively-defined symbols, e.g. when
trying to assemble "a=a".
This is a regression introduced between binutils 2.32 and 2.33,
by commit 1903f1385bff9
* symbols.c (struct local_symbol): Update comment.
(resolve_symbol_value): For resolved symbols equated to other
symbols, verify that the referenced symbol is not a local_symbol
before accessing sy_value. Don't leave symbol loops during
finalize_syms resolution.
* testsuite/gas/all/assign-bad-recursive.d: New test.
* testsuite/gas/all/assign-bad-recursive.l: Error output for test.
* testsuite/gas/all/assign-bad-recursive.s: Assembly for test.
* testsuite/gas/all/gas.exp: Run it.
Diffstat (limited to 'sim/m32c/trace.c')
0 files changed, 0 insertions, 0 deletions