diff options
author | Sebastian Poeplau <poeplau@adacore.com> | 2024-08-07 11:21:25 +0200 |
---|---|---|
committer | Marc Poulhiès <dkm@gcc.gnu.org> | 2024-08-23 10:51:05 +0200 |
commit | 509cc70fbbba911722a428f3a8bb01edbb90a7eb (patch) | |
tree | 3436ff47131d628be4c1d8e417ca67f5f286e233 /gcc/expr.cc | |
parent | a7ff045c4492738b62b486d81ae4618990b73539 (diff) | |
download | gcc-509cc70fbbba911722a428f3a8bb01edbb90a7eb.zip gcc-509cc70fbbba911722a428f3a8bb01edbb90a7eb.tar.gz gcc-509cc70fbbba911722a428f3a8bb01edbb90a7eb.tar.bz2 |
ada: Fix incorrect tracebacks on Windows
PECOFF symbols don't have a size attached to them. The symbol size that
System.Object_Reader.Read_Symbol guesses to make up for the lack of
information can be wrong when the symbol table doesn't match the
algorithm's expectations; in particular that's the case when function
symbols aren't sorted by address.
To avoid incorrect tracebacks caused by wrong symbol size guesses, don't
use the symbol size for PECOFF files when producing a traceback and
instead pick the symbol with the highest address lower than the target
address.
gcc/ada/
* libgnat/s-dwalin.adb (Symbolic_Address): Ignore symbol size in
address-to-symbol translation for PECOFF files.
Diffstat (limited to 'gcc/expr.cc')
0 files changed, 0 insertions, 0 deletions