aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2007-10-22 19:28:23 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2007-10-22 19:28:23 +0000
commit9ed7b22165e56bcd0236efb3b9ab14641793a4b3 (patch)
treece100096d41a38847cdcf3bd954b2e8fbcdd6bd2 /gcc/testsuite/gcc.dg
parent6e684eee8d03ef8f75e864d355695b7097c38a9f (diff)
downloadgcc-9ed7b22165e56bcd0236efb3b9ab14641793a4b3.zip
gcc-9ed7b22165e56bcd0236efb3b9ab14641793a4b3.tar.gz
gcc-9ed7b22165e56bcd0236efb3b9ab14641793a4b3.tar.bz2
re PR rtl-optimization/33644 (ICE in local_cprop_pass with -ftrapv for crafty)
PR rtl-optimization/33644 * cfgcleanup.c: Do not include dce.h. * cfgrtl.c (delete_insn_chain_and_edges): Resurrect. * combine.c (distribute_notes): Delete REG_LIBCALL_ID case. * dce.c (something_changed): Delete. (libcall_dead_p): New predicate. (delete_unmarked_insns): Use it to delete dead libcalls. Deal with REG_LIBCALL and REG_RETVAL notes. (prescan_libcall_for_dce): New function. (prescan_insns_for_dce): Use it to deal with libcalls. (mark_reg_dependencies): Do nothing special for libcalls. (dce_process_block): Likewise. (fast_dce): Delete unused local variable. (run_fast_dce): Do not return a value. * dce.h (struct df): Delete. (run_fast_dce): Adjust prototype. * optabs.c (libcall_id): Delete. (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes. (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes. * reload1.c (reload): Delete REG_LIBCALL_ID case. * rtl.h (delete_insn_chain_and_edges): Resurrect prototype. * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL notes instead of REG_LIBCALL_ID notes. * reg-notes.def (LIBCALL_ID): Delete. * Makefile.in (see.o): Add dce.h dependency. (cfgcleanup.o): Remove dce.h dependency. From-SVN: r129556
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r--gcc/testsuite/gcc.dg/pr33644.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr33644.c b/gcc/testsuite/gcc.dg/pr33644.c
new file mode 100644
index 0000000..f3f543c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr33644.c
@@ -0,0 +1,19 @@
+/* PR rtl-optimization/33644 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftrapv" } */
+
+extern char *bar (const char *);
+
+int *m, *b;
+
+void foo (void)
+{
+ int *mv;
+ int p;
+ char a[17];
+
+ p = bar (a) - a;
+ for (mv = m; mv < b; mv++)
+ if (p && ((*mv & 7) != p))
+ *mv=0;
+}