diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2019-11-20 21:03:05 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2019-11-20 21:03:05 +0000 |
commit | df2653441a24175e1c909a1234413730c10535e4 (patch) | |
tree | 5a35fa03538513cde8892f264071f00064949d8a /gcc | |
parent | c013852d6138f35314ea14f5772f57a975064d4d (diff) | |
download | gcc-df2653441a24175e1c909a1234413730c10535e4.zip gcc-df2653441a24175e1c909a1234413730c10535e4.tar.gz gcc-df2653441a24175e1c909a1234413730c10535e4.tar.bz2 |
typeck2.c (build_x_arrow): Early return if decay_conversion returns error_mark_node.
/gcc
2019-11-20 Paolo Carlini <paolo.carlini@oracle.com>
* typeck2.c (build_x_arrow): Early return if decay_conversion
returns error_mark_node.
/testsuite
2019-11-20 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/parse/error43.C: Adjust expected error.
From-SVN: r278530
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/typeck2.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/error43.C | 2 |
4 files changed, 15 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6031acf..55ee3b8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2019-11-20 Paolo Carlini <paolo.carlini@oracle.com> + + * typeck2.c (build_x_arrow): Early return if decay_conversion + returns error_mark_node. + 2019-11-20 Jakub Jelinek <jakub@redhat.com> PR c++/90767 diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index 9fb36fd..7a8de4b 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -2044,7 +2044,11 @@ build_x_arrow (location_t loc, tree expr, tsubst_flags_t complain) last_rval = convert_from_reference (last_rval); } else - last_rval = decay_conversion (expr, complain); + { + last_rval = decay_conversion (expr, complain); + if (last_rval == error_mark_node) + return error_mark_node; + } if (TYPE_PTR_P (TREE_TYPE (last_rval))) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2a4d5c6..36fabc7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2019-11-20 Paolo Carlini <paolo.carlini@oracle.com> + + * g++.dg/parse/error43.C: Adjust expected error. + 2019-11-20 Janne Blomqvist <jb@gcc.gnu.org> * README: Use https for gcc.gnu.org. diff --git a/gcc/testsuite/g++.dg/parse/error43.C b/gcc/testsuite/g++.dg/parse/error43.C index e352fa5..1a72cbc 100644 --- a/gcc/testsuite/g++.dg/parse/error43.C +++ b/gcc/testsuite/g++.dg/parse/error43.C @@ -2,4 +2,4 @@ // { dg-options "" } class C { public: C* f(); int get(); }; -int f(C* p) { return p->f->get(); } // { dg-error "forget the '\\(\\)'|base operand" } +int f(C* p) { return p->f->get(); } // { dg-error "25:invalid use of member function" } |