]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
dwarf2out.c (should_emit_struct_debug): Add check for type_decl variable is not NULL.
authorEvgeny Gavrin <e.gavrin@samsung.com>
Fri, 13 Sep 2013 22:36:42 +0000 (22:36 +0000)
committerCary Coutant <ccoutant@gcc.gnu.org>
Fri, 13 Sep 2013 22:36:42 +0000 (15:36 -0700)
2013-09-13  Evgeny Gavrin <e.gavrin@samsung.com>

gcc/
        * dwarf2out.c (should_emit_struct_debug): Add check
        for type_decl variable is not NULL.

gcc/testsuite
        * gcc.dg/debug/dwarf2/omp-fesdr.c: Add test.
        * g++.dg/debug/dwarf2/omp-fesdr.C: Add test.

From-SVN: r202582

gcc/ChangeLog
gcc/dwarf2out.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/debug/dwarf2/omp-fesdr.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/debug/dwarf2/omp-fesdr.c [new file with mode: 0644]

index 6413fe37299f1017b00bf804118560d6d5983b85..0224228f253df2f3e32325fa870c153ba4b73e78 100644 (file)
@@ -1,3 +1,8 @@
+2013-09-13  Evgeny Gavrin <e.gavrin@samsung.com>
+
+        * dwarf2out.c (should_emit_struct_debug): Add check
+        for type_decl variable is not NULL.
+
 2013-09-13  Jacek Caban  <jacek@codeweavers.com>
 
        * config.gcc: Use new winnt-c.c target hooks
index 7bf739d154f75d477ae498fb0706a96b607875c5..95049e4d18487b65223f204d531f227aa87d2dbf 100644 (file)
@@ -365,11 +365,15 @@ should_emit_struct_debug (tree type, enum debug_info_usage usage)
 
   type_decl = TYPE_STUB_DECL (TYPE_MAIN_VARIANT (type));
 
-  if (criterion == DINFO_STRUCT_FILE_SYS && DECL_IN_SYSTEM_HEADER (type_decl))
-    return DUMP_GSTRUCT (type, usage, criterion, generic, false, true);
+  if (type_decl != NULL)
+    {
+     if (criterion == DINFO_STRUCT_FILE_SYS && DECL_IN_SYSTEM_HEADER (type_decl))
+        return DUMP_GSTRUCT (type, usage, criterion, generic, false, true);
+
+      if (matches_main_base (DECL_SOURCE_FILE (type_decl)))
+        return DUMP_GSTRUCT (type, usage, criterion, generic, true, true);
+    }
 
-  if (matches_main_base (DECL_SOURCE_FILE (type_decl)))
-    return DUMP_GSTRUCT (type, usage, criterion, generic, true, true);
   return DUMP_GSTRUCT (type, usage, criterion, generic, false, false);
 }
 \f
index 179dfe279d355147334e95e279d4bd20afa2ddc4..aeff6d08b8aab9efe3a577d2dc65698750d8abb1 100644 (file)
@@ -1,3 +1,8 @@
+2013-09-13  Evgeny Gavrin <e.gavrin@samsung.com>
+
+        * gcc.dg/debug/dwarf2/omp-fesdr.c: Add test.
+        * g++.dg/debug/dwarf2/omp-fesdr.C: Add test.
+
 2013-09-13  Jacek Caban  <jacek@codeweavers.com>
 
        * g++.dg/abi/main.C: Added implicit C linkage tests
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/omp-fesdr.C b/gcc/testsuite/g++.dg/debug/dwarf2/omp-fesdr.C
new file mode 100644 (file)
index 0000000..005acdf
--- /dev/null
@@ -0,0 +1,35 @@
+/* { dg-do compile } */
+/* { dg-options "-g -fopenmp -gdwarf-2 -femit-struct-debug-reduced" } */
+
+struct aa
+{
+  int a;
+};
+
+int
+f7 (void)
+{
+  int v7i = 6, v7j = 7, v7k = 9, v7l = 0, v7n = 0, v7o = 1;
+
+  #pragma omp parallel
+  {
+    #pragma omp master
+    v7o++;
+    #pragma omp for private (v7i) firstprivate (v7k) reduction (+:v7l)
+    for (v7n = 0; v7n < 3; v7n++)
+    {
+      int v7m = v7j + v7k;
+      v7i = 8;
+      v7l++;
+    }
+  }
+
+  return v7i + v7j + v7k + v7l + v7n;
+}
+
+int
+main (void)
+{
+  f7 ();
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/omp-fesdr.c b/gcc/testsuite/gcc.dg/debug/dwarf2/omp-fesdr.c
new file mode 100644 (file)
index 0000000..005acdf
--- /dev/null
@@ -0,0 +1,35 @@
+/* { dg-do compile } */
+/* { dg-options "-g -fopenmp -gdwarf-2 -femit-struct-debug-reduced" } */
+
+struct aa
+{
+  int a;
+};
+
+int
+f7 (void)
+{
+  int v7i = 6, v7j = 7, v7k = 9, v7l = 0, v7n = 0, v7o = 1;
+
+  #pragma omp parallel
+  {
+    #pragma omp master
+    v7o++;
+    #pragma omp for private (v7i) firstprivate (v7k) reduction (+:v7l)
+    for (v7n = 0; v7n < 3; v7n++)
+    {
+      int v7m = v7j + v7k;
+      v7i = 8;
+      v7l++;
+    }
+  }
+
+  return v7i + v7j + v7k + v7l + v7n;
+}
+
+int
+main (void)
+{
+  f7 ();
+  return 0;
+}