diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-08-15 14:11:38 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-08-15 14:11:38 +0200 |
commit | 49317655fe694ad6e5d21de25b68753b3d0c8b87 (patch) | |
tree | 0a07bf11feda750d266bbefa06abea34c6d07348 | |
parent | 59fe92745a5360e7771f9ca0b86301ff6ddb2ac1 (diff) | |
download | gcc-49317655fe694ad6e5d21de25b68753b3d0c8b87.zip gcc-49317655fe694ad6e5d21de25b68753b3d0c8b87.tar.gz gcc-49317655fe694ad6e5d21de25b68753b3d0c8b87.tar.bz2 |
re PR middle-end/33074 (ICE in copy_insn_1, at emit-rtl.c:4925)
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr33074.f90 | 8 |
4 files changed, 18 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 246cd5c..dd6567a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 745a10a..6e7230d 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -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)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 45fc15c..86abadd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 index 0000000..3538d65 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr33074.f90 @@ -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 |