fesd-any.c: Move to gcc.dg/debug/dwarf2 directory.
authorEric Botcazou <ebotcazou@libertysurf.fr>
Mon, 9 Jul 2007 22:23:04 +0000 (00:23 +0200)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 9 Jul 2007 22:23:04 +0000 (22:23 +0000)
* gcc.dg/fesd-any.c: Move to gcc.dg/debug/dwarf2 directory.
* gcc.dg/fesd-any.h: Likewise.
* gcc.dg/fesd-baseonly.c: Likewise.
* gcc.dg/fesd-baseonly.h: Likewise.
* gcc.dg/fesd-none.c: Likewise.
* gcc.dg/fesd-none.h: Likewise.
* gcc.dg/fesd-reduced.c: Likewise.
* gcc.dg/fesd-reduced.h: Likewise.
* gcc.dg/fesd-sys.c: Likewise.
* gcc.dg/fesd-sys.h: Likewise
* gcc.dg/fesd.h: Likewise.

* g++.dg/debug/dwarf2: New directory.
* g++.dg/debug/dwarf2/dwarf2.exp: New driver.
* g++.dg/other/fesd-any.C: Move to g++.dg/debug/dwarf2 directory.
* g++.dg/other/fesd-any.h: Likewise.
* g++.dg/other/fesd-baseonly.C: Likewise.
* g++.dg/other/fesd-baseonly.h: Likewise.
* g++.dg/other/fesd-none.C: Likewise.
* g++.dg/other/fesd-none.h: Likewise.
* g++.dg/other/fesd-reduced.C: Likewise.
* g++.dg/other/fesd-reduced.h: Likewise.
* g++.dg/other/fesd-sys.C: Likewise.
* g++.dg/other/fesd-sys.h: Likewise.
* g++.dg/other/fesd.h: Likewise.

From-SVN: r126497

