diff options
author | Richard Biener <rguenther@suse.de> | 2013-06-25 08:21:31 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-06-25 08:21:31 +0000 |
commit | 8a845901e416539127df54145b12e21f478a073e (patch) | |
tree | d17ac62869d6b801084f4d627b18b272451970dd /gcc | |
parent | 9d2cdf250068307056a91fc8b46c525e14d86aca (diff) | |
download | gcc-8a845901e416539127df54145b12e21f478a073e.zip gcc-8a845901e416539127df54145b12e21f478a073e.tar.gz gcc-8a845901e416539127df54145b12e21f478a073e.tar.bz2 |
re PR middle-end/56977 (gcc -Og incorrectly warns about 'constant zero length parameter')
2013-06-25 Richard Biener <rguenther@suse.de>
PR middle-end/56977
* passes.c (init_optimization_passes): Move pass_fold_builtins
and pass_dce earlier with -Og.
* gcc.dg/pr56977.c: New testcase.
From-SVN: r200391
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/passes.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr56977.c | 10 |
4 files changed, 25 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f21e60b..f0af61e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-06-25 Richard Biener <rguenther@suse.de> + + PR middle-end/56977 + * passes.c (init_optimization_passes): Move pass_fold_builtins + and pass_dce earlier with -Og. + 2013-06-25 Eric Botcazou <ebotcazou@adacore.com> * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches. diff --git a/gcc/passes.c b/gcc/passes.c index c8b03ee..761f030 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -1536,15 +1536,15 @@ init_optimization_passes (void) /* Perform simple scalar cleanup which is constant/copy propagation. */ NEXT_PASS (pass_ccp); NEXT_PASS (pass_object_sizes); + /* Fold remaining builtins. */ + NEXT_PASS (pass_fold_builtins); /* Copy propagation also copy-propagates constants, this is necessary - to forward object-size results properly. */ + to forward object-size and builtin folding results properly. */ NEXT_PASS (pass_copy_prop); + NEXT_PASS (pass_dce); NEXT_PASS (pass_asan); NEXT_PASS (pass_tsan); NEXT_PASS (pass_rename_ssa_copies); - NEXT_PASS (pass_dce); - /* Fold remaining builtins. */ - NEXT_PASS (pass_fold_builtins); /* ??? We do want some kind of loop invariant motion, but we possibly need to adjust LIM to be more friendly towards preserving accurate debug information here. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9940868..8c9f01a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-06-25 Richard Biener <rguenther@suse.de> + + PR middle-end/56977 + * gcc.dg/pr56977.c: New testcase. + 2013-06-24 Martin Jambor <mjambor@suse.cz> PR tree-optimization/57358 diff --git a/gcc/testsuite/gcc.dg/pr56977.c b/gcc/testsuite/gcc.dg/pr56977.c new file mode 100644 index 0000000..fde88af --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr56977.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-Og" } */ + +__attribute__((__error__("error"))) void error (); + +void f (int i) { + if (__builtin_constant_p (i)) { + error (); + } +} |