r226626 - Sema: err_after_alias is unreachable, remove it

David Majnemer david.majnemer at gmail.com
Tue Jan 20 17:32:12 PST 2015


Good catch! Fixed in r226633.

On Tue, Jan 20, 2015 at 5:24 PM, Richard Smith <richard at metafoo.co.uk>
wrote:

> On Tue, Jan 20, 2015 at 4:52 PM, David Majnemer
> <david.majnemer at gmail.com> wrote:
> > Author: majnemer
> > Date: Tue Jan 20 18:52:17 2015
> > New Revision: 226626
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=226626&view=rev
> > Log:
> > Sema: err_after_alias is unreachable, remove it
> >
> > Examples this would have catched are now handled by the attribute
> > verification code.
> >
> > Modified:
> >     cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
> >     cfe/trunk/lib/Sema/SemaDecl.cpp
> >     cfe/trunk/test/Sema/alias-redefinition.c
> >
> > Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=226626&r1=226625&r2=226626&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
> > +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Tue Jan 20
> 18:52:17 2015
> > @@ -3902,8 +3902,6 @@ def warn_missing_variable_declarations :
> >  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<
> >
> > Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=226626&r1=226625&r2=226626&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
> > +++ cfe/trunk/lib/Sema/SemaDecl.cpp Tue Jan 20 18:52:17 2015
> > @@ -2223,11 +2223,7 @@ static void checkNewAttributesAfterDef(S
> >          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();
> >        }
> >
> > Modified: cfe/trunk/test/Sema/alias-redefinition.c
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/alias-redefinition.c?rev=226626&r1=226625&r2=226626&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/Sema/alias-redefinition.c (original)
> > +++ cfe/trunk/test/Sema/alias-redefinition.c Tue Jan 20 18:52:17 2015
> > @@ -28,3 +28,7 @@ static int var2 __attribute((alias("v2")
> >
> >  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}}
>
> What about:
>
>   int var4;
>   extern int var4 __attribute__((alias("v4")));
>
> ?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150120/a59557a7/attachment.html>


More information about the cfe-commits mailing list