reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/utils/TableGen/ClangAttrEmitter.cpp
 2228   emitSourceFileHeader("Attribute classes' definitions", OS);
 2230   OS << "#ifndef LLVM_CLANG_ATTR_CLASSES_INC\n";
 2231   OS << "#define LLVM_CLANG_ATTR_CLASSES_INC\n\n";
 2266     OS << "class " << R.getName() << "Attr : public " << SuperName << " {\n";
 2276       Args.back()->writeDeclarations(OS);
 2277       OS << "\n\n";
 2287     OS << "public:\n";
 2301       OS << CreateSemanticSpellings(Spellings, SemanticToSyntacticMap);
 2310       OS << "  static " << R.getName() << "Attr *Create";
 2312           OS << "Implicit";
 2313       OS << "(";
 2314       OS << "ASTContext &Ctx";
 2317         OS << ", ";
 2318         ai->writeCtorParameters(OS);
 2320       OS << ", const AttributeCommonInfo &CommonInfo = {SourceRange{}}) {\n";
 2321       OS << "    auto *A = new (Ctx) " << R.getName();
 2322       OS << "Attr(Ctx, CommonInfo";
 2325         OS << ", ";
 2326         ai->writeImplicitCtorArgs(OS);
 2328       OS << ");\n";
 2330         OS << "    A->setImplicit(true);\n";
 2333         OS << "    if (!A->isAttributeSpellingListCalculated() && "
 2335         OS << "      A->setAttributeSpellingListIndex(0);\n";
 2337       OS << "    return A;\n  }\n\n";
 2341       OS <<"  static " << R.getName() << "Attr *Create";
 2343         OS << "Implicit";
 2344       OS << "(";
 2345       OS << "ASTContext &Ctx";
 2348         OS << ", ";
 2349         ai->writeCtorParameters(OS);
 2351       OS << ", SourceRange Range, AttributeCommonInfo::Syntax Syntax";
 2353         OS << ", " << R.getName()
 2356       OS << ") {\n";
 2357       OS << "    AttributeCommonInfo I(Range, ";
 2360         OS << "AT_" << ParsedAttrSpellingItr->first;
 2362         OS << "NoSemaHandlerAttribute";
 2364       OS << ", Syntax";
 2366         OS << ", S";
 2367       OS << ");\n";
 2368       OS << "    return Create";
 2370         OS << "Implicit";
 2371       OS << "(Ctx";
 2374         OS << ", ";
 2375         ai->writeImplicitCtorArgs(OS);
 2377       OS << ", I);\n";
 2378       OS << "  }\n";
 2402       OS << "  " << R.getName()
 2404       OS << '\n';
 2407         OS << "              , ";
 2408         ai->writeCtorParameters(OS);
 2409         OS << "\n";
 2412       OS << "             )\n";
 2413       OS << "    : " << SuperName << "(Ctx, CommonInfo, ";
 2414       OS << "attr::" << R.getName() << ", "
 2417         OS << ", "
 2421       OS << ")\n";
 2424         OS << "              , ";
 2426           ai->writeCtorDefaultInitializers(OS);
 2428           ai->writeCtorInitializers(OS);
 2430         OS << "\n";
 2433       OS << "  {\n";
 2437         ai->writeCtorBody(OS);
 2439       OS << "  }\n\n";
 2454     OS << "  " << R.getName() << "Attr *clone(ASTContext &C) const;\n";
 2455     OS << "  void printPretty(raw_ostream &OS,\n"
 2457     OS << "  const char *getSpelling() const;\n";
 2461       OS << "  Spelling getSemanticSpelling() const {\n";
 2463                                   SemanticToSyntacticMap, OS);
 2464       OS << "  }\n";
 2467     writeAttrAccessorDefinition(R, OS);
 2470       ai->writeAccessors(OS);
 2471       OS << "\n\n";
 2477         static_cast<const EnumArgument *>(ai.get())->writeConversion(OS);
 2480             ->writeConversion(OS);
 2483     OS << R.getValueAsString("AdditionalMembers");
 2484     OS << "\n\n";
 2486     OS << "  static bool classof(const Attr *A) { return A->getKind() == "
 2489     OS << "};\n\n";
 2492   OS << "#endif // LLVM_CLANG_ATTR_CLASSES_INC\n";