Lines Matching full:subject

330       auto IsOneOf = [](StringRef subject, auto... list) {
331 return ((subject == list) || ...);
1942 assert(MetaSubject && "Missing subject");
2058 static bool isSupportedPragmaClangAttributeSubject(const Record &Subject) {
2060 // attributes, so test whether the subject is one that appertains to a
2063 if (Subject.isSubClassOf("DeclNode") || Subject.isSubClassOf("DeclBase") ||
2064 Subject.getName() == "DeclBase")
2067 if (Subject.isSubClassOf("SubsetSubject"))
2069 *Subject.getValueAsDef("Base"));
2089 for (const Record *Subject :
2093 .try_emplace(Subject, RuleOrAggregateRuleSet::getRule(
2098 PrintFatalError("Attribute subject match rules should not represent"
2115 const Record *SubjectDecl = Aggregate->getValueAsDef("Subject");
2117 // Gather sub-classes of the aggregate subject that act as attribute
2118 // subject rules.
2137 PrintFatalError("Attribute subject match rules should not represent"
2197 // An attribute subject list has a subject that isn't covered by one of the
2198 // subject match rules or has no subjects at all.
2203 for (const auto *Subject : SubjectObj->getValueAsListOfDefs("Subjects")) {
2204 if (!isSupportedPragmaClangAttributeSubject(*Subject))
2206 if (!SubjectsToRules.contains(Subject))
2254 for (const auto *Subject : SubjectObj->getValueAsListOfDefs("Subjects")) {
2255 if (!isSupportedPragmaClangAttributeSubject(*Subject))
2257 auto It = SubjectsToRules.find(Subject);
3471 "List of all attribute subject matching rules that Clang recognizes", OS,
4139 for (const auto *Subject : S.getValueAsListOfDefs("Subjects")) {
4140 const Record &R = *Subject;
4190 static std::string functionNameForCustomAppertainsTo(const Record &Subject) {
4191 return "is" + Subject.getName().str();
4194 static void GenerateCustomAppertainsTo(const Record &Subject, raw_ostream &OS) {
4195 std::string FnName = functionNameForCustomAppertainsTo(Subject);
4204 const Record *Base = Subject.getValueAsDef(BaseFieldName);
4208 PrintFatalError(Subject.getLoc(),
4217 OS << " return " << Subject.getValueAsString("CheckCode") << ";\n";
4243 // enough statement attributes with custom subject needs to warrant
4275 // If the subject has custom code associated with it, use the generated
4277 // because it requires the subject to be of a specific type, and were that
4490 // If the subject has custom code associated with it, use the function
4696 // Look at the spellings for this subject; if there are any spellings which
4723 for (const Record *Subject : SubjectObj->getValueAsListOfDefs("Subjects"))
4724 if (Subject->isSubClassOf("SubsetSubject"))
4725 GenerateCustomAppertainsTo(*Subject, OS);
5342 for (const auto &Subject :
5344 if (!isSupportedPragmaClangAttributeSubject(*Subject.value()))
5350 Support.SubjectsToRules.find(Subject.value())->getSecond();