def err_static_data_member_reinitialization :
Error<"static data member %0 already has an initializer">;
def err_redefinition : Error<"redefinition of %0">;
-def err_alias_after_tentative :
- Error<"alias definition of %0 after tentative definition">;
def err_alias_is_definition :
Error<"definition %0 cannot also be an alias">;
def err_definition_of_implicitly_declared_member : Error<
S.CheckForFunctionRedefinition(FD, cast<FunctionDecl>(Def));
else {
VarDecl *VD = cast<VarDecl>(New);
- unsigned Diag = cast<VarDecl>(Def)->isThisDeclarationADefinition() ==
- VarDecl::TentativeDefinition
- ? diag::err_alias_after_tentative
- : diag::err_redefinition;
- S.Diag(VD->getLocation(), Diag) << VD->getDeclName();
+ S.Diag(VD->getLocation(), diag::err_redefinition) << VD->getDeclName();
S.Diag(Def->getLocation(), diag::note_previous_definition);
VD->setInvalidDecl();
}
extern int var3 __attribute__((alias("C"))); // expected-note{{previous definition is here}}
int var3 = 3; // expected-error{{redefinition of 'var3'}}
+
+int v4;
+int var4;
+int var4 __attribute((alias("v4"))); // expected-error {{definition 'var4' cannot also be an alias}}