diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2018-04-18 08:03:45 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2018-04-18 08:03:45 +0000 |
commit | c18a88c50a0d65cb230644755a9d8bc25a34810e (patch) | |
tree | ff5bed45b74dff0de0a0efd9c52ebf00f4ceccf9 | |
parent | 19ddb884ebb2f39535d8e527c02c576fb768333b (diff) | |
download | gcc-c18a88c50a0d65cb230644755a9d8bc25a34810e.zip gcc-c18a88c50a0d65cb230644755a9d8bc25a34810e.tar.gz gcc-c18a88c50a0d65cb230644755a9d8bc25a34810e.tar.bz2 |
re PR c++/84630 (ICE: TYPE_NAME() used on error_mark_node in tsubst_lambda_expr, at cp/pt.c:17141)
/cp
2018-04-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84630
* pt.c (tsubst_lambda_expr): Check begin_lambda_type return value
for error_mark_node.
/testsuite
2018-04-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84630
* g++.dg/cpp0x/pr84630.C: New.
From-SVN: r259460
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/pt.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/pr84630.C | 7 |
4 files changed, 20 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c80b281..7cd714b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2018-04-18 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/84630 + * pt.c (tsubst_lambda_expr): Check begin_lambda_type return value + for error_mark_node. + 2018-04-18 Jakub Jelinek <jakub@redhat.com> PR c++/84463 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 79563df..5d70608 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -17570,6 +17570,8 @@ tsubst_lambda_expr (tree t, tree args, tsubst_flags_t complain, tree in_decl) } tree type = begin_lambda_type (r); + if (type == error_mark_node) + return error_mark_node; /* Do this again now that LAMBDA_EXPR_EXTRA_SCOPE is set. */ determine_visibility (TYPE_NAME (type)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 658b52d..8e2a015 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-04-18 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/84630 + * g++.dg/cpp0x/pr84630.C: New. + 2018-04-18 Jakub Jelinek <jakub@redhat.com> PR c++/84463 diff --git a/gcc/testsuite/g++.dg/cpp0x/pr84630.C b/gcc/testsuite/g++.dg/cpp0x/pr84630.C new file mode 100644 index 0000000..3c2b4e4 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/pr84630.C @@ -0,0 +1,7 @@ +// PR c++/84630 +// { dg-do compile { target c++11 } } + +template <typename...> struct c { + template <int> __attribute__((noinline([] {}))) int b(); // { dg-error "wrong number of arguments" } +}; +c<> a; |