On Mon, Apr 6, 2015 at 4:35 PM, Aaron Ballman <[email protected]>
wrote:

> On Mon, Apr 6, 2015 at 7:30 PM, Richard Smith <[email protected]>
> wrote:
> > ================
> > Comment at: lib/Sema/SemaDeclAttr.cpp:2866
> > @@ -2865,1 +2865,3 @@
> >
> > +  if (E->isTypeDependent() || E->isValueDependent()) {
> > +    if (const auto *TND = dyn_cast<TypedefNameDecl>(D)) {
> > ----------------
> > The 'type dependent' check here is redundant.
> >
> > ================
> > Comment at: lib/Sema/SemaDeclAttr.cpp:2869
> > @@ +2868,3 @@
> > +      QualType T = TND->getUnderlyingType();
> > +      if (!T->isDependentType() && !T->isInstantiationDependentType()) {
> > +        S.Diag(Attr.getLoc(),
> diag::err_alignment_dependent_typedef_name)
> > ----------------
> > I don't think you should check instantiation-dependence here. I think
> you should reject this, for instance:
> >
> >   template<int N> struct X {
> >     typedef __attribute__((aligned(N))) int X[sizeof(N)];
> >   };
> >
>
> Out of curiosity, why do you think that should be rejected?


For the same reason we're rejecting anything here: we'd otherwise create a
non-dependent type that has a dependent alignment.


>
> ~Aaron
>
> > http://reviews.llvm.org/D8693
> >
> > EMAIL PREFERENCES
> >   http://reviews.llvm.org/settings/panel/emailpreferences/
> >
> >
> >
> > _______________________________________________
> > cfe-commits mailing list
> > [email protected]
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to