[Ada] Tighten Object_Reader.Get_Memory_Bounds
authorOlivier Hainque <hainque@adacore.com>
Mon, 21 May 2018 14:50:44 +0000 (14:50 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 21 May 2018 14:50:44 +0000 (14:50 +0000)
commitc77384a44f4e8b30d90c5a1c7f4593cb76c0d67e
tree753eba6ee68a4ffae1cc7cb3873caf8d268070b6
parent0f090200e7ee7d1ee9d6b84b482618dcba14d92f
[Ada] Tighten Object_Reader.Get_Memory_Bounds

Symbolization of traceback entries from dwarf info was
failing in some cases with shared libraries on ELF targets,
from unexpected overlapping of what we believed were code
regions for distinct modules.

This is caused by the inclusion of all SHF_ALLOC sections in
the set of sections of possible relevance to determine the span
of possible code addresses for a module.

This change renames the Get_memory_Bound subprogram to better
convey that we really care about sections hosting executable code
in particular, matching what the spec comments already claims.

It also renames the boolean flag conveying the info of relevance
in the Object_Section record, and adjusts the ELF implementation
of Get_Section to feed this flag from SHF_EXECINSTR instead of
SHF_ALLOC.

2018-05-21  Olivier Hainque  <hainque@adacore.com>

gcc/ada/

* libgnat/s-objrea.ads (Get_Memory_Bounds): Rename as Get_Xcode_Bounds.
(Object_Section): Rename Flag_Alloc component as Flag_Xcode.
* libgnat/s-objrea.adb (Get_Xcode_Bounds): Adjust to new subprogram and
component name.
(Get_Section, ELF case): Set Flag_Xcode from SHF_EXECINSTR.
* libgnat/s-dwalin.adb (Open): Adjust to the Get_Memory_Bounds name
change.

From-SVN: r260451
gcc/ada/ChangeLog
gcc/ada/libgnat/s-dwalin.adb
gcc/ada/libgnat/s-objrea.adb
gcc/ada/libgnat/s-objrea.ads