diff options
author | Jason Merrill <jason@redhat.com> | 2019-11-04 17:34:59 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2019-11-04 17:34:59 -0500 |
commit | 1dee89967b74196012a4b177fed0ccce3a520706 (patch) | |
tree | ca4e155e2ac8cbc603680bd059bce3bfeae5de00 | |
parent | 955cd057454b323419e06affa7df7d59dc3cd1fb (diff) | |
download | gcc-1dee89967b74196012a4b177fed0ccce3a520706.zip gcc-1dee89967b74196012a4b177fed0ccce3a520706.tar.gz gcc-1dee89967b74196012a4b177fed0ccce3a520706.tar.bz2 |
* typeck.c (check_return_expr): Avoid redundant error.
From-SVN: r277798
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/typeck.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/return2.C | 7 |
3 files changed, 12 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 42dfc32..7c22a53 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2019-11-04 Jason Merrill <jason@redhat.com> + + * typeck.c (check_return_expr): Avoid redundant error. + 2019-11-02 Paolo Carlini <paolo.carlini@oracle.com> * typeck.c (composite_pointer_type): Add a const op_location_t& diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 29a2942..27d9785 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -9729,7 +9729,7 @@ check_return_expr (tree retval, bool *no_warning) type. In that case, we have to evaluate the expression for its side-effects. */ finish_expr_stmt (retval); - else + else if (retval != error_mark_node) permerror (input_location, "return-statement with a value, in function " "returning %qT", valtype); diff --git a/gcc/testsuite/g++.dg/other/return2.C b/gcc/testsuite/g++.dg/other/return2.C new file mode 100644 index 0000000..b328fa6 --- /dev/null +++ b/gcc/testsuite/g++.dg/other/return2.C @@ -0,0 +1,7 @@ +void f(long); +void f(char); + +void g() +{ + return f(42); // { dg-error "ambiguous" } +} // { dg-bogus "void" "" { target *-*-* } .-1 } |