From: Jakub Jelinek Date: Tue, 20 Sep 2005 15:29:42 +0000 (+0200) Subject: re PR tree-optimization/23818 (ICE in dominated_by_p, at dominance.c:827) X-Git-Tag: misc/cutover-cvs2svn~542 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=18c57f2c94753c87e076ae494f41c5105e939c9e;p=gcc.git re PR tree-optimization/23818 (ICE in dominated_by_p, at dominance.c:827) PR tree-optimization/23818 * tree-stdarg.c (execute_optimize_stdarg): Call calculate_dominance_info. * gcc.dg/pr23818.c: New test. From-SVN: r104455 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5051fd6a57fb..3a6a8dd5cc93 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-09-20 Jakub Jelinek + + PR tree-optimization/23818 + * tree-stdarg.c (execute_optimize_stdarg): Call + calculate_dominance_info. + 2005-09-18 Daniel Berlin * tree-data-ref.c (get_number_of_iters_for_loop): New function. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f91da8516863..e4561999bd32 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-09-20 Jakub Jelinek + + PR tree-optimization/23818 + * gcc.dg/pr23818.c: New test. + 2005-09-20 Tobias Schl"uter PR fortran/23420 diff --git a/gcc/testsuite/gcc.dg/pr23818.c b/gcc/testsuite/gcc.dg/pr23818.c new file mode 100644 index 000000000000..be0bb9a01019 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr23818.c @@ -0,0 +1,33 @@ +/* PR tree-optimization/23818 */ +/* { dg-do run } */ +/* { dg-options "-O2 -fno-tree-dominator-opts" } */ + +#include + +extern void abort (void); + +void +foo (int p[100], int k, ...) +{ + int j, *q; + va_list ap; + + va_start (ap, k); + q = va_arg (ap, int *); + for (j = 0; j < 100; j++) + q[j] = p[j] + 10; + va_end(ap); +} + +int +main (void) +{ + int buf[100], buf2[100], i; + for (i = 0; i < 100; i++) + buf[i] = i + 1; + foo (buf, 0, buf2); + for (i = 0; i < 100; i++) + if (buf2[i] != buf[i] + 10) + abort (); + return 0; +} diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c index a7446585b63e..c68e7b58c2cd 100644 --- a/gcc/tree-stdarg.c +++ b/gcc/tree-stdarg.c @@ -734,6 +734,8 @@ execute_optimize_stdarg (void) if (va_list_simple_ptr) cfun->va_list_fpr_size = VA_LIST_MAX_FPR_SIZE; + calculate_dominance_info (CDI_DOMINATORS); + FOR_EACH_BB (bb) { block_stmt_iterator i;