r201524 - Forcing it to be an error when there is no Documentation list specified for an attribute. This is a bit of a (harmless) hack, but the FIXME explains why and when this hack can be removed. It's a justified hack because this prevents attribute authors from forgetting to add documentation when they add a new attribute.
Aaron Ballman
aaron at aaronballman.com
Mon Feb 17 10:23:02 PST 2014
Author: aaronballman
Date: Mon Feb 17 12:23:02 2014
New Revision: 201524
URL: http://llvm.org/viewvc/llvm-project?rev=201524&view=rev
Log:
Forcing it to be an error when there is no Documentation list specified for an attribute. This is a bit of a (harmless) hack, but the FIXME explains why and when this hack can be removed. It's a justified hack because this prevents attribute authors from forgetting to add documentation when they add a new attribute.
Modified:
cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp
Modified: cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp?rev=201524&r1=201523&r2=201524&view=diff
==============================================================================
--- cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp (original)
+++ cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp Mon Feb 17 12:23:02 2014
@@ -1383,6 +1383,17 @@ void EmitClangAttrClass(RecordKeeper &Re
for (std::vector<Record*>::iterator i = Attrs.begin(), e = Attrs.end();
i != e; ++i) {
Record &R = **i;
+
+ // FIXME: Currently, documentation is generated as-needed due to the fact
+ // that there is no way to allow a generated project "reach into" the docs
+ // directory (for instance, it may be an out-of-tree build). However, we want
+ // to ensure that every attribute has a Documentation field, and produce an
+ // error if it has been neglected. Otherwise, the on-demand generation which
+ // happens server-side will fail. This code is ensuring that functionality,
+ // even though this Emitter doesn't technically need the documentation.
+ // When attribute documentation can be generated as part of the build
+ // itself, this code can be removed.
+ (void)R.getValueAsListOfDefs("Documentation");
if (!R.getValueAsBit("ASTNode"))
continue;
More information about the cfe-commits
mailing list