dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index and DW_OP_GNU_co...
authorEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 27 May 2019 16:08:19 +0000 (16:08 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 27 May 2019 16:08:19 +0000 (16:08 +0000)
* dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
and DW_OP_GNU_const_index opcodes.

From-SVN: r271664

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

index d30386082afc966354d45c0fbf2a1e8d927d7939..8405d18f62c816a8cb7a2905ee3c222c8678ac9f 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-27  Uroš Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.h (STACK_SIZE_MODE): Define.
index 5979ac68fa86bf24fd096ad7754be05b59bc92f6..960d9be70d0df4d6e11b0037b7e353c26520daf9 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 2250874bb512e823bfaa5503aaba867f0a4a4002..bed4287289f90ac71cba823ce02f11eceb52de73 100644 (file)
@@ -1,7 +1,12 @@
+2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnat.dg/specs/array4.ads: New test.
+
 2019-05-27  Christophe Lyon  <christophe.lyon@linaro.org>
 
        PR tree-optimization/88440
-       * gcc.target/aarch64/sve/index_offset_1.c: Add -fno-tree-loop-distribute-patterns.
+       * gcc.target/aarch64/sve/index_offset_1.c: Add
+       -fno-tree-loop-distribute-patterns.
        * gcc.target/aarch64/sve/single_1.c: Likewise.
        * gcc.target/aarch64/sve/single_2.c: Likewise.
        * gcc.target/aarch64/sve/single_3.c: Likewise.
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;