================
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)];
};
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