diff options
author | Richard Guenther <rguenther@suse.de> | 2009-07-18 11:16:07 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2009-07-18 11:16:07 +0000 |
commit | 33922890f647d590f0450638c03ff1673022b662 (patch) | |
tree | 0a5d4bea47812ee107c666286ff567e90ad089ca | |
parent | 1d4479957bdda8182a8a442afa53fef543984c56 (diff) | |
download | gcc-33922890f647d590f0450638c03ff1673022b662.zip gcc-33922890f647d590f0450638c03ff1673022b662.tar.gz gcc-33922890f647d590f0450638c03ff1673022b662.tar.bz2 |
re PR c/40787 (ICE: verify_gimple failed in gcc.dg/pr35899.c)
2009-07-18 Richard Guenther <rguenther@suse.de>
PR c/40787
* gimplify.c (gimplify_call_expr): Reject code using results from
functions returning void.
* gcc.dg/pr35899.c: Adjust.
From-SVN: r149770
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gimplify.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr35899.c | 4 |
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 43b5cc6..1c09316 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-07-18 Richard Guenther <rguenther@suse.de> + + PR c/40787 + * gimplify.c (gimplify_call_expr): Reject code using results from + functions returning void. + 2009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com> * doc/md.texi: Document the new PowerPC "es" constraint. diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 884d00f..dc8d0c0 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -2411,6 +2411,14 @@ gimplify_call_expr (tree *expr_p, gimple_seq *pre_p, bool want_value) } } + /* Verify the function result. */ + if (want_value && fndecl + && VOID_TYPE_P (TREE_TYPE (TREE_TYPE (fndecl)))) + { + error_at (loc, "using result of function returning %<void%>"); + ret = GS_ERROR; + } + /* Try this again in case gimplification exposed something. */ if (ret != GS_ERROR) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5f08b2d..e13f10f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-07-18 Richard Guenther <rguenther@suse.de> + + PR c/40787 + * gcc.dg/pr35899.c: Adjust. + 2009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com> * gcc.target/powerpc/asm-es-1.c: New test. diff --git a/gcc/testsuite/gcc.dg/pr35899.c b/gcc/testsuite/gcc.dg/pr35899.c index 4ce4ac5..0dc4ffa 100644 --- a/gcc/testsuite/gcc.dg/pr35899.c +++ b/gcc/testsuite/gcc.dg/pr35899.c @@ -5,7 +5,7 @@ int foo (void) { - int a = bar (); /* { dg-message "note: previous implicit declaration" } */ + int a = bar (); /* { dg-error "returning 'void'" } */ return a; } @@ -13,3 +13,5 @@ void bar (void) /* { dg-warning "conflicting types for" } */ { } + +/* { dg-message "note: previous implicit declaration" "" { target *-*-* } 8 } */ |