diff options
Diffstat (limited to 'clang/utils/TableGen/ClangAttrEmitter.cpp')
-rw-r--r-- | clang/utils/TableGen/ClangAttrEmitter.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/utils/TableGen/ClangAttrEmitter.cpp b/clang/utils/TableGen/ClangAttrEmitter.cpp index 6b3df825808..0426ecb34c8 100644 --- a/clang/utils/TableGen/ClangAttrEmitter.cpp +++ b/clang/utils/TableGen/ClangAttrEmitter.cpp @@ -3274,11 +3274,15 @@ static std::string GenerateCustomAppertainsTo(const Record &Subject, return ""; } + const StringRef CheckCodeValue = Subject.getValueAsString("CheckCode"); + OS << "static bool " << FnName << "(const Decl *D) {\n"; - OS << " if (const auto *S = dyn_cast<"; - OS << GetSubjectWithSuffix(Base); - OS << ">(D))\n"; - OS << " return " << Subject.getValueAsString("CheckCode") << ";\n"; + if (CheckCodeValue != "false") { + OS << " if (const auto *S = dyn_cast<"; + OS << GetSubjectWithSuffix(Base); + OS << ">(D))\n"; + OS << " return " << Subject.getValueAsString("CheckCode") << ";\n"; + } OS << " return false;\n"; OS << "}\n\n"; |