forked from OSchip/llvm-project
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.
llvm-svn: 201524
This commit is contained in:
parent
ff4ac8a6e7
commit
06bd44b3e8
|
@ -1383,6 +1383,17 @@ void EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS) {
|
||||||
for (std::vector<Record*>::iterator i = Attrs.begin(), e = Attrs.end();
|
for (std::vector<Record*>::iterator i = Attrs.begin(), e = Attrs.end();
|
||||||
i != e; ++i) {
|
i != e; ++i) {
|
||||||
Record &R = **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"))
|
if (!R.getValueAsBit("ASTNode"))
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in New Issue