From: Jason Merrill Date: Thu, 20 Nov 2008 20:23:32 +0000 (-0500) Subject: re PR c++/28513 (QOI: Diagnostic missing since 3.3.x when naming rule is violated) X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a6bf9022494b0784d2e132bbbef9313174aa8ff5;p=platform%2Fupstream%2Fgcc.git re PR c++/28513 (QOI: Diagnostic missing since 3.3.x when naming rule is violated) PR c++/28513 * parser.c (cp_parser_class_name): Call maybe_note_name_used_in_class. From-SVN: r142056 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 558682b..9880815 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2008-11-20 Jason Merrill + PR c++/28513 + * parser.c (cp_parser_class_name): Call maybe_note_name_used_in_class. + PR c++/37540 * call.c (build_over_call): Take the address of the function even in a template. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 2bf0e66..8fdd58c 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -14767,6 +14767,9 @@ cp_parser_class_name (cp_parser *parser, } return error_mark_node; } + else if (decl != error_mark_node + && !parser->scope) + maybe_note_name_used_in_class (identifier, decl); } } else diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 43454d2..3437a0d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2008-11-20 Jason Merrill + PR c++/28513 + * g++.dg/lookup/name-clash7.C: New test. + PR c++/37540 * g++.dg/cpp0x/decltype14.C: New test. diff --git a/gcc/testsuite/g++.dg/lookup/name-clash7.C b/gcc/testsuite/g++.dg/lookup/name-clash7.C new file mode 100644 index 0000000..5c0690a --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/name-clash7.C @@ -0,0 +1,11 @@ +// PR c++/28513 + +class foo { // { dg-error "changes meaning" } +public: + typedef int bar; +}; + +class baz { +public: + foo::bar foo; // { dg-error "declaration" } +};