46 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.h [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.h [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.h [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.h [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.h [new file with mode: 0644]
gcc/testsuite/g++.dg/debug/dwarf2/fesd.h [new file with mode: 0644]
gcc/testsuite/g++.dg/other/fesd-any.C [deleted file]
gcc/testsuite/g++.dg/other/fesd-any.h [deleted file]
gcc/testsuite/g++.dg/other/fesd-baseonly.C [deleted file]
gcc/testsuite/g++.dg/other/fesd-baseonly.h [deleted file]
gcc/testsuite/g++.dg/other/fesd-none.C [deleted file]
gcc/testsuite/g++.dg/other/fesd-none.h [deleted file]
gcc/testsuite/g++.dg/other/fesd-reduced.C [deleted file]
gcc/testsuite/g++.dg/other/fesd-reduced.h [deleted file]
gcc/testsuite/g++.dg/other/fesd-sys.C [deleted file]
gcc/testsuite/g++.dg/other/fesd-sys.h [deleted file]
gcc/testsuite/g++.dg/other/fesd.h [deleted file]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.h [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.h [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.h [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.h [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.h [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/fesd.h [new file with mode: 0644]
gcc/testsuite/gcc.dg/fesd-any.c [deleted file]
gcc/testsuite/gcc.dg/fesd-any.h [deleted file]
gcc/testsuite/gcc.dg/fesd-baseonly.c [deleted file]
gcc/testsuite/gcc.dg/fesd-baseonly.h [deleted file]
gcc/testsuite/gcc.dg/fesd-none.c [deleted file]
gcc/testsuite/gcc.dg/fesd-none.h [deleted file]
gcc/testsuite/gcc.dg/fesd-reduced.c [deleted file]
gcc/testsuite/gcc.dg/fesd-reduced.h [deleted file]
gcc/testsuite/gcc.dg/fesd-sys.c [deleted file]
gcc/testsuite/gcc.dg/fesd-sys.h [deleted file]
gcc/testsuite/gcc.dg/fesd.h [deleted file]

index 6c95f1306459adfa7d02d2e652a91e0fa0896bbb..b8de460e8d5f9dde37409735e7e405b3618ecaeb 100644 (file)
@@ -1,3 +1,31 @@
+2007-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * gcc.dg/fesd-any.c: Move to gcc.dg/debug/dwarf2 directory.
+       * gcc.dg/fesd-any.h: Likewise.
+       * gcc.dg/fesd-baseonly.c: Likewise.
+       * gcc.dg/fesd-baseonly.h: Likewise.
+       * gcc.dg/fesd-none.c: Likewise.
+       * gcc.dg/fesd-none.h: Likewise.
+       * gcc.dg/fesd-reduced.c: Likewise.
+       * gcc.dg/fesd-reduced.h: Likewise.
+       * gcc.dg/fesd-sys.c: Likewise.
+       * gcc.dg/fesd-sys.h: Likewise
+       * gcc.dg/fesd.h: Likewise.
+
+       * g++.dg/debug/dwarf2: New directory.
+       * g++.dg/debug/dwarf2/dwarf2.exp: New driver.
+       * g++.dg/other/fesd-any.C: Move to g++.dg/debug/dwarf2 directory.
+       * g++.dg/other/fesd-any.h: Likewise.
+       * g++.dg/other/fesd-baseonly.C: Likewise.
+       * g++.dg/other/fesd-baseonly.h: Likewise.
+       * g++.dg/other/fesd-none.C: Likewise.
+       * g++.dg/other/fesd-none.h: Likewise.
+       * g++.dg/other/fesd-reduced.C: Likewise.
+       * g++.dg/other/fesd-reduced.h: Likewise.
+       * g++.dg/other/fesd-sys.C: Likewise.
+       * g++.dg/other/fesd-sys.h: Likewise.
+       * g++.dg/other/fesd.h: Likewise.
+
 2007-07-09  Daniel Franke  <franke.daniel@gmail.com>
 
        PR fortran/31129
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp b/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp
new file mode 100644 (file)
index 0000000..8c17680
--- /dev/null
@@ -0,0 +1,43 @@
+#   Copyright (C) 2007 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+
+# G++ testsuite that uses the `dg.exp' driver.
+
+# Load support procs.
+load_lib g++-dg.exp
+
+# If a testcase doesn't have special options, use these.
+global DEFAULT_CFLAGS
+if ![info exists DEFAULT_CFLAGS] then {
+    set DEFAULT_CFLAGS " -gdwarf-2"
+}
+
+# Initialize `dg'.
+dg-init
+
+# Main loop.
+set comp_output [g++_target_compile \
+    "$srcdir/$subdir/../trivial.C" "trivial.S" assembly \
+    "additional_flags=-gdwarf-2"]
+if { ! [string match "*: target system does not support the * debug format*" \
+    $comp_output] } {
+    remove-build-file "trivial.S"
+    dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[C\]]] \
+           "" $DEFAULT_CFLAGS
+}
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.C
new file mode 100644 (file)
index 0000000..a4a0b50
--- /dev/null
@@ -0,0 +1,126 @@
+// { dg-do compile }
+// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=any" }
+// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
+// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
+# 1 "fesd-any.C"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 1 "fesd-any.C"
+
+//#include "time.h"
+# 1 "time.h" 1 3 4
+struct timespec
+  {
+    long int tv_sec;
+    long int tv_nsec;
+  };
+
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+# 6 "fesd-any.C" 2
+
+struct timespec base_var8;
+struct itimerspec *base_var9;
+
+#include "fesd-any.h"
+
+struct gstruct_head_ordy_defn_var_base base_var1;
+struct gstruct_base_ordy_defn_var_base base_var2;
+
+struct gstruct_head_tmpl_defn_var_base< int > base_var5;
+struct gstruct_base_tmpl_defn_var_base< int > base_var6;
+
+int base_function() {
+    return 0
++ base_var1.field_head_ordy_defn_var_base
++ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
++ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
++ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
++ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
++ base_var5.field_head_tmpl_defn_var_base
++ base_var6.field1_base_tmpl_defn_var_base_ptr->field_head_tmpl_defn_ptr_base
++ base_var6.field1_base_tmpl_defn_var_base_fld.field_head_tmpl_defn_fld_base
++ base_var6.field2_base_tmpl_defn_var_base_ptr->field_base_tmpl_defn_ptr_base
++ base_var6.field2_base_tmpl_defn_var_base_fld.field_base_tmpl_defn_fld_base
+;
+}
+
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.h b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-any.h
new file mode 100644 (file)
index 0000000..762f587
--- /dev/null
@@ -0,0 +1,42 @@
+#include "fesd.h"
+
+struct gstruct_base_ordy_decl_not;
+struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
+
+struct gstruct_base_ordy_decl_ref_base;
+struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
+struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
+struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
+struct gstruct_base_ordy_defn_var_base {
+    gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
+    gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
+    gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
+    gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
+    gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
+    gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
+    gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
+    gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
+};
+
+template< typename T > struct gstruct_base_tmpl_decl_not;
+template< typename T > struct gstruct_base_tmpl_defn_not
+{ int field_base_tmpl_defn_not; };
+
+template< typename T > struct gstruct_base_tmpl_decl_ref_base;
+template< typename T > struct gstruct_base_tmpl_defn_ref_base
+{ int field_base_tmpl_defn_ref_base; };
+template< typename T > struct gstruct_base_tmpl_defn_ptr_base
+{ int field_base_tmpl_defn_ptr_base; };
+template< typename T > struct gstruct_base_tmpl_defn_fld_base
+{ int field_base_tmpl_defn_fld_base; };
+template< typename T > struct gstruct_base_tmpl_defn_var_base {
+    gstruct_head_tmpl_decl_ref_base< T > *field1_base_tmpl_defn_var_base_inc;
+    gstruct_head_tmpl_defn_ref_base< T > *field1_base_tmpl_defn_var_base_ref;
+    gstruct_head_tmpl_defn_ptr_base< T > *field1_base_tmpl_defn_var_base_ptr;
+    gstruct_head_tmpl_defn_fld_base< T >  field1_base_tmpl_defn_var_base_fld;
+    gstruct_base_tmpl_decl_ref_base< T > *field2_base_tmpl_defn_var_base_inc;
+    gstruct_base_tmpl_defn_ref_base< T > *field2_base_tmpl_defn_var_base_ref;
+    gstruct_base_tmpl_defn_ptr_base< T > *field2_base_tmpl_defn_var_base_ptr;
+    gstruct_base_tmpl_defn_fld_base< T >  field2_base_tmpl_defn_var_base_fld;
+};
+
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.C
new file mode 100644 (file)
index 0000000..4f580eb
--- /dev/null
@@ -0,0 +1,126 @@
+// { dg-do compile }
+// { dg-options "-gdwarf-2 -dA -femit-struct-debug-baseonly" }
+// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
+// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
+# 1 "fesd-baseonly.C"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 1 "fesd-baseonly.C"
+
+//#include "time.h"
+# 1 "time.h" 1 3 4
+struct timespec
+  {
+    long int tv_sec;
+    long int tv_nsec;
+  };
+
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+# 6 "fesd-baseonly.C" 2
+
+struct timespec base_var8;
+struct itimerspec *base_var9;
+
+#include "fesd-baseonly.h"
+
+struct gstruct_head_ordy_defn_var_base base_var1;
+struct gstruct_base_ordy_defn_var_base base_var2;
+
+struct gstruct_head_tmpl_defn_var_base< int > base_var5;
+struct gstruct_base_tmpl_defn_var_base< int > base_var6;
+
+int base_function() {
+    return 0
++ base_var1.field_head_ordy_defn_var_base
++ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
++ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
++ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
++ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
++ base_var5.field_head_tmpl_defn_var_base
++ base_var6.field1_base_tmpl_defn_var_base_ptr->field_head_tmpl_defn_ptr_base
++ base_var6.field1_base_tmpl_defn_var_base_fld.field_head_tmpl_defn_fld_base
++ base_var6.field2_base_tmpl_defn_var_base_ptr->field_base_tmpl_defn_ptr_base
++ base_var6.field2_base_tmpl_defn_var_base_fld.field_base_tmpl_defn_fld_base
+;
+}
+
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.h b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-baseonly.h
new file mode 100644 (file)
index 0000000..762f587
--- /dev/null
@@ -0,0 +1,42 @@
+#include "fesd.h"
+
+struct gstruct_base_ordy_decl_not;
+struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
+
+struct gstruct_base_ordy_decl_ref_base;
+struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
+struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
+struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
+struct gstruct_base_ordy_defn_var_base {
+    gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
+    gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
+    gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
+    gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
+    gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
+    gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
+    gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
+    gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
+};
+
+template< typename T > struct gstruct_base_tmpl_decl_not;
+template< typename T > struct gstruct_base_tmpl_defn_not
+{ int field_base_tmpl_defn_not; };
+
+template< typename T > struct gstruct_base_tmpl_decl_ref_base;
+template< typename T > struct gstruct_base_tmpl_defn_ref_base
+{ int field_base_tmpl_defn_ref_base; };
+template< typename T > struct gstruct_base_tmpl_defn_ptr_base
+{ int field_base_tmpl_defn_ptr_base; };
+template< typename T > struct gstruct_base_tmpl_defn_fld_base
+{ int field_base_tmpl_defn_fld_base; };
+template< typename T > struct gstruct_base_tmpl_defn_var_base {
+    gstruct_head_tmpl_decl_ref_base< T > *field1_base_tmpl_defn_var_base_inc;
+    gstruct_head_tmpl_defn_ref_base< T > *field1_base_tmpl_defn_var_base_ref;
+    gstruct_head_tmpl_defn_ptr_base< T > *field1_base_tmpl_defn_var_base_ptr;
+    gstruct_head_tmpl_defn_fld_base< T >  field1_base_tmpl_defn_var_base_fld;
+    gstruct_base_tmpl_decl_ref_base< T > *field2_base_tmpl_defn_var_base_inc;
+    gstruct_base_tmpl_defn_ref_base< T > *field2_base_tmpl_defn_var_base_ref;
+    gstruct_base_tmpl_defn_ptr_base< T > *field2_base_tmpl_defn_var_base_ptr;
+    gstruct_base_tmpl_defn_fld_base< T >  field2_base_tmpl_defn_var_base_fld;
+};
+
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.C
new file mode 100644 (file)
index 0000000..0af0a83
--- /dev/null
@@ -0,0 +1,126 @@
+// { dg-do compile }
+// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=none" }
+// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
+// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
+# 1 "fesd-none.C"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 1 "fesd-none.C"
+
+//#include "time.h"
+# 1 "time.h" 1 3 4
+struct timespec
+  {
+    long int tv_sec;
+    long int tv_nsec;
+  };
+
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+# 6 "fesd-none.C" 2
+
+struct timespec base_var8;
+struct itimerspec *base_var9;
+
+#include "fesd-none.h"
+
+struct gstruct_head_ordy_defn_var_base base_var1;
+struct gstruct_base_ordy_defn_var_base base_var2;
+
+struct gstruct_head_tmpl_defn_var_base< int > base_var5;
+struct gstruct_base_tmpl_defn_var_base< int > base_var6;
+
+int base_function() {
+    return 0
++ base_var1.field_head_ordy_defn_var_base
++ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
++ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
++ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
++ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
++ base_var5.field_head_tmpl_defn_var_base
++ base_var6.field1_base_tmpl_defn_var_base_ptr->field_head_tmpl_defn_ptr_base
++ base_var6.field1_base_tmpl_defn_var_base_fld.field_head_tmpl_defn_fld_base
++ base_var6.field2_base_tmpl_defn_var_base_ptr->field_base_tmpl_defn_ptr_base
++ base_var6.field2_base_tmpl_defn_var_base_fld.field_base_tmpl_defn_fld_base
+;
+}
+
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.h b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-none.h
new file mode 100644 (file)
index 0000000..762f587
--- /dev/null
@@ -0,0 +1,42 @@
+#include "fesd.h"
+
+struct gstruct_base_ordy_decl_not;
+struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
+
+struct gstruct_base_ordy_decl_ref_base;
+struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
+struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
+struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
+struct gstruct_base_ordy_defn_var_base {
+    gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
+    gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
+    gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
+    gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
+    gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
+    gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
+    gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
+    gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
+};
+
+template< typename T > struct gstruct_base_tmpl_decl_not;
+template< typename T > struct gstruct_base_tmpl_defn_not
+{ int field_base_tmpl_defn_not; };
+
+template< typename T > struct gstruct_base_tmpl_decl_ref_base;
+template< typename T > struct gstruct_base_tmpl_defn_ref_base
+{ int field_base_tmpl_defn_ref_base; };
+template< typename T > struct gstruct_base_tmpl_defn_ptr_base
+{ int field_base_tmpl_defn_ptr_base; };
+template< typename T > struct gstruct_base_tmpl_defn_fld_base
+{ int field_base_tmpl_defn_fld_base; };
+template< typename T > struct gstruct_base_tmpl_defn_var_base {
+    gstruct_head_tmpl_decl_ref_base< T > *field1_base_tmpl_defn_var_base_inc;
+    gstruct_head_tmpl_defn_ref_base< T > *field1_base_tmpl_defn_var_base_ref;
+    gstruct_head_tmpl_defn_ptr_base< T > *field1_base_tmpl_defn_var_base_ptr;
+    gstruct_head_tmpl_defn_fld_base< T >  field1_base_tmpl_defn_var_base_fld;
+    gstruct_base_tmpl_decl_ref_base< T > *field2_base_tmpl_defn_var_base_inc;
+    gstruct_base_tmpl_defn_ref_base< T > *field2_base_tmpl_defn_var_base_ref;
+    gstruct_base_tmpl_defn_ptr_base< T > *field2_base_tmpl_defn_var_base_ptr;
+    gstruct_base_tmpl_defn_fld_base< T >  field2_base_tmpl_defn_var_base_fld;
+};
+
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.C
new file mode 100644 (file)
index 0000000..a93b90f
--- /dev/null
@@ -0,0 +1,126 @@
+// { dg-do compile }
+// { dg-options "-gdwarf-2 -dA -femit-struct-debug-reduced" }
+// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
+// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
+# 1 "fesd-reduced.C"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 1 "fesd-reduced.C"
+
+//#include "time.h"
+# 1 "time.h" 1 3 4
+struct timespec
+  {
+    long int tv_sec;
+    long int tv_nsec;
+  };
+
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+# 6 "fesd-reduced.C" 2
+
+struct timespec base_var8;
+struct itimerspec *base_var9;
+
+#include "fesd-reduced.h"
+
+struct gstruct_head_ordy_defn_var_base base_var1;
+struct gstruct_base_ordy_defn_var_base base_var2;
+
+struct gstruct_head_tmpl_defn_var_base< int > base_var5;
+struct gstruct_base_tmpl_defn_var_base< int > base_var6;
+
+int base_function() {
+    return 0
++ base_var1.field_head_ordy_defn_var_base
++ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
++ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
++ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
++ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
++ base_var5.field_head_tmpl_defn_var_base
++ base_var6.field1_base_tmpl_defn_var_base_ptr->field_head_tmpl_defn_ptr_base
++ base_var6.field1_base_tmpl_defn_var_base_fld.field_head_tmpl_defn_fld_base
++ base_var6.field2_base_tmpl_defn_var_base_ptr->field_base_tmpl_defn_ptr_base
++ base_var6.field2_base_tmpl_defn_var_base_fld.field_base_tmpl_defn_fld_base
+;
+}
+
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.h b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-reduced.h
new file mode 100644 (file)
index 0000000..762f587
--- /dev/null
@@ -0,0 +1,42 @@
+#include "fesd.h"
+
+struct gstruct_base_ordy_decl_not;
+struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
+
+struct gstruct_base_ordy_decl_ref_base;
+struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
+struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
+struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
+struct gstruct_base_ordy_defn_var_base {
+    gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
+    gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
+    gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
+    gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
+    gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
+    gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
+    gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
+    gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
+};
+
+template< typename T > struct gstruct_base_tmpl_decl_not;
+template< typename T > struct gstruct_base_tmpl_defn_not
+{ int field_base_tmpl_defn_not; };
+
+template< typename T > struct gstruct_base_tmpl_decl_ref_base;
+template< typename T > struct gstruct_base_tmpl_defn_ref_base
+{ int field_base_tmpl_defn_ref_base; };
+template< typename T > struct gstruct_base_tmpl_defn_ptr_base
+{ int field_base_tmpl_defn_ptr_base; };
+template< typename T > struct gstruct_base_tmpl_defn_fld_base
+{ int field_base_tmpl_defn_fld_base; };
+template< typename T > struct gstruct_base_tmpl_defn_var_base {
+    gstruct_head_tmpl_decl_ref_base< T > *field1_base_tmpl_defn_var_base_inc;
+    gstruct_head_tmpl_defn_ref_base< T > *field1_base_tmpl_defn_var_base_ref;
+    gstruct_head_tmpl_defn_ptr_base< T > *field1_base_tmpl_defn_var_base_ptr;
+    gstruct_head_tmpl_defn_fld_base< T >  field1_base_tmpl_defn_var_base_fld;
+    gstruct_base_tmpl_decl_ref_base< T > *field2_base_tmpl_defn_var_base_inc;
+    gstruct_base_tmpl_defn_ref_base< T > *field2_base_tmpl_defn_var_base_ref;
+    gstruct_base_tmpl_defn_ptr_base< T > *field2_base_tmpl_defn_var_base_ptr;
+    gstruct_base_tmpl_defn_fld_base< T >  field2_base_tmpl_defn_var_base_fld;
+};
+
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.C
new file mode 100644 (file)
index 0000000..95a9a31
--- /dev/null
@@ -0,0 +1,126 @@
+// { dg-do compile }
+// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=sys" }
+// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
+// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
+# 1 "fesd-sys.C"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 1 "fesd-sys.C"
+
+//#include "time.h"
+# 1 "time.h" 1 3 4
+struct timespec
+  {
+    long int tv_sec;
+    long int tv_nsec;
+  };
+
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+# 6 "fesd-sys.C" 2
+
+struct timespec base_var8;
+struct itimerspec *base_var9;
+
+#include "fesd-sys.h"
+
+struct gstruct_head_ordy_defn_var_base base_var1;
+struct gstruct_base_ordy_defn_var_base base_var2;
+
+struct gstruct_head_tmpl_defn_var_base< int > base_var5;
+struct gstruct_base_tmpl_defn_var_base< int > base_var6;
+
+int base_function() {
+    return 0
++ base_var1.field_head_ordy_defn_var_base
++ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
++ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
++ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
++ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
++ base_var5.field_head_tmpl_defn_var_base
++ base_var6.field1_base_tmpl_defn_var_base_ptr->field_head_tmpl_defn_ptr_base
++ base_var6.field1_base_tmpl_defn_var_base_fld.field_head_tmpl_defn_fld_base
++ base_var6.field2_base_tmpl_defn_var_base_ptr->field_base_tmpl_defn_ptr_base
++ base_var6.field2_base_tmpl_defn_var_base_fld.field_base_tmpl_defn_fld_base
+;
+}
+
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.h b/gcc/testsuite/g++.dg/debug/dwarf2/fesd-sys.h
new file mode 100644 (file)
index 0000000..762f587
--- /dev/null
@@ -0,0 +1,42 @@
+#include "fesd.h"
+
+struct gstruct_base_ordy_decl_not;
+struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
+
+struct gstruct_base_ordy_decl_ref_base;
+struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
+struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
+struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
+struct gstruct_base_ordy_defn_var_base {
+    gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
+    gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
+    gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
+    gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
+    gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
+    gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
+    gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
+    gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
+};
+
+template< typename T > struct gstruct_base_tmpl_decl_not;
+template< typename T > struct gstruct_base_tmpl_defn_not
+{ int field_base_tmpl_defn_not; };
+
+template< typename T > struct gstruct_base_tmpl_decl_ref_base;
+template< typename T > struct gstruct_base_tmpl_defn_ref_base
+{ int field_base_tmpl_defn_ref_base; };
+template< typename T > struct gstruct_base_tmpl_defn_ptr_base
+{ int field_base_tmpl_defn_ptr_base; };
+template< typename T > struct gstruct_base_tmpl_defn_fld_base
+{ int field_base_tmpl_defn_fld_base; };
+template< typename T > struct gstruct_base_tmpl_defn_var_base {
+    gstruct_head_tmpl_decl_ref_base< T > *field1_base_tmpl_defn_var_base_inc;
+    gstruct_head_tmpl_defn_ref_base< T > *field1_base_tmpl_defn_var_base_ref;
+    gstruct_head_tmpl_defn_ptr_base< T > *field1_base_tmpl_defn_var_base_ptr;
+    gstruct_head_tmpl_defn_fld_base< T >  field1_base_tmpl_defn_var_base_fld;
+    gstruct_base_tmpl_decl_ref_base< T > *field2_base_tmpl_defn_var_base_inc;
+    gstruct_base_tmpl_defn_ref_base< T > *field2_base_tmpl_defn_var_base_ref;
+    gstruct_base_tmpl_defn_ptr_base< T > *field2_base_tmpl_defn_var_base_ptr;
+    gstruct_base_tmpl_defn_fld_base< T >  field2_base_tmpl_defn_var_base_fld;
+};
+
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/fesd.h b/gcc/testsuite/g++.dg/debug/dwarf2/fesd.h
new file mode 100644 (file)
index 0000000..83bb15a
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+where from: base = matching base; head = other header
+what kind:  ordy = ordinary struct; tmpl = template struct
+definition: decl = incomplete declaration; defn = full definition
+how used:   not = not used; ref = by ref; ptr = through pointer;
+            fld = as field; var = as variable
+from where: base = from base; head = other header
+*/
+
+struct gstruct_head_ordy_decl_not;
+struct gstruct_head_ordy_defn_not { int field_head_ordy_defn_not; };
+
+struct gstruct_head_ordy_decl_ref_head;
+struct gstruct_head_ordy_defn_ref_head { int field_head_ordy_defn_ref_head; };
+struct gstruct_head_ordy_defn_ptr_head { int field_head_ordy_defn_ptr_head; };
+struct gstruct_head_ordy_defn_fld_head { int field_head_ordy_defn_fld_head; };
+struct gstruct_head_ordy_defn_var_head {
+    gstruct_head_ordy_decl_ref_head *field_head_ordy_defn_var_head_inc;
+    gstruct_head_ordy_defn_ref_head *field_head_ordy_defn_var_head_ref;
+    gstruct_head_ordy_defn_ptr_head *field_head_ordy_defn_var_head_ptr;
+    gstruct_head_ordy_defn_fld_head  field_head_ordy_defn_var_head_fld;
+};
+extern struct gstruct_head_ordy_defn_var_head head_var1;
+
+struct gstruct_head_ordy_decl_ref_base;
+struct gstruct_head_ordy_defn_ref_base { int field_head_ordy_defn_ref_base; };
+struct gstruct_head_ordy_defn_ptr_base { int field_head_ordy_defn_ptr_base; };
+struct gstruct_head_ordy_defn_fld_base { int field_head_ordy_defn_fld_base; };
+struct gstruct_head_ordy_defn_var_base { int field_head_ordy_defn_var_base; };
+
+template< typename T > struct gstruct_head_tmpl_decl_not;
+template< typename T > struct gstruct_head_tmpl_defn_not
+{ T field_head_tmpl_defn_not; };
+
+template< typename T > struct gstruct_head_tmpl_decl_ref_head;
+template< typename T > struct gstruct_head_tmpl_defn_ref_head
+{ T field_head_tmpl_defn_ref_head; };
+template< typename T > struct gstruct_head_tmpl_defn_ptr_head
+{ T field_head_tmpl_defn_ptr_head; };
+template< typename T > struct gstruct_head_tmpl_defn_fld_head
+{ T field_head_tmpl_defn_fld_head; };
+template< typename T > struct gstruct_head_tmpl_defn_var_head {
+    gstruct_head_tmpl_decl_ref_head< T > *field_head_tmpl_defn_var_head_inc;
+    gstruct_head_tmpl_defn_ref_head< T > *field_head_tmpl_defn_var_head_ref;
+    gstruct_head_tmpl_defn_ptr_head< T > *field_head_tmpl_defn_var_head_ptr;
+    gstruct_head_tmpl_defn_fld_head< T >  field_head_tmpl_defn_var_head_fld;
+};
+extern gstruct_head_tmpl_defn_var_head< int > head_var5;
+
+template< typename T > struct gstruct_head_tmpl_decl_ref_base;
+template< typename T > struct gstruct_head_tmpl_defn_ref_base
+{ T field_head_tmpl_defn_ref_base; };
+template< typename T > struct gstruct_head_tmpl_defn_ptr_base
+{ T field_head_tmpl_defn_ptr_base; };
+template< typename T > struct gstruct_head_tmpl_defn_fld_base
+{ T field_head_tmpl_defn_fld_base; };
+template< typename T > struct gstruct_head_tmpl_defn_var_base
+{ T field_head_tmpl_defn_var_base; };
+
+inline int head_function() {
+    return 0
++ head_var1.field_head_ordy_defn_var_head_ptr->field_head_ordy_defn_ptr_head
++ head_var1.field_head_ordy_defn_var_head_fld.field_head_ordy_defn_fld_head
++ head_var5.field_head_tmpl_defn_var_head_ptr->field_head_tmpl_defn_ptr_head
++ head_var5.field_head_tmpl_defn_var_head_fld.field_head_tmpl_defn_fld_head
+;
+}
diff --git a/gcc/testsuite/g++.dg/other/fesd-any.C b/gcc/testsuite/g++.dg/other/fesd-any.C
deleted file mode 100644 (file)
index a4a0b50..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-// { dg-do compile }
-// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=any" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
-# 1 "fesd-any.C"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "fesd-any.C"
-
-//#include "time.h"
-# 1 "time.h" 1 3 4
-struct timespec
-  {
-    long int tv_sec;
-    long int tv_nsec;
-  };
-
-struct itimerspec
-  {
-    struct timespec it_interval;
-    struct timespec it_value;
-  };
-
-# 6 "fesd-any.C" 2
-
-struct timespec base_var8;
-struct itimerspec *base_var9;
-
-#include "fesd-any.h"
-
-struct gstruct_head_ordy_defn_var_base base_var1;
-struct gstruct_base_ordy_defn_var_base base_var2;
-
-struct gstruct_head_tmpl_defn_var_base< int > base_var5;
-struct gstruct_base_tmpl_defn_var_base< int > base_var6;
-
-int base_function() {
-    return 0
-+ base_var1.field_head_ordy_defn_var_base
-+ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
-+ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
-+ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
-+ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
-+ base_var5.field_head_tmpl_defn_var_base
-+ base_var6.field1_base_tmpl_defn_var_base_ptr->field_head_tmpl_defn_ptr_base
-+ base_var6.field1_base_tmpl_defn_var_base_fld.field_head_tmpl_defn_fld_base
-+ base_var6.field2_base_tmpl_defn_var_base_ptr->field_base_tmpl_defn_ptr_base
-+ base_var6.field2_base_tmpl_defn_var_base_fld.field_base_tmpl_defn_fld_base
-;
-}
-
diff --git a/gcc/testsuite/g++.dg/other/fesd-any.h b/gcc/testsuite/g++.dg/other/fesd-any.h
deleted file mode 100644 (file)
index 762f587..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "fesd.h"
-
-struct gstruct_base_ordy_decl_not;
-struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
-
-struct gstruct_base_ordy_decl_ref_base;
-struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
-struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
-struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
-struct gstruct_base_ordy_defn_var_base {
-    gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
-    gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
-    gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
-    gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
-    gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
-    gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
-    gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
-    gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
-};
-
-template< typename T > struct gstruct_base_tmpl_decl_not;
-template< typename T > struct gstruct_base_tmpl_defn_not
-{ int field_base_tmpl_defn_not; };
-
-template< typename T > struct gstruct_base_tmpl_decl_ref_base;
-template< typename T > struct gstruct_base_tmpl_defn_ref_base
-{ int field_base_tmpl_defn_ref_base; };
-template< typename T > struct gstruct_base_tmpl_defn_ptr_base
-{ int field_base_tmpl_defn_ptr_base; };
-template< typename T > struct gstruct_base_tmpl_defn_fld_base
-{ int field_base_tmpl_defn_fld_base; };
-template< typename T > struct gstruct_base_tmpl_defn_var_base {
-    gstruct_head_tmpl_decl_ref_base< T > *field1_base_tmpl_defn_var_base_inc;
-    gstruct_head_tmpl_defn_ref_base< T > *field1_base_tmpl_defn_var_base_ref;
-    gstruct_head_tmpl_defn_ptr_base< T > *field1_base_tmpl_defn_var_base_ptr;
-    gstruct_head_tmpl_defn_fld_base< T >  field1_base_tmpl_defn_var_base_fld;
-    gstruct_base_tmpl_decl_ref_base< T > *field2_base_tmpl_defn_var_base_inc;
-    gstruct_base_tmpl_defn_ref_base< T > *field2_base_tmpl_defn_var_base_ref;
-    gstruct_base_tmpl_defn_ptr_base< T > *field2_base_tmpl_defn_var_base_ptr;
-    gstruct_base_tmpl_defn_fld_base< T >  field2_base_tmpl_defn_var_base_fld;
-};
-
diff --git a/gcc/testsuite/g++.dg/other/fesd-baseonly.C b/gcc/testsuite/g++.dg/other/fesd-baseonly.C
deleted file mode 100644 (file)
index 4f580eb..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-// { dg-do compile }
-// { dg-options "-gdwarf-2 -dA -femit-struct-debug-baseonly" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
-# 1 "fesd-baseonly.C"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "fesd-baseonly.C"
-
-//#include "time.h"
-# 1 "time.h" 1 3 4
-struct timespec
-  {
-    long int tv_sec;
-    long int tv_nsec;
-  };
-
-struct itimerspec
-  {
-    struct timespec it_interval;
-    struct timespec it_value;
-  };
-
-# 6 "fesd-baseonly.C" 2
-
-struct timespec base_var8;
-struct itimerspec *base_var9;
-
-#include "fesd-baseonly.h"
-
-struct gstruct_head_ordy_defn_var_base base_var1;
-struct gstruct_base_ordy_defn_var_base base_var2;
-
-struct gstruct_head_tmpl_defn_var_base< int > base_var5;
-struct gstruct_base_tmpl_defn_var_base< int > base_var6;
-
-int base_function() {
-    return 0
-+ base_var1.field_head_ordy_defn_var_base
-+ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
-+ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
-+ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
-+ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
-+ base_var5.field_head_tmpl_defn_var_base
-+ base_var6.field1_base_tmpl_defn_var_base_ptr->field_head_tmpl_defn_ptr_base
-+ base_var6.field1_base_tmpl_defn_var_base_fld.field_head_tmpl_defn_fld_base
-+ base_var6.field2_base_tmpl_defn_var_base_ptr->field_base_tmpl_defn_ptr_base
-+ base_var6.field2_base_tmpl_defn_var_base_fld.field_base_tmpl_defn_fld_base
-;
-}
-
diff --git a/gcc/testsuite/g++.dg/other/fesd-baseonly.h b/gcc/testsuite/g++.dg/other/fesd-baseonly.h
deleted file mode 100644 (file)
index 762f587..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "fesd.h"
-
-struct gstruct_base_ordy_decl_not;
-struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
-
-struct gstruct_base_ordy_decl_ref_base;
-struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
-struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
-struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
-struct gstruct_base_ordy_defn_var_base {
-    gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
-    gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
-    gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
-    gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
-    gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
-    gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
-    gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
-    gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
-};
-
-template< typename T > struct gstruct_base_tmpl_decl_not;
-template< typename T > struct gstruct_base_tmpl_defn_not
-{ int field_base_tmpl_defn_not; };
-
-template< typename T > struct gstruct_base_tmpl_decl_ref_base;
-template< typename T > struct gstruct_base_tmpl_defn_ref_base
-{ int field_base_tmpl_defn_ref_base; };
-template< typename T > struct gstruct_base_tmpl_defn_ptr_base
-{ int field_base_tmpl_defn_ptr_base; };
-template< typename T > struct gstruct_base_tmpl_defn_fld_base
-{ int field_base_tmpl_defn_fld_base; };
-template< typename T > struct gstruct_base_tmpl_defn_var_base {
-    gstruct_head_tmpl_decl_ref_base< T > *field1_base_tmpl_defn_var_base_inc;
-    gstruct_head_tmpl_defn_ref_base< T > *field1_base_tmpl_defn_var_base_ref;
-    gstruct_head_tmpl_defn_ptr_base< T > *field1_base_tmpl_defn_var_base_ptr;
-    gstruct_head_tmpl_defn_fld_base< T >  field1_base_tmpl_defn_var_base_fld;
-    gstruct_base_tmpl_decl_ref_base< T > *field2_base_tmpl_defn_var_base_inc;
-    gstruct_base_tmpl_defn_ref_base< T > *field2_base_tmpl_defn_var_base_ref;
-    gstruct_base_tmpl_defn_ptr_base< T > *field2_base_tmpl_defn_var_base_ptr;
-    gstruct_base_tmpl_defn_fld_base< T >  field2_base_tmpl_defn_var_base_fld;
-};
-
diff --git a/gcc/testsuite/g++.dg/other/fesd-none.C b/gcc/testsuite/g++.dg/other/fesd-none.C
deleted file mode 100644 (file)
index 0af0a83..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-// { dg-do compile }
-// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=none" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
-# 1 "fesd-none.C"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "fesd-none.C"
-
-//#include "time.h"
-# 1 "time.h" 1 3 4
-struct timespec
-  {
-    long int tv_sec;
-    long int tv_nsec;
-  };
-
-struct itimerspec
-  {
-    struct timespec it_interval;
-    struct timespec it_value;
-  };
-
-# 6 "fesd-none.C" 2
-
-struct timespec base_var8;
-struct itimerspec *base_var9;
-
-#include "fesd-none.h"
-
-struct gstruct_head_ordy_defn_var_base base_var1;
-struct gstruct_base_ordy_defn_var_base base_var2;
-
-struct gstruct_head_tmpl_defn_var_base< int > base_var5;
-struct gstruct_base_tmpl_defn_var_base< int > base_var6;
-
-int base_function() {
-    return 0
-+ base_var1.field_head_ordy_defn_var_base
-+ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
-+ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
-+ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
-+ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
-+ base_var5.field_head_tmpl_defn_var_base
-+ base_var6.field1_base_tmpl_defn_var_base_ptr->field_head_tmpl_defn_ptr_base
-+ base_var6.field1_base_tmpl_defn_var_base_fld.field_head_tmpl_defn_fld_base
-+ base_var6.field2_base_tmpl_defn_var_base_ptr->field_base_tmpl_defn_ptr_base
-+ base_var6.field2_base_tmpl_defn_var_base_fld.field_base_tmpl_defn_fld_base
-;
-}
-
diff --git a/gcc/testsuite/g++.dg/other/fesd-none.h b/gcc/testsuite/g++.dg/other/fesd-none.h
deleted file mode 100644 (file)
index 762f587..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "fesd.h"
-
-struct gstruct_base_ordy_decl_not;
-struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
-
-struct gstruct_base_ordy_decl_ref_base;
-struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
-struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
-struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
-struct gstruct_base_ordy_defn_var_base {
-    gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
-    gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
-    gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
-    gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
-    gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
-    gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
-    gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
-    gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
-};
-
-template< typename T > struct gstruct_base_tmpl_decl_not;
-template< typename T > struct gstruct_base_tmpl_defn_not
-{ int field_base_tmpl_defn_not; };
-
-template< typename T > struct gstruct_base_tmpl_decl_ref_base;
-template< typename T > struct gstruct_base_tmpl_defn_ref_base
-{ int field_base_tmpl_defn_ref_base; };
-template< typename T > struct gstruct_base_tmpl_defn_ptr_base
-{ int field_base_tmpl_defn_ptr_base; };
-template< typename T > struct gstruct_base_tmpl_defn_fld_base
-{ int field_base_tmpl_defn_fld_base; };
-template< typename T > struct gstruct_base_tmpl_defn_var_base {
-    gstruct_head_tmpl_decl_ref_base< T > *field1_base_tmpl_defn_var_base_inc;
-    gstruct_head_tmpl_defn_ref_base< T > *field1_base_tmpl_defn_var_base_ref;
-    gstruct_head_tmpl_defn_ptr_base< T > *field1_base_tmpl_defn_var_base_ptr;
-    gstruct_head_tmpl_defn_fld_base< T >  field1_base_tmpl_defn_var_base_fld;
-    gstruct_base_tmpl_decl_ref_base< T > *field2_base_tmpl_defn_var_base_inc;
-    gstruct_base_tmpl_defn_ref_base< T > *field2_base_tmpl_defn_var_base_ref;
-    gstruct_base_tmpl_defn_ptr_base< T > *field2_base_tmpl_defn_var_base_ptr;
-    gstruct_base_tmpl_defn_fld_base< T >  field2_base_tmpl_defn_var_base_fld;
-};
-
diff --git a/gcc/testsuite/g++.dg/other/fesd-reduced.C b/gcc/testsuite/g++.dg/other/fesd-reduced.C
deleted file mode 100644 (file)
index a93b90f..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-// { dg-do compile }
-// { dg-options "-gdwarf-2 -dA -femit-struct-debug-reduced" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
-# 1 "fesd-reduced.C"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "fesd-reduced.C"
-
-//#include "time.h"
-# 1 "time.h" 1 3 4
-struct timespec
-  {
-    long int tv_sec;
-    long int tv_nsec;
-  };
-
-struct itimerspec
-  {
-    struct timespec it_interval;
-    struct timespec it_value;
-  };
-
-# 6 "fesd-reduced.C" 2
-
-struct timespec base_var8;
-struct itimerspec *base_var9;
-
-#include "fesd-reduced.h"
-
-struct gstruct_head_ordy_defn_var_base base_var1;
-struct gstruct_base_ordy_defn_var_base base_var2;
-
-struct gstruct_head_tmpl_defn_var_base< int > base_var5;
-struct gstruct_base_tmpl_defn_var_base< int > base_var6;
-
-int base_function() {
-    return 0
-+ base_var1.field_head_ordy_defn_var_base
-+ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
-+ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
-+ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
-+ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
-+ base_var5.field_head_tmpl_defn_var_base
-+ base_var6.field1_base_tmpl_defn_var_base_ptr->field_head_tmpl_defn_ptr_base
-+ base_var6.field1_base_tmpl_defn_var_base_fld.field_head_tmpl_defn_fld_base
-+ base_var6.field2_base_tmpl_defn_var_base_ptr->field_base_tmpl_defn_ptr_base
-+ base_var6.field2_base_tmpl_defn_var_base_fld.field_base_tmpl_defn_fld_base
-;
-}
-
diff --git a/gcc/testsuite/g++.dg/other/fesd-reduced.h b/gcc/testsuite/g++.dg/other/fesd-reduced.h
deleted file mode 100644 (file)
index 762f587..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "fesd.h"
-
-struct gstruct_base_ordy_decl_not;
-struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
-
-struct gstruct_base_ordy_decl_ref_base;
-struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
-struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
-struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
-struct gstruct_base_ordy_defn_var_base {
-    gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
-    gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
-    gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
-    gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
-    gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
-    gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
-    gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
-    gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
-};
-
-template< typename T > struct gstruct_base_tmpl_decl_not;
-template< typename T > struct gstruct_base_tmpl_defn_not
-{ int field_base_tmpl_defn_not; };
-
-template< typename T > struct gstruct_base_tmpl_decl_ref_base;
-template< typename T > struct gstruct_base_tmpl_defn_ref_base
-{ int field_base_tmpl_defn_ref_base; };
-template< typename T > struct gstruct_base_tmpl_defn_ptr_base
-{ int field_base_tmpl_defn_ptr_base; };
-template< typename T > struct gstruct_base_tmpl_defn_fld_base
-{ int field_base_tmpl_defn_fld_base; };
-template< typename T > struct gstruct_base_tmpl_defn_var_base {
-    gstruct_head_tmpl_decl_ref_base< T > *field1_base_tmpl_defn_var_base_inc;
-    gstruct_head_tmpl_defn_ref_base< T > *field1_base_tmpl_defn_var_base_ref;
-    gstruct_head_tmpl_defn_ptr_base< T > *field1_base_tmpl_defn_var_base_ptr;
-    gstruct_head_tmpl_defn_fld_base< T >  field1_base_tmpl_defn_var_base_fld;
-    gstruct_base_tmpl_decl_ref_base< T > *field2_base_tmpl_defn_var_base_inc;
-    gstruct_base_tmpl_defn_ref_base< T > *field2_base_tmpl_defn_var_base_ref;
-    gstruct_base_tmpl_defn_ptr_base< T > *field2_base_tmpl_defn_var_base_ptr;
-    gstruct_base_tmpl_defn_fld_base< T >  field2_base_tmpl_defn_var_base_fld;
-};
-
diff --git a/gcc/testsuite/g++.dg/other/fesd-sys.C b/gcc/testsuite/g++.dg/other/fesd-sys.C
deleted file mode 100644 (file)
index 95a9a31..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-// { dg-do compile }
-// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=sys" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_fld_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_decl_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ref_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_tmpl_defn_ptr_head<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_fld_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_var_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_tmpl_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_tmpl_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_decl_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ref_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_tmpl_defn_ptr_base<int>.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_tmpl_defn_ptr_base.*DW_AT_name" } }
-# 1 "fesd-sys.C"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "fesd-sys.C"
-
-//#include "time.h"
-# 1 "time.h" 1 3 4
-struct timespec
-  {
-    long int tv_sec;
-    long int tv_nsec;
-  };
-
-struct itimerspec
-  {
-    struct timespec it_interval;
-    struct timespec it_value;
-  };
-
-# 6 "fesd-sys.C" 2
-
-struct timespec base_var8;
-struct itimerspec *base_var9;
-
-#include "fesd-sys.h"
-
-struct gstruct_head_ordy_defn_var_base base_var1;
-struct gstruct_base_ordy_defn_var_base base_var2;
-
-struct gstruct_head_tmpl_defn_var_base< int > base_var5;
-struct gstruct_base_tmpl_defn_var_base< int > base_var6;
-
-int base_function() {
-    return 0
-+ base_var1.field_head_ordy_defn_var_base
-+ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
-+ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
-+ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
-+ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
-+ base_var5.field_head_tmpl_defn_var_base
-+ base_var6.field1_base_tmpl_defn_var_base_ptr->field_head_tmpl_defn_ptr_base
-+ base_var6.field1_base_tmpl_defn_var_base_fld.field_head_tmpl_defn_fld_base
-+ base_var6.field2_base_tmpl_defn_var_base_ptr->field_base_tmpl_defn_ptr_base
-+ base_var6.field2_base_tmpl_defn_var_base_fld.field_base_tmpl_defn_fld_base
-;
-}
-
diff --git a/gcc/testsuite/g++.dg/other/fesd-sys.h b/gcc/testsuite/g++.dg/other/fesd-sys.h
deleted file mode 100644 (file)
index 762f587..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "fesd.h"
-
-struct gstruct_base_ordy_decl_not;
-struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
-
-struct gstruct_base_ordy_decl_ref_base;
-struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
-struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
-struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
-struct gstruct_base_ordy_defn_var_base {
-    gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
-    gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
-    gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
-    gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
-    gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
-    gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
-    gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
-    gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
-};
-
-template< typename T > struct gstruct_base_tmpl_decl_not;
-template< typename T > struct gstruct_base_tmpl_defn_not
-{ int field_base_tmpl_defn_not; };
-
-template< typename T > struct gstruct_base_tmpl_decl_ref_base;
-template< typename T > struct gstruct_base_tmpl_defn_ref_base
-{ int field_base_tmpl_defn_ref_base; };
-template< typename T > struct gstruct_base_tmpl_defn_ptr_base
-{ int field_base_tmpl_defn_ptr_base; };
-template< typename T > struct gstruct_base_tmpl_defn_fld_base
-{ int field_base_tmpl_defn_fld_base; };
-template< typename T > struct gstruct_base_tmpl_defn_var_base {
-    gstruct_head_tmpl_decl_ref_base< T > *field1_base_tmpl_defn_var_base_inc;
-    gstruct_head_tmpl_defn_ref_base< T > *field1_base_tmpl_defn_var_base_ref;
-    gstruct_head_tmpl_defn_ptr_base< T > *field1_base_tmpl_defn_var_base_ptr;
-    gstruct_head_tmpl_defn_fld_base< T >  field1_base_tmpl_defn_var_base_fld;
-    gstruct_base_tmpl_decl_ref_base< T > *field2_base_tmpl_defn_var_base_inc;
-    gstruct_base_tmpl_defn_ref_base< T > *field2_base_tmpl_defn_var_base_ref;
-    gstruct_base_tmpl_defn_ptr_base< T > *field2_base_tmpl_defn_var_base_ptr;
-    gstruct_base_tmpl_defn_fld_base< T >  field2_base_tmpl_defn_var_base_fld;
-};
-
diff --git a/gcc/testsuite/g++.dg/other/fesd.h b/gcc/testsuite/g++.dg/other/fesd.h
deleted file mode 100644 (file)
index 83bb15a..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-where from: base = matching base; head = other header
-what kind:  ordy = ordinary struct; tmpl = template struct
-definition: decl = incomplete declaration; defn = full definition
-how used:   not = not used; ref = by ref; ptr = through pointer;
-            fld = as field; var = as variable
-from where: base = from base; head = other header
-*/
-
-struct gstruct_head_ordy_decl_not;
-struct gstruct_head_ordy_defn_not { int field_head_ordy_defn_not; };
-
-struct gstruct_head_ordy_decl_ref_head;
-struct gstruct_head_ordy_defn_ref_head { int field_head_ordy_defn_ref_head; };
-struct gstruct_head_ordy_defn_ptr_head { int field_head_ordy_defn_ptr_head; };
-struct gstruct_head_ordy_defn_fld_head { int field_head_ordy_defn_fld_head; };
-struct gstruct_head_ordy_defn_var_head {
-    gstruct_head_ordy_decl_ref_head *field_head_ordy_defn_var_head_inc;
-    gstruct_head_ordy_defn_ref_head *field_head_ordy_defn_var_head_ref;
-    gstruct_head_ordy_defn_ptr_head *field_head_ordy_defn_var_head_ptr;
-    gstruct_head_ordy_defn_fld_head  field_head_ordy_defn_var_head_fld;
-};
-extern struct gstruct_head_ordy_defn_var_head head_var1;
-
-struct gstruct_head_ordy_decl_ref_base;
-struct gstruct_head_ordy_defn_ref_base { int field_head_ordy_defn_ref_base; };
-struct gstruct_head_ordy_defn_ptr_base { int field_head_ordy_defn_ptr_base; };
-struct gstruct_head_ordy_defn_fld_base { int field_head_ordy_defn_fld_base; };
-struct gstruct_head_ordy_defn_var_base { int field_head_ordy_defn_var_base; };
-
-template< typename T > struct gstruct_head_tmpl_decl_not;
-template< typename T > struct gstruct_head_tmpl_defn_not
-{ T field_head_tmpl_defn_not; };
-
-template< typename T > struct gstruct_head_tmpl_decl_ref_head;
-template< typename T > struct gstruct_head_tmpl_defn_ref_head
-{ T field_head_tmpl_defn_ref_head; };
-template< typename T > struct gstruct_head_tmpl_defn_ptr_head
-{ T field_head_tmpl_defn_ptr_head; };
-template< typename T > struct gstruct_head_tmpl_defn_fld_head
-{ T field_head_tmpl_defn_fld_head; };
-template< typename T > struct gstruct_head_tmpl_defn_var_head {
-    gstruct_head_tmpl_decl_ref_head< T > *field_head_tmpl_defn_var_head_inc;
-    gstruct_head_tmpl_defn_ref_head< T > *field_head_tmpl_defn_var_head_ref;
-    gstruct_head_tmpl_defn_ptr_head< T > *field_head_tmpl_defn_var_head_ptr;
-    gstruct_head_tmpl_defn_fld_head< T >  field_head_tmpl_defn_var_head_fld;
-};
-extern gstruct_head_tmpl_defn_var_head< int > head_var5;
-
-template< typename T > struct gstruct_head_tmpl_decl_ref_base;
-template< typename T > struct gstruct_head_tmpl_defn_ref_base
-{ T field_head_tmpl_defn_ref_base; };
-template< typename T > struct gstruct_head_tmpl_defn_ptr_base
-{ T field_head_tmpl_defn_ptr_base; };
-template< typename T > struct gstruct_head_tmpl_defn_fld_base
-{ T field_head_tmpl_defn_fld_base; };
-template< typename T > struct gstruct_head_tmpl_defn_var_base
-{ T field_head_tmpl_defn_var_base; };
-
-inline int head_function() {
-    return 0
-+ head_var1.field_head_ordy_defn_var_head_ptr->field_head_ordy_defn_ptr_head
-+ head_var1.field_head_ordy_defn_var_head_fld.field_head_ordy_defn_fld_head
-+ head_var5.field_head_tmpl_defn_var_head_ptr->field_head_tmpl_defn_ptr_head
-+ head_var5.field_head_tmpl_defn_var_head_fld.field_head_tmpl_defn_fld_head
-;
-}
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.c
new file mode 100644 (file)
index 0000000..fc51090
--- /dev/null
@@ -0,0 +1,84 @@
+// { dg-do compile }
+// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=any" }
+// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
+// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+# 1 "fesd-any.c"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 1 "fesd-any.c"
+
+//#include "time.h"
+# 1 "time.h" 1 3 4
+struct timespec
+  {
+    long int tv_sec;
+    long int tv_nsec;
+  };
+
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+# 6 "fesd-any.c" 2
+
+struct timespec base_var8;
+struct itimerspec *base_var9;
+
+#include "fesd-any.h"
+
+struct gstruct_head_ordy_defn_var_base base_var1;
+struct gstruct_base_ordy_defn_var_base base_var2;
+
+int base_function() {
+    return 0
++ base_var1.field_head_ordy_defn_var_base
++ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
++ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
++ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
++ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
+;
+}
+
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.h b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-any.h
new file mode 100644 (file)
index 0000000..a7146b6
--- /dev/null
@@ -0,0 +1,19 @@
+#include "fesd.h"
+
+struct gstruct_base_ordy_decl_not;
+struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
+
+struct gstruct_base_ordy_decl_ref_base;
+struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
+struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
+struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
+struct gstruct_base_ordy_defn_var_base {
+    struct gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
+    struct gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
+    struct gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
+    struct gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
+    struct gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
+    struct gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
+    struct gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
+    struct gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
+};
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.c
new file mode 100644 (file)
index 0000000..a32abb5
--- /dev/null
@@ -0,0 +1,83 @@
+// { dg-do compile }
+// { dg-options "-gdwarf-2 -dA -femit-struct-debug-baseonly" }
+// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
+// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+# 1 "fesd-baseonly.c"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 1 "fesd-baseonly.c"
+
+//#include "time.h"
+# 1 "time.h" 1 3 4
+struct timespec
+  {
+    long int tv_sec;
+    long int tv_nsec;
+  };
+
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+# 6 "fesd-baseonly.c" 2
+
+struct timespec base_var8;
+struct itimerspec *base_var9;
+
+#include "fesd-baseonly.h"
+
+struct gstruct_head_ordy_defn_var_base base_var1;
+struct gstruct_base_ordy_defn_var_base base_var2;
+
+int base_function() {
+    return 0
++ base_var1.field_head_ordy_defn_var_base
++ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
++ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
++ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
++ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
+;
+}
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.h b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-baseonly.h
new file mode 100644 (file)
index 0000000..a7146b6
--- /dev/null
@@ -0,0 +1,19 @@
+#include "fesd.h"
+
+struct gstruct_base_ordy_decl_not;
+struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
+
+struct gstruct_base_ordy_decl_ref_base;
+struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
+struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
+struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
+struct gstruct_base_ordy_defn_var_base {
+    struct gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
+    struct gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
+    struct gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
+    struct gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
+    struct gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
+    struct gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
+    struct gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
+    struct gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
+};
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.c
new file mode 100644 (file)
index 0000000..bd218f8
--- /dev/null
@@ -0,0 +1,84 @@
+// { dg-do compile }
+// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=none" }
+// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
+// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+# 1 "fesd-none.c"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 1 "fesd-none.c"
+
+//#include "time.h"
+# 1 "time.h" 1 3 4
+struct timespec
+  {
+    long int tv_sec;
+    long int tv_nsec;
+  };
+
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+# 6 "fesd-none.c" 2
+
+struct timespec base_var8;
+struct itimerspec *base_var9;
+
+#include "fesd-none.h"
+
+struct gstruct_head_ordy_defn_var_base base_var1;
+struct gstruct_base_ordy_defn_var_base base_var2;
+
+int base_function() {
+    return 0
++ base_var1.field_head_ordy_defn_var_base
++ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
++ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
++ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
++ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
+;
+}
+
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.h b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-none.h
new file mode 100644 (file)
index 0000000..a7146b6
--- /dev/null
@@ -0,0 +1,19 @@
+#include "fesd.h"
+
+struct gstruct_base_ordy_decl_not;
+struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
+
+struct gstruct_base_ordy_decl_ref_base;
+struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
+struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
+struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
+struct gstruct_base_ordy_defn_var_base {
+    struct gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
+    struct gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
+    struct gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
+    struct gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
+    struct gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
+    struct gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
+    struct gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
+    struct gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
+};
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.c
new file mode 100644 (file)
index 0000000..ac599f4
--- /dev/null
@@ -0,0 +1,83 @@
+// { dg-do compile }
+// { dg-options "-gdwarf-2 -dA -femit-struct-debug-reduced" }
+// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
+// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+# 1 "fesd-reduced.c"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 1 "fesd-reduced.c"
+
+//#include "time.h"
+# 1 "time.h" 1 3 4
+struct timespec
+  {
+    long int tv_sec;
+    long int tv_nsec;
+  };
+
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+# 6 "fesd-reduced.c" 2
+
+struct timespec base_var8;
+struct itimerspec *base_var9;
+
+#include "fesd-reduced.h"
+
+struct gstruct_head_ordy_defn_var_base base_var1;
+struct gstruct_base_ordy_defn_var_base base_var2;
+
+int base_function() {
+    return 0
++ base_var1.field_head_ordy_defn_var_base
++ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
++ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
++ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
++ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
+;
+}
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.h b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-reduced.h
new file mode 100644 (file)
index 0000000..a7146b6
--- /dev/null
@@ -0,0 +1,19 @@
+#include "fesd.h"
+
+struct gstruct_base_ordy_decl_not;
+struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
+
+struct gstruct_base_ordy_decl_ref_base;
+struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
+struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
+struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
+struct gstruct_base_ordy_defn_var_base {
+    struct gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
+    struct gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
+    struct gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
+    struct gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
+    struct gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
+    struct gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
+    struct gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
+    struct gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
+};
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.c
new file mode 100644 (file)
index 0000000..3a5c0bf
--- /dev/null
@@ -0,0 +1,83 @@
+// { dg-do compile }
+// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=sys" }
+// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
+// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
+// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
+// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
+// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
+// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
+# 1 "fesd-sys.c"
+# 1 "<built-in>"
+# 1 "<command-line>"
+# 1 "fesd-sys.c"
+
+//#include "time.h"
+# 1 "time.h" 1 3 4
+struct timespec
+  {
+    long int tv_sec;
+    long int tv_nsec;
+  };
+
+struct itimerspec
+  {
+    struct timespec it_interval;
+    struct timespec it_value;
+  };
+
+# 6 "fesd-sys.c" 2
+
+struct timespec base_var8;
+struct itimerspec *base_var9;
+
+#include "fesd-sys.h"
+
+struct gstruct_head_ordy_defn_var_base base_var1;
+struct gstruct_base_ordy_defn_var_base base_var2;
+
+int base_function() {
+    return 0
++ base_var1.field_head_ordy_defn_var_base
++ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
++ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
++ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
++ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
+;
+}
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.h b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd-sys.h
new file mode 100644 (file)
index 0000000..a7146b6
--- /dev/null
@@ -0,0 +1,19 @@
+#include "fesd.h"
+
+struct gstruct_base_ordy_decl_not;
+struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
+
+struct gstruct_base_ordy_decl_ref_base;
+struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
+struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
+struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
+struct gstruct_base_ordy_defn_var_base {
+    struct gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
+    struct gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
+    struct gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
+    struct gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
+    struct gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
+    struct gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
+    struct gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
+    struct gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
+};
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/fesd.h b/gcc/testsuite/gcc.dg/debug/dwarf2/fesd.h
new file mode 100644 (file)
index 0000000..46b24f5
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+where from: base = matching base; head = other header
+what kind:  ordy = ordinary struct; tmpl = template struct
+definition: decl = incomplete declaration; defn = full definition
+how used:   not = not used; ref = by ref; ptr = through pointer;
+            fld = as field; var = as variable
+from where: base = from base; head = other header
+*/
+
+struct gstruct_head_ordy_decl_not;
+struct gstruct_head_ordy_defn_not { int field_head_ordy_defn_not; };
+
+struct gstruct_head_ordy_decl_ref_head;
+struct gstruct_head_ordy_defn_ref_head { int field_head_ordy_defn_ref_head; };
+struct gstruct_head_ordy_defn_ptr_head { int field_head_ordy_defn_ptr_head; };
+struct gstruct_head_ordy_defn_fld_head { int field_head_ordy_defn_fld_head; };
+struct gstruct_head_ordy_defn_var_head {
+    struct gstruct_head_ordy_decl_ref_head *field_head_ordy_defn_var_head_inc;
+    struct gstruct_head_ordy_defn_ref_head *field_head_ordy_defn_var_head_ref;
+    struct gstruct_head_ordy_defn_ptr_head *field_head_ordy_defn_var_head_ptr;
+    struct gstruct_head_ordy_defn_fld_head  field_head_ordy_defn_var_head_fld;
+};
+extern struct gstruct_head_ordy_defn_var_head head_var1;
+
+struct gstruct_head_ordy_decl_ref_base;
+struct gstruct_head_ordy_defn_ref_base { int field_head_ordy_defn_ref_base; };
+struct gstruct_head_ordy_defn_ptr_base { int field_head_ordy_defn_ptr_base; };
+struct gstruct_head_ordy_defn_fld_base { int field_head_ordy_defn_fld_base; };
+struct gstruct_head_ordy_defn_var_base { int field_head_ordy_defn_var_base; };
+
+inline int head_function() {
+    return 0
++ head_var1.field_head_ordy_defn_var_head_ptr->field_head_ordy_defn_ptr_head
++ head_var1.field_head_ordy_defn_var_head_fld.field_head_ordy_defn_fld_head
+;
+}
diff --git a/gcc/testsuite/gcc.dg/fesd-any.c b/gcc/testsuite/gcc.dg/fesd-any.c
deleted file mode 100644 (file)
index fc51090..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-// { dg-do compile }
-// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=any" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-# 1 "fesd-any.c"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "fesd-any.c"
-
-//#include "time.h"
-# 1 "time.h" 1 3 4
-struct timespec
-  {
-    long int tv_sec;
-    long int tv_nsec;
-  };
-
-struct itimerspec
-  {
-    struct timespec it_interval;
-    struct timespec it_value;
-  };
-
-# 6 "fesd-any.c" 2
-
-struct timespec base_var8;
-struct itimerspec *base_var9;
-
-#include "fesd-any.h"
-
-struct gstruct_head_ordy_defn_var_base base_var1;
-struct gstruct_base_ordy_defn_var_base base_var2;
-
-int base_function() {
-    return 0
-+ base_var1.field_head_ordy_defn_var_base
-+ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
-+ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
-+ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
-+ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
-;
-}
-
diff --git a/gcc/testsuite/gcc.dg/fesd-any.h b/gcc/testsuite/gcc.dg/fesd-any.h
deleted file mode 100644 (file)
index a7146b6..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "fesd.h"
-
-struct gstruct_base_ordy_decl_not;
-struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
-
-struct gstruct_base_ordy_decl_ref_base;
-struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
-struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
-struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
-struct gstruct_base_ordy_defn_var_base {
-    struct gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
-    struct gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
-    struct gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
-    struct gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
-    struct gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
-    struct gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
-    struct gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
-    struct gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
-};
diff --git a/gcc/testsuite/gcc.dg/fesd-baseonly.c b/gcc/testsuite/gcc.dg/fesd-baseonly.c
deleted file mode 100644 (file)
index a32abb5..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-// { dg-do compile }
-// { dg-options "-gdwarf-2 -dA -femit-struct-debug-baseonly" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-# 1 "fesd-baseonly.c"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "fesd-baseonly.c"
-
-//#include "time.h"
-# 1 "time.h" 1 3 4
-struct timespec
-  {
-    long int tv_sec;
-    long int tv_nsec;
-  };
-
-struct itimerspec
-  {
-    struct timespec it_interval;
-    struct timespec it_value;
-  };
-
-# 6 "fesd-baseonly.c" 2
-
-struct timespec base_var8;
-struct itimerspec *base_var9;
-
-#include "fesd-baseonly.h"
-
-struct gstruct_head_ordy_defn_var_base base_var1;
-struct gstruct_base_ordy_defn_var_base base_var2;
-
-int base_function() {
-    return 0
-+ base_var1.field_head_ordy_defn_var_base
-+ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
-+ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
-+ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
-+ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
-;
-}
diff --git a/gcc/testsuite/gcc.dg/fesd-baseonly.h b/gcc/testsuite/gcc.dg/fesd-baseonly.h
deleted file mode 100644 (file)
index a7146b6..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "fesd.h"
-
-struct gstruct_base_ordy_decl_not;
-struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
-
-struct gstruct_base_ordy_decl_ref_base;
-struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
-struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
-struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
-struct gstruct_base_ordy_defn_var_base {
-    struct gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
-    struct gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
-    struct gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
-    struct gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
-    struct gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
-    struct gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
-    struct gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
-    struct gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
-};
diff --git a/gcc/testsuite/gcc.dg/fesd-none.c b/gcc/testsuite/gcc.dg/fesd-none.c
deleted file mode 100644 (file)
index bd218f8..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-// { dg-do compile }
-// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=none" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-# 1 "fesd-none.c"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "fesd-none.c"
-
-//#include "time.h"
-# 1 "time.h" 1 3 4
-struct timespec
-  {
-    long int tv_sec;
-    long int tv_nsec;
-  };
-
-struct itimerspec
-  {
-    struct timespec it_interval;
-    struct timespec it_value;
-  };
-
-# 6 "fesd-none.c" 2
-
-struct timespec base_var8;
-struct itimerspec *base_var9;
-
-#include "fesd-none.h"
-
-struct gstruct_head_ordy_defn_var_base base_var1;
-struct gstruct_base_ordy_defn_var_base base_var2;
-
-int base_function() {
-    return 0
-+ base_var1.field_head_ordy_defn_var_base
-+ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
-+ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
-+ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
-+ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
-;
-}
-
diff --git a/gcc/testsuite/gcc.dg/fesd-none.h b/gcc/testsuite/gcc.dg/fesd-none.h
deleted file mode 100644 (file)
index a7146b6..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "fesd.h"
-
-struct gstruct_base_ordy_decl_not;
-struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
-
-struct gstruct_base_ordy_decl_ref_base;
-struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
-struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
-struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
-struct gstruct_base_ordy_defn_var_base {
-    struct gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
-    struct gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
-    struct gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
-    struct gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
-    struct gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
-    struct gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
-    struct gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
-    struct gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
-};
diff --git a/gcc/testsuite/gcc.dg/fesd-reduced.c b/gcc/testsuite/gcc.dg/fesd-reduced.c
deleted file mode 100644 (file)
index ac599f4..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-// { dg-do compile }
-// { dg-options "-gdwarf-2 -dA -femit-struct-debug-reduced" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-# 1 "fesd-reduced.c"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "fesd-reduced.c"
-
-//#include "time.h"
-# 1 "time.h" 1 3 4
-struct timespec
-  {
-    long int tv_sec;
-    long int tv_nsec;
-  };
-
-struct itimerspec
-  {
-    struct timespec it_interval;
-    struct timespec it_value;
-  };
-
-# 6 "fesd-reduced.c" 2
-
-struct timespec base_var8;
-struct itimerspec *base_var9;
-
-#include "fesd-reduced.h"
-
-struct gstruct_head_ordy_defn_var_base base_var1;
-struct gstruct_base_ordy_defn_var_base base_var2;
-
-int base_function() {
-    return 0
-+ base_var1.field_head_ordy_defn_var_base
-+ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
-+ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
-+ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
-+ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
-;
-}
diff --git a/gcc/testsuite/gcc.dg/fesd-reduced.h b/gcc/testsuite/gcc.dg/fesd-reduced.h
deleted file mode 100644 (file)
index a7146b6..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "fesd.h"
-
-struct gstruct_base_ordy_decl_not;
-struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
-
-struct gstruct_base_ordy_decl_ref_base;
-struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
-struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
-struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
-struct gstruct_base_ordy_defn_var_base {
-    struct gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
-    struct gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
-    struct gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
-    struct gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
-    struct gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
-    struct gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
-    struct gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
-    struct gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
-};
diff --git a/gcc/testsuite/gcc.dg/fesd-sys.c b/gcc/testsuite/gcc.dg/fesd-sys.c
deleted file mode 100644 (file)
index 3a5c0bf..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-// { dg-do compile }
-// { dg-options "-gdwarf-2 -dA -femit-struct-debug-detailed=sys" }
-// { dg-final { scan-assembler "timespec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_sec.*DW_AT_name" } }
-// { dg-final { scan-assembler "tv_nsec.*DW_AT_name" } }
-// { dg-final { scan-assembler "itimerspec.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_interval.*DW_AT_name" } }
-// { dg-final { scan-assembler "it_value.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_head.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_head_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "gstruct_head_ordy_decl_ref_head.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler-not "field_head_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_ptr_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field_base_ordy_defn_fld_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_defn_var_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field1_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_inc.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ref.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_ptr.*DW_AT_name" } }
-// { dg-final { scan-assembler "field2_base_ordy_defn_var_base_fld.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_head_ordy_decl_ref_base.*DW_AT_name" } }
-// { dg-final { scan-assembler "gstruct_base_ordy_decl_ref_base.*DW_AT_name" } }
-# 1 "fesd-sys.c"
-# 1 "<built-in>"
-# 1 "<command-line>"
-# 1 "fesd-sys.c"
-
-//#include "time.h"
-# 1 "time.h" 1 3 4
-struct timespec
-  {
-    long int tv_sec;
-    long int tv_nsec;
-  };
-
-struct itimerspec
-  {
-    struct timespec it_interval;
-    struct timespec it_value;
-  };
-
-# 6 "fesd-sys.c" 2
-
-struct timespec base_var8;
-struct itimerspec *base_var9;
-
-#include "fesd-sys.h"
-
-struct gstruct_head_ordy_defn_var_base base_var1;
-struct gstruct_base_ordy_defn_var_base base_var2;
-
-int base_function() {
-    return 0
-+ base_var1.field_head_ordy_defn_var_base
-+ base_var2.field1_base_ordy_defn_var_base_ptr->field_head_ordy_defn_ptr_base
-+ base_var2.field1_base_ordy_defn_var_base_fld.field_head_ordy_defn_fld_base
-+ base_var2.field2_base_ordy_defn_var_base_ptr->field_base_ordy_defn_ptr_base
-+ base_var2.field2_base_ordy_defn_var_base_fld.field_base_ordy_defn_fld_base
-;
-}
diff --git a/gcc/testsuite/gcc.dg/fesd-sys.h b/gcc/testsuite/gcc.dg/fesd-sys.h
deleted file mode 100644 (file)
index a7146b6..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "fesd.h"
-
-struct gstruct_base_ordy_decl_not;
-struct gstruct_base_ordy_defn_not { int field_base_ordy_defn_not; };
-
-struct gstruct_base_ordy_decl_ref_base;
-struct gstruct_base_ordy_defn_ref_base { int field_base_ordy_defn_ref_base; };
-struct gstruct_base_ordy_defn_ptr_base { int field_base_ordy_defn_ptr_base; };
-struct gstruct_base_ordy_defn_fld_base { int field_base_ordy_defn_fld_base; };
-struct gstruct_base_ordy_defn_var_base {
-    struct gstruct_head_ordy_decl_ref_base *field1_base_ordy_defn_var_base_inc;
-    struct gstruct_head_ordy_defn_ref_base *field1_base_ordy_defn_var_base_ref;
-    struct gstruct_head_ordy_defn_ptr_base *field1_base_ordy_defn_var_base_ptr;
-    struct gstruct_head_ordy_defn_fld_base  field1_base_ordy_defn_var_base_fld;
-    struct gstruct_base_ordy_decl_ref_base *field2_base_ordy_defn_var_base_inc;
-    struct gstruct_base_ordy_defn_ref_base *field2_base_ordy_defn_var_base_ref;
-    struct gstruct_base_ordy_defn_ptr_base *field2_base_ordy_defn_var_base_ptr;
-    struct gstruct_base_ordy_defn_fld_base  field2_base_ordy_defn_var_base_fld;
-};
diff --git a/gcc/testsuite/gcc.dg/fesd.h b/gcc/testsuite/gcc.dg/fesd.h
deleted file mode 100644 (file)
index 46b24f5..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-where from: base = matching base; head = other header
-what kind:  ordy = ordinary struct; tmpl = template struct
-definition: decl = incomplete declaration; defn = full definition
-how used:   not = not used; ref = by ref; ptr = through pointer;
-            fld = as field; var = as variable
-from where: base = from base; head = other header
-*/
-
-struct gstruct_head_ordy_decl_not;
-struct gstruct_head_ordy_defn_not { int field_head_ordy_defn_not; };
-
-struct gstruct_head_ordy_decl_ref_head;
-struct gstruct_head_ordy_defn_ref_head { int field_head_ordy_defn_ref_head; };
-struct gstruct_head_ordy_defn_ptr_head { int field_head_ordy_defn_ptr_head; };
-struct gstruct_head_ordy_defn_fld_head { int field_head_ordy_defn_fld_head; };
-struct gstruct_head_ordy_defn_var_head {
-    struct gstruct_head_ordy_decl_ref_head *field_head_ordy_defn_var_head_inc;
-    struct gstruct_head_ordy_defn_ref_head *field_head_ordy_defn_var_head_ref;
-    struct gstruct_head_ordy_defn_ptr_head *field_head_ordy_defn_var_head_ptr;
-    struct gstruct_head_ordy_defn_fld_head  field_head_ordy_defn_var_head_fld;
-};
-extern struct gstruct_head_ordy_defn_var_head head_var1;
-
-struct gstruct_head_ordy_decl_ref_base;
-struct gstruct_head_ordy_defn_ref_base { int field_head_ordy_defn_ref_base; };
-struct gstruct_head_ordy_defn_ptr_base { int field_head_ordy_defn_ptr_base; };
-struct gstruct_head_ordy_defn_fld_base { int field_head_ordy_defn_fld_base; };
-struct gstruct_head_ordy_defn_var_base { int field_head_ordy_defn_var_base; };
-
-inline int head_function() {
-    return 0
-+ head_var1.field_head_ordy_defn_var_head_ptr->field_head_ordy_defn_ptr_head
-+ head_var1.field_head_ordy_defn_var_head_fld.field_head_ordy_defn_fld_head
-;
-}