]> gcc.gnu.org Git - gcc.git/commitdiff
re PR middle-end/33074 (ICE in copy_insn_1, at emit-rtl.c:4925)
authorJakub Jelinek <jakub@redhat.com>
Wed, 15 Aug 2007 12:11:38 +0000 (14:11 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 15 Aug 2007 12:11:38 +0000 (14:11 +0200)
PR middle-end/33074
* emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
REG_LIBCALL note.

* gfortran.dg/pr33074.f90: New test.

From-SVN: r127511

gcc/ChangeLog
gcc/emit-rtl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr33074.f90 [new file with mode: 0644]

index 246cd5cbe1edb8a749aa323f884aa0942aa3c116..dd6567a15ea500b45b91d557751e92fdd780da0f 100644 (file)
@@ -1,3 +1,9 @@
+2007-08-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/33074
+       * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
+       REG_LIBCALL note.
+
 2007-08-14  Daniel Berlin  <dberlin@dberlin.org>
 
        * tree-pass.h (PROP_pta): Removed.
index 745a10a851b5976322b7495c485a26ea6eb1cccf..6e7230db98c36d7136c08149d77adec6e917cecc 100644 (file)
@@ -3274,7 +3274,7 @@ try_split (rtx pat, rtx trial, int last)
          /* Relink the insns with REG_LIBCALL note and with REG_RETVAL note 
             after split.  */
          REG_NOTES (insn_last) 
-           = gen_rtx_EXPR_LIST (REG_LIBCALL,
+           = gen_rtx_INSN_LIST (REG_LIBCALL,
                                 XEXP (note, 0),
                                 REG_NOTES (insn_last)); 
 
index 45fc15cd363deb09b09993146ae327c4cc6486e8..86abaddf632cef3d5e0b7da8864ccd5f04d54fed 100644 (file)
@@ -1,5 +1,8 @@
 2007-08-15  Jakub Jelinek  <jakub@redhat.com>
 
+       PR middle-end/33074
+       * gfortran.dg/pr33074.f90: New test.
+
        PR c++/32992
        * g++.dg/opt/nrv14.C: New test.
 
diff --git a/gcc/testsuite/gfortran.dg/pr33074.f90 b/gcc/testsuite/gfortran.dg/pr33074.f90
new file mode 100644 (file)
index 0000000..3538d65
--- /dev/null
@@ -0,0 +1,8 @@
+! PR middle-end/33074
+! { dg-do compile }
+! { dg-options "-O" }
+
+subroutine pr33074(a, w)
+  real a(1), w(1)
+  a(1) = 2.0**int(w(1))
+end
This page took 0.169471 seconds and 5 git commands to generate.