"redefinition of %0 with a different type%diff{: $ vs $|}1,2">;
def err_redefinition_different_kind : Error<
"redefinition of %0 as different kind of symbol">;
-def warn_declaration_shadows_tag_type : Warning<
- "declaration of %0 shadows %1 %0; '%1' tag will be needed to refer to the %1">,
- InGroup<Shadow>, DefaultIgnore;
-def note_shadowed_tag_type_declaration : Note<"%1 %0 declared here">;
def warn_forward_class_redefinition : Warning<
"redefinition of forward class %0 of a typedef name of an object type is ignored">,
InGroup<DiagGroup<"objc-forward-class-redefinition">>;
// tag type. Note that this does does not apply if we're declaring a
// typedef (C++ [dcl.typedef]p4).
if (Previous.isSingleTagDecl() &&
- D.getDeclSpec().getStorageClassSpec() != DeclSpec::SCS_typedef) {
- TagDecl *TD = Previous.getAsSingle<TagDecl>();
- Diag(D.getIdentifierLoc(), diag::warn_declaration_shadows_tag_type)
- << Name << TD->getKindName();
- Diag(TD->getLocation(), diag::note_shadowed_tag_type_declaration)
- << Name << TD->getKindName();
+ D.getDeclSpec().getStorageClassSpec() != DeclSpec::SCS_typedef)
Previous.clear();
- }
// Check that there are no default arguments other than in the parameters
// of a function declaration (C++ only).