aaron.ballman added a reviewer: aaron.ballman. aaron.ballman added inline comments.
================ Comment at: include/clang/Basic/Attr.td:1621 let Args = [StringArgument<"Guid">]; -// let Subjects = SubjectList<[CXXRecord]>; + let Subjects = SubjectList<[CXXRecord, Enum], WarnDiag, "ExpectedEnumOrClass">; let LangOpts = [MicrosoftExt, Borland]; ---------------- You can drop the `WarnDiag` and `ExpectedEnumOrClass` -- that should be handled automatically by the tablegen emitter once you change `CalculateDiagnostic()` in ClangAttrEmitter.cpp to handle it properly. ================ Comment at: include/clang/Basic/DiagnosticSemaKinds.td:2637 + "|variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members" + "|classes, enums}1">, InGroup<IgnoredAttributes>; ---------------- This should read `classes and enumerations`. ================ Comment at: lib/Sema/SemaDeclAttr.cpp:4669-4673 + if (!(isa<CXXRecordDecl>(D) || isa<EnumDecl>(D))) { S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type) - << Attr.getName() << ExpectedClass; + << Attr.getName() << ExpectedEnumOrClass; return; } ---------------- majnemer wrote: > I don't think you need this now that you've got this in Attr.td Correct, this entire block should go away. Repository: rL LLVM https://reviews.llvm.org/D26846 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits