diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-10-16 13:06:09 +0200 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-10-16 13:06:09 +0200 |
commit | 24b4159b6a29328c529e0e59405e03ea192aa99e (patch) | |
tree | 4b39da911a2eb037e3c9fb3950d53bb0bd6a41b2 /powerpc | |
parent | 1e52bb2001964d87086cea00d0cb779e270b99ce (diff) | |
download | compcert-24b4159b6a29328c529e0e59405e03ea192aa99e.tar.gz compcert-24b4159b6a29328c529e0e59405e03ea192aa99e.zip |
Implemented the usage of DW_AT_ranges for non-contiguous address ranges.
The gcc produces DW_AT_ranges for non-contiguous address ranges, like
compilation units containing functions which are placed in different
ELF-sections or lexical scopes that are split up. With this commit
CompCert also uses this DWARF v3 feature for gnu backend based targets.
In order to ensure backward compability a flag is added which avoids
this and produces debug info in DWARF v2 format.
Bug 17392.
Diffstat (limited to 'powerpc')
-rw-r--r-- | powerpc/AsmToJSON.ml | 1 | ||||
-rw-r--r-- | powerpc/TargetPrinter.ml | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/powerpc/AsmToJSON.ml b/powerpc/AsmToJSON.ml index bc99be7a..b8f08f22 100644 --- a/powerpc/AsmToJSON.ml +++ b/powerpc/AsmToJSON.ml @@ -342,6 +342,7 @@ let p_section oc = function | Section_debug_abbrev | Section_debug_line _ | Section_debug_loc + | Section_debug_ranges | Section_debug_str -> () (* There should be no info in the debug sections *) let p_int_opt oc = function diff --git a/powerpc/TargetPrinter.ml b/powerpc/TargetPrinter.ml index 54a2868a..709a0d7c 100644 --- a/powerpc/TargetPrinter.ml +++ b/powerpc/TargetPrinter.ml @@ -127,6 +127,7 @@ module Linux_System : SYSTEM = | Section_debug_abbrev -> ".section .debug_abbrev,\"\",@progbits" | Section_debug_loc -> ".section .debug_loc,\"\",@progbits" | Section_debug_line _ -> ".section .debug_line,\"\",@progbits" + | Section_debug_ranges -> ".section .debug_ranges,\"\",@progbits" | Section_debug_str -> ".section .debug_str,\"MS\",@progbits,1" @@ -222,6 +223,7 @@ module Diab_System : SYSTEM = sprintf ".section .debug_line.%s,,n\n" s | Section_debug_line None -> sprintf ".section .debug_line,,n\n" + | Section_debug_ranges | Section_debug_str -> assert false (* Should not be used *) let section oc sec = |