]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index and DW_OP_GNU_co...
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 27 May 2019 16:12:41 +0000 (16:12 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 27 May 2019 16:12:41 +0000 (16:12 +0000)
* dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
and DW_OP_GNU_const_index opcodes.

From-SVN: r271665

gcc/ChangeLog
gcc/dwarf2out.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/specs/array4.ads [new file with mode: 0644]

index 1bf25158edd9cc85cec536bb6d09426809bef006..f23632b548e41dfddf7d0d5bdf13883650714934 100644 (file)
@@ -1,3 +1,8 @@
+2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
+       and DW_OP_GNU_const_index opcodes.
+
 2019-05-24  John David Anglin  <danglin@gcc.gnu.org>
 
        PR target/90530
index b9a624e1ac7fadffbdd82c12d18a3785b6483e20..3ffdc55453c1160e319f130e00593ce4e4dc4dd9 100644 (file)
@@ -17906,6 +17906,8 @@ resolve_args_picking_1 (dw_loc_descr_ref loc, unsigned initial_frame_offset,
        case DW_OP_push_object_address:
        case DW_OP_call_frame_cfa:
        case DW_OP_GNU_variable_value:
+       case DW_OP_GNU_addr_index:
+       case DW_OP_GNU_const_index:
          ++frame_offset_;
          break;
 
index c38e5a7dfca23a78d25af674bfb614ee6e5de9f0..e7b8b575a6010debc780bea41fb817fa152878f7 100644 (file)
@@ -1,3 +1,7 @@
+2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnat.dg/specs/array4.ads: New test.
+
 2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gnat.dg/aliased2.adb: New test.
diff --git a/gcc/testsuite/gnat.dg/specs/array4.ads b/gcc/testsuite/gnat.dg/specs/array4.ads
new file mode 100644 (file)
index 0000000..ab12c1e
--- /dev/null
@@ -0,0 +1,17 @@
+-- { dg-do compile }
+-- { dg-skip-if "missing -gsplit-dwarf support" { *-*-darwin* } }
+-- { dg-options "-gsplit-dwarf" }
+
+package Array4 is
+
+  type Arr1 is array (Positive range <>) of Boolean;
+
+  Size : Positive := 20;
+
+  type Rec is record
+    A : Arr1 (1 .. Size);
+  end record;
+
+  type Arr2 is array (Positive range <>) of Rec;
+
+end Array4;