Commit 8cb1151b by Jason Merrill Committed by Jason Merrill

PR c++/84820 - no error for invalid qualified-id.

	* parser.c (cp_parser_make_indirect_declarator): Don't wrap
	cp_error_declarator.

From-SVN: r258549
parent e62d673d
2018-03-14 Jason Merrill <jason@redhat.com> 2018-03-14 Jason Merrill <jason@redhat.com>
PR c++/84820 - no error for invalid qualified-id.
* parser.c (cp_parser_make_indirect_declarator): Don't wrap
cp_error_declarator.
PR c++/84801 - ICE with unexpanded pack in lambda. PR c++/84801 - ICE with unexpanded pack in lambda.
* pt.c (check_for_bare_parameter_packs): Don't return early for a * pt.c (check_for_bare_parameter_packs): Don't return early for a
lambda in non-template context. lambda in non-template context.
......
...@@ -3823,7 +3823,7 @@ cp_parser_make_indirect_declarator (enum tree_code code, tree class_type, ...@@ -3823,7 +3823,7 @@ cp_parser_make_indirect_declarator (enum tree_code code, tree class_type,
cp_declarator *target, cp_declarator *target,
tree attributes) tree attributes)
{ {
if (code == ERROR_MARK) if (code == ERROR_MARK || target == cp_error_declarator)
return cp_error_declarator; return cp_error_declarator;
if (code == INDIRECT_REF) if (code == INDIRECT_REF)
...@@ -8,6 +8,5 @@ void foo() ...@@ -8,6 +8,5 @@ void foo()
// Check that we do not complain about an unused // Check that we do not complain about an unused
// compiler-generated variable. // compiler-generated variable.
A& = a; // { dg-error "6:expected unqualified-id before '=' token" "6" } A& = a; // { dg-error "6:expected unqualified-id before '=' token" "6" }
// { dg-error "8:'a' was not declared in this scope" "8" { target *-*-* } .-1 }
} }
// PR c++/84820
struct A {};
template<int> struct B : A
{
B()
{
A(&A::foo); // { dg-error "foo" }
}
};
B<0> b;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment