]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/29788 (ICE in var_ann, at tree-flow-inline.h:130)
authorAndrew Pinski <andrew_pinski@playstation.sony.com>
Wed, 15 Nov 2006 17:04:56 +0000 (17:04 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Wed, 15 Nov 2006 17:04:56 +0000 (09:04 -0800)
2006-11-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR tree-opt/29788
        * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
        to what is the const decl is a place holder for.

2006-11-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR tree-opt/29788
        * gfortran.fortran-torture/compile/inline_1.f90:
        New testcase.

From-SVN: r118861

gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.fortran-torture/compile/inline_1.f90 [new file with mode: 0644]

index eb0dd2e39c8f347405f05a0adecf541aec336dc6..382a8a30e093a5c65bbc4307daec9a8e1e540379 100644 (file)
@@ -1,3 +1,9 @@
+2006-11-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR tree-opt/29788
+       * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
+       to what is the const decl is a place holder for.
+
 2006-11-15  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.opt: New target option -mx87regparm.
index eb3b45701a41339b43467b46e11a5e0747f03e15..143dcadcfa4911e2f2bddd36757550fc5c77fb0d 100644 (file)
@@ -13038,6 +13038,9 @@ fold_indirect_ref_1 (tree type, tree op0)
     {
       tree op = TREE_OPERAND (sub, 0);
       tree optype = TREE_TYPE (op);
+      /* *&CONST_DECL -> to the value of the const decl.  */
+      if (TREE_CODE (op) == CONST_DECL)
+       return DECL_INITIAL (op);
       /* *&p => p;  make sure to handle *&"str"[cst] here.  */
       if (type == optype)
        {
index d5f56ee244706f7ad9fb9eec1a92e32d7d4c11d4..b60e1b85832e1740a313031fc588f9b9f9751029 100644 (file)
@@ -1,3 +1,9 @@
+2006-11-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR tree-opt/29788
+       * gfortran.fortran-torture/compile/inline_1.f90:
+       New testcase.
+
 2006-11-15  Uros Bizjak  <ubizjak@gmail.com>
 
        * gcc.target/i386/x87regparm-1.c: New test.
diff --git a/gcc/testsuite/gfortran.fortran-torture/compile/inline_1.f90 b/gcc/testsuite/gfortran.fortran-torture/compile/inline_1.f90
new file mode 100644 (file)
index 0000000..58c02f2
--- /dev/null
@@ -0,0 +1,17 @@
+program gfcbug43
+  call try_fit (1)
+  call try_fit (1)
+contains
+  subroutine try_fit (k)
+    call fit (1, debug=.true.)
+  end subroutine try_fit
+  subroutine fit (k, debug)
+    logical,  intent(in),  optional :: debug
+    do j = 1, 2
+      maxerr1 = funk (r ,x1 , x1)
+    end do
+    if (debug) then
+      print "help"
+    end if
+  end subroutine fit
+end program gfcbug43