From 1efd55ff21eb3f9c2b94ddb7b97e316d0b926b64 Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Wed, 21 Jan 2015 00:52:17 +0000 Subject: [PATCH] Sema: err_after_alias is unreachable, remove it Examples this would have catched are now handled by the attribute verification code. llvm-svn: 226626 --- clang/include/clang/Basic/DiagnosticSemaKinds.td | 2 -- clang/lib/Sema/SemaDecl.cpp | 6 +----- clang/test/Sema/alias-redefinition.c | 4 ++++ 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 3e41564a..5509b03 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -3902,8 +3902,6 @@ def warn_missing_variable_declarations : Warning< 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< diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index cd6ff6c..8af7e5a 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -2223,11 +2223,7 @@ static void checkNewAttributesAfterDef(Sema &S, Decl *New, const Decl *Old) { S.CheckForFunctionRedefinition(FD, cast(Def)); else { VarDecl *VD = cast(New); - unsigned Diag = cast(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(); } diff --git a/clang/test/Sema/alias-redefinition.c b/clang/test/Sema/alias-redefinition.c index c1562c7..ae8c28f 100644 --- a/clang/test/Sema/alias-redefinition.c +++ b/clang/test/Sema/alias-redefinition.c @@ -28,3 +28,7 @@ static int var2 __attribute((alias("v2"))) = 2; // expected-error {{definition ' 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}} -- 2.7.4