]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/32304 (ICE in set_mem_attributes_minus_bitpos)
authorAndrew Pinski <andrew_pinski@playstation.sony.com>
Sat, 4 Aug 2007 00:05:56 +0000 (00:05 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Sat, 4 Aug 2007 00:05:56 +0000 (17:05 -0700)
2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/32304
        * ipa-reference.c (has_proper_scope_for_analysis): Return false when
        the decl's type has TYPE_NEEDS_CONSTRUCTING set.

2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/32304
        * g++.dg/torture/pr32304.C: New testcase.

From-SVN: r127191

gcc/ChangeLog
gcc/ipa-reference.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/torture/pr32304.C [new file with mode: 0644]

index 21f9c3a1e518e0aa95b328325f27e0763aff49d9..eeb4a51e0ddbbc8ce6ebd6640d731628fdcd3051 100644 (file)
@@ -1,3 +1,9 @@
+2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR middle-end/32304
+       * ipa-reference.c (has_proper_scope_for_analysis): Return false when
+       the decl's type has TYPE_NEEDS_CONSTRUCTING set.
+
 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
 
        PR middle-end/32935
index 5e1a6ebbaeb0a92d294823f961e40b12df96846f..1a962c52cdb1b1596a53cd63944265a66e490752 100644 (file)
@@ -267,6 +267,10 @@ has_proper_scope_for_analysis (tree t)
   if (DECL_EXTERNAL (t) || TREE_PUBLIC (t))
     return false;
 
+  /* We cannot touch decls where the type needs constructing.  */
+  if (TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (t)))
+    return false;
+
   /* This is a variable we care about.  Check if we have seen it
      before, and if not add it the set of variables we care about.  */
   if (!bitmap_bit_p (all_module_statics, DECL_UID (t)))
index 7ba9afc60f187ac7e1ef8560779be746c67212af..ce38fc75bf83808825a7f623772972fc002f6045 100644 (file)
@@ -1,3 +1,8 @@
+2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR middle-end/32304
+       * g++.dg/torture/pr32304.C: New testcase.
+
 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
 
        PR middle-end/32935
diff --git a/gcc/testsuite/g++.dg/torture/pr32304.C b/gcc/testsuite/g++.dg/torture/pr32304.C
new file mode 100644 (file)
index 0000000..236d00b
--- /dev/null
@@ -0,0 +1,9 @@
+// { dg-do compile }
+
+struct S {
+        S() {}
+};
+S f() {
+        static S s;
+        return s;
+}