]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR c/52862 (ICE convert_to_pointer, at convert.c:50)
authorRichard Guenther <rguenther@suse.de>
Tue, 22 May 2012 09:17:42 +0000 (09:17 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 22 May 2012 09:17:42 +0000 (09:17 +0000)
2012-05-22  Richard Guenther  <rguenther@suse.de>

        Backport from mainline
        2012-04-12  Richard Guenther  <rguenther@suse.de>

PR c/52862
* convert.c (convert_to_pointer): Remove special-casing of
zero.

* gcc.dg/pr52862.c: New testcase.

From-SVN: r187762

gcc/ChangeLog
gcc/convert.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr52862.c [new file with mode: 0644]

index ca2386388a22fae1e07b173e8b26afee5c5aaa1d..2d96e00c1e929df87f5d0b5df697f15848df5ada 100644 (file)
@@ -1,3 +1,12 @@
+2012-05-22  Richard Guenther  <rguenther@suse.de>
+
+       Backport from mainline
+       2012-04-12  Richard Guenther  <rguenther@suse.de>
+
+       PR c/52862
+       * convert.c (convert_to_pointer): Remove special-casing of
+       zero.
+
 2012-05-21  Joseph Myers  <joseph@codesourcery.com>
 
        PR c/53418
index 21d09c157eb94a8440dc6c018e1dcd42d697047d..765c542dbdbc3134f2a7ae54fcfb557d6ad1662a 100644 (file)
@@ -44,11 +44,6 @@ convert_to_pointer (tree type, tree expr)
   if (TREE_TYPE (expr) == type)
     return expr;
 
-  /* Propagate overflow to the NULL pointer.  */
-  if (integer_zerop (expr))
-    return force_fit_type_double (type, double_int_zero, 0,
-                                 TREE_OVERFLOW (expr));
-
   switch (TREE_CODE (TREE_TYPE (expr)))
     {
     case POINTER_TYPE:
index dc2d3736da0cf2afe8d6608f2a7a3e9ea4f0c17a..710bcf6378f2e3ae05ce7a8dff0471eb36fe81c0 100644 (file)
@@ -1,3 +1,11 @@
+2012-05-22  Richard Guenther  <rguenther@suse.de>
+
+       Backport from mainline
+       2012-04-12  Richard Guenther  <rguenther@suse.de>
+
+       PR c/52862
+       * gcc.dg/pr52862.c: New testcase.
+
 2012-05-21  Joseph Myers  <joseph@codesourcery.com>
 
        PR c/53418
diff --git a/gcc/testsuite/gcc.dg/pr52862.c b/gcc/testsuite/gcc.dg/pr52862.c
new file mode 100644 (file)
index 0000000..febe7a8
--- /dev/null
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O" } */
+
+void ASMAtomicWritePtrVoid(const void *pv);
+void rtThreadDestroy(void)
+{
+  void * const pvTypeChecked = ((void *)0);
+  ASMAtomicWritePtrVoid((void *)(pvTypeChecked));
+}