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? ~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
