diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2021-07-06 12:18:57 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2021-09-21 15:24:59 +0000 |
commit | 97c5d522c6ee36b7ed1824d1eb6b8f30172c1818 (patch) | |
tree | a6da96ce91f2206f76a1d7ac533d832ec879cc88 | |
parent | cf7aa7d8e8523ca246804ba7c8ef6ab4c7910cb8 (diff) | |
download | gcc-97c5d522c6ee36b7ed1824d1eb6b8f30172c1818.zip gcc-97c5d522c6ee36b7ed1824d1eb6b8f30172c1818.tar.gz gcc-97c5d522c6ee36b7ed1824d1eb6b8f30172c1818.tar.bz2 |
[Ada] Follow-up tweaks to System.Dwarf_Line
gcc/ada/
* libgnat/s-dwalin.adb (Skip_Form): Fix cases of DW_FORM_addrx
and DW_FORM_implicit_const. Replace Constraint_Error with
Dwarf_Error.
-rw-r--r-- | gcc/ada/libgnat/s-dwalin.adb | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/ada/libgnat/s-dwalin.adb b/gcc/ada/libgnat/s-dwalin.adb index 530b802..74700e6 100644 --- a/gcc/ada/libgnat/s-dwalin.adb +++ b/gcc/ada/libgnat/s-dwalin.adb @@ -1114,8 +1114,6 @@ package body System.Dwarf_Lines is case Form is when DW_FORM_addr => Skip := Offset (Ptr_Sz); - when DW_FORM_addrx => - Skip := Offset (uint32'(Read_LEB128 (S))); when DW_FORM_block1 => Skip := Offset (uint8'(Read (S))); when DW_FORM_block2 => @@ -1161,11 +1159,12 @@ package body System.Dwarf_Lines is begin return; end; - when DW_FORM_udata - | DW_FORM_ref_udata + when DW_FORM_addrx | DW_FORM_loclistx + | DW_FORM_ref_udata | DW_FORM_rnglistx | DW_FORM_strx + | DW_FORM_udata => declare Val : constant uint32 := Read_LEB128 (S); @@ -1173,7 +1172,7 @@ package body System.Dwarf_Lines is begin return; end; - when DW_FORM_flag_present => + when DW_FORM_flag_present | DW_FORM_implicit_const => return; when DW_FORM_ref_addr | DW_FORM_sec_offset @@ -1187,10 +1186,10 @@ package body System.Dwarf_Lines is null; end loop; return; - when DW_FORM_implicit_const | DW_FORM_indirect => - raise Constraint_Error; + when DW_FORM_indirect => + raise Dwarf_Error with "DW_FORM_indirect not implemented"; when others => - raise Constraint_Error; + raise Dwarf_Error with "DWARF form not implemented"; end case; Seek (S, Tell (S) + Skip); |