A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/Frontend_2FrontendActions_8cpp_source.html below:

clang: lib/Frontend/FrontendActions.cpp Source File

29#include "llvm/Config/llvm-config.h" 30#include "llvm/Support/ErrorHandling.h" 31#include "llvm/Support/FileSystem.h" 32#include "llvm/Support/MemoryBuffer.h" 33#include "llvm/Support/Path.h" 34#include "llvm/Support/YAMLTraits.h" 35#include "llvm/Support/raw_ostream.h" 38#include <system_error> 40using namespace clang

;

55

GetCodeCompletionConsumer(CI));

63

std::unique_ptr<ASTConsumer>

65 return

std::make_unique<ASTConsumer>();

68void

InitOnlyAction::ExecuteAction() {

72void

ReadPCHAndPreprocessAction::ExecuteAction() {

83

}

while

(Tok.

isNot

(tok::eof));

86

std::unique_ptr<ASTConsumer>

89 return

std::make_unique<ASTConsumer>();

96

std::unique_ptr<ASTConsumer>

98 if

(std::unique_ptr<raw_ostream> OS =

104

std::unique_ptr<ASTConsumer>

113

std::unique_ptr<ASTConsumer>

118

std::unique_ptr<ASTConsumer>

123

std::unique_ptr<ASTConsumer>

129

std::string OutputFile;

130

std::unique_ptr<raw_pwrite_stream> OS =

139 auto

Buffer = std::make_shared<PCHBuffer>();

140

std::vector<std::unique_ptr<ASTConsumer>> Consumers;

141

Consumers.push_back(std::make_unique<PCHGenerator>(

143

FrontendOpts.ModuleFileExtensions,

145

FrontendOpts.IncludeTimestamps, FrontendOpts.BuildingImplicitModule,

148

CI, std::string(InFile), OutputFile, std::move(OS), Buffer));

150 return

std::make_unique<MultiplexConsumer>(std::move(Consumers));

154

std::string &Sysroot) {

164

std::unique_ptr<llvm::raw_pwrite_stream>

166

std::string &OutputFile) {

169 true

, InFile,

""

,

false

);

188

std::vector<std::unique_ptr<ASTConsumer>>

191

std::unique_ptr<raw_pwrite_stream> OS = CreateOutputFile(CI, InFile);

198 auto

Buffer = std::make_shared<PCHBuffer>();

199

std::vector<std::unique_ptr<ASTConsumer>> Consumers;

201

Consumers.push_back(std::make_unique<PCHGenerator>(

213

CI, std::string(InFile), OutputFile, std::move(OS), Buffer));

217

std::unique_ptr<ASTConsumer>

220

std::vector<std::unique_ptr<ASTConsumer>> Consumers =

222 if

(Consumers.empty())

225 return

std::make_unique<MultiplexConsumer>(std::move(Consumers));

233bool

GenerateModuleFromModuleMapAction::BeginSourceFileAction(

243

std::unique_ptr<raw_pwrite_stream>

250 if

(ModuleMapFile.empty())

251

ModuleMapFile = InFile;

273

std::unique_ptr<ASTConsumer>

276

std::vector<std::unique_ptr<ASTConsumer>> Consumers;

280

Consumers.push_back(std::make_unique<ReducedBMIGenerator>(

286

Consumers.push_back(std::make_unique<CXX20ModulesGenerator>(

291 return

std::make_unique<MultiplexConsumer>(std::move(Consumers));

294

std::unique_ptr<raw_pwrite_stream>

300

std::unique_ptr<ASTConsumer>

301

GenerateReducedModuleInterfaceAction::CreateASTConsumer(

CompilerInstance

&CI,

308bool

GenerateHeaderUnitAction::BeginSourceFileAction(

CompilerInstance

&CI) {

317

std::unique_ptr<raw_pwrite_stream>

326

std::unique_ptr<ASTConsumer>

328 return

std::make_unique<ASTConsumer>();

331

std::unique_ptr<ASTConsumer>

334 return

std::make_unique<ASTConsumer>();

337

std::unique_ptr<ASTConsumer>

339 return

std::make_unique<ASTConsumer>();

346

std::unique_ptr<ASTReader> Reader(

new ASTReader

(

349

Sysroot.empty() ?

""

: Sysroot.c_str(),

363struct

TemplightEntry {

367

std::string DefinitionLocation;

368

std::string PointOfInstantiation;

374template

<>

struct

MappingTraits<TemplightEntry> {

375 static void mapping

(IO &io, TemplightEntry &fields) {

376

io.mapRequired(

"name"

, fields.Name);

377

io.mapRequired(

"kind"

, fields.Kind);

378

io.mapRequired(

"event"

, fields.Event);

379

io.mapRequired(

"orig"

, fields.DefinitionLocation);

380

io.mapRequired(

"poi"

, fields.PointOfInstantiation);

396 const

CodeSynthesisContext &Inst)

override

{

397

displayTemplightEntry<true>(llvm::outs(), TheSema, Inst);

401 const

CodeSynthesisContext &Inst)

override

{

402

displayTemplightEntry<false>(llvm::outs(), TheSema, Inst);

406 static

std::string

toString

(CodeSynthesisContext::SynthesisKind

Kind

) {

408 case

CodeSynthesisContext::TemplateInstantiation:

409 return "TemplateInstantiation"

;

410 case

CodeSynthesisContext::DefaultTemplateArgumentInstantiation:

411 return "DefaultTemplateArgumentInstantiation"

;

412 case

CodeSynthesisContext::DefaultFunctionArgumentInstantiation:

413 return "DefaultFunctionArgumentInstantiation"

;

414 case

CodeSynthesisContext::ExplicitTemplateArgumentSubstitution:

415 return "ExplicitTemplateArgumentSubstitution"

;

416 case

CodeSynthesisContext::DeducedTemplateArgumentSubstitution:

417 return "DeducedTemplateArgumentSubstitution"

;

418 case

CodeSynthesisContext::LambdaExpressionSubstitution:

419 return "LambdaExpressionSubstitution"

;

420 case

CodeSynthesisContext::PriorTemplateArgumentSubstitution:

421 return "PriorTemplateArgumentSubstitution"

;

422 case

CodeSynthesisContext::DefaultTemplateArgumentChecking:

423 return "DefaultTemplateArgumentChecking"

;

424 case

CodeSynthesisContext::ExceptionSpecEvaluation:

425 return "ExceptionSpecEvaluation"

;

426 case

CodeSynthesisContext::ExceptionSpecInstantiation:

427 return "ExceptionSpecInstantiation"

;

428 case

CodeSynthesisContext::DeclaringSpecialMember:

429 return "DeclaringSpecialMember"

;

430 case

CodeSynthesisContext::DeclaringImplicitEqualityComparison:

431 return "DeclaringImplicitEqualityComparison"

;

432 case

CodeSynthesisContext::DefiningSynthesizedFunction:

433 return "DefiningSynthesizedFunction"

;

434 case

CodeSynthesisContext::RewritingOperatorAsSpaceship:

435 return "RewritingOperatorAsSpaceship"

;

436 case

CodeSynthesisContext::Memoization:

437 return "Memoization"

;

438 case

CodeSynthesisContext::ConstraintsCheck:

439 return "ConstraintsCheck"

;

440 case

CodeSynthesisContext::ConstraintSubstitution:

441 return "ConstraintSubstitution"

;

442 case

CodeSynthesisContext::ConstraintNormalization:

443 return "ConstraintNormalization"

;

444 case

CodeSynthesisContext::RequirementParameterInstantiation:

445 return "RequirementParameterInstantiation"

;

446 case

CodeSynthesisContext::ParameterMappingSubstitution:

447 return "ParameterMappingSubstitution"

;

448 case

CodeSynthesisContext::RequirementInstantiation:

449 return "RequirementInstantiation"

;

450 case

CodeSynthesisContext::NestedRequirementConstraintsCheck:

451 return "NestedRequirementConstraintsCheck"

;

452 case

CodeSynthesisContext::InitializingStructuredBinding:

453 return "InitializingStructuredBinding"

;

454 case

CodeSynthesisContext::MarkingClassDllexported:

455 return "MarkingClassDllexported"

;

456 case

CodeSynthesisContext::BuildingBuiltinDumpStructCall:

457 return "BuildingBuiltinDumpStructCall"

;

458 case

CodeSynthesisContext::BuildingDeductionGuides:

459 return "BuildingDeductionGuides"

;

460 case

CodeSynthesisContext::TypeAliasTemplateInstantiation:

461 return "TypeAliasTemplateInstantiation"

;

462 case

CodeSynthesisContext::PartialOrderingTTP:

463 return "PartialOrderingTTP"

;

468 template

<

bool

BeginInstantiation>

469 static void

displayTemplightEntry(llvm::raw_ostream &Out,

const Sema

&TheSema,

470 const

CodeSynthesisContext &Inst) {

473

llvm::raw_string_ostream OS(YAML);

474

llvm::yaml::Output YO(OS);

475

TemplightEntry Entry =

476

getTemplightEntry<BeginInstantiation>(TheSema, Inst);

477

llvm::yaml::EmptyContext Context;

478

llvm::yaml::yamlize(YO, Entry,

true

, Context);

480

Out <<

"---"

<< YAML <<

"\n"

;

483 static void

printEntryName(

const Sema

&TheSema,

const Decl

*Entity,

484

llvm::raw_string_ostream &OS) {

485 auto

*NamedTemplate = cast<NamedDecl>(Entity);

490

NamedTemplate->getNameForDiagnostic(OS, Policy,

true

);

492 if

(!OS.str().empty())

496 NamedDecl

*NamedCtx = dyn_cast_or_null<NamedDecl>(Ctx);

498 if

(

const auto

*

Decl

= dyn_cast<TagDecl>(NamedTemplate)) {

499 if

(

const auto

*R = dyn_cast<RecordDecl>(

Decl

)) {

506

OS <<

"unnamed "

<<

Decl

->getKindName();

510

assert(NamedCtx &&

"NamedCtx cannot be null"

);

512 if

(

const auto

*

Decl

= dyn_cast<ParmVarDecl>(NamedTemplate)) {

513

OS <<

"unnamed function parameter "

<<

Decl

->getFunctionScopeIndex()

515 if

(

Decl

->getFunctionScopeDepth() > 0)

516

OS <<

"(at depth "

<<

Decl

->getFunctionScopeDepth() <<

") "

;

522 if

(

const auto

*

Decl

= dyn_cast<TemplateTypeParmDecl>(NamedTemplate)) {

523 if

(

const Type

*Ty =

Decl

->getTypeForDecl()) {

524 if

(

const auto

*TTPT = dyn_cast_or_null<TemplateTypeParmType>(Ty)) {

525

OS <<

"unnamed template type parameter "

<< TTPT->getIndex() <<

" "

;

526 if

(TTPT->getDepth() > 0)

527

OS <<

"(at depth "

<< TTPT->getDepth() <<

") "

;

535 if

(

const auto

*

Decl

= dyn_cast<NonTypeTemplateParmDecl>(NamedTemplate)) {

536

OS <<

"unnamed template non-type parameter "

<<

Decl

->getIndex() <<

" "

;

537 if

(

Decl

->getDepth() > 0)

538

OS <<

"(at depth "

<<

Decl

->getDepth() <<

") "

;

544 if

(

const auto

*

Decl

= dyn_cast<TemplateTemplateParmDecl>(NamedTemplate)) {

545

OS <<

"unnamed template template parameter "

<<

Decl

->getIndex() <<

" "

;

546 if

(

Decl

->getDepth() > 0)

547

OS <<

"(at depth "

<<

Decl

->getDepth() <<

") "

;

553

llvm_unreachable(

"Failed to retrieve a name for this entry!"

);

554

OS <<

"unnamed identifier"

;

557 template

<

bool

BeginInstantiation>

558 static

TemplightEntry getTemplightEntry(

const Sema

&TheSema,

559 const

CodeSynthesisContext &Inst) {

560

TemplightEntry Entry;

562

Entry.Event = BeginInstantiation ?

"Begin"

:

"End"

;

563

llvm::raw_string_ostream OS(Entry.Name);

564

printEntryName(TheSema, Inst.Entity, OS);

568

Entry.DefinitionLocation = std::string(DefLoc.

getFilename

()) +

":"

+

569

std::to_string(DefLoc.

getLine

()) +

":"

+

574

Entry.PointOfInstantiation = std::string(PoiLoc.

getFilename

()) +

":"

+

575

std::to_string(PoiLoc.

getLine

()) +

":"

+

583

std::unique_ptr<ASTConsumer>

585 return

std::make_unique<ASTConsumer>();

595

EnsureSemaIsCreated(CI, *

this

);

598

std::make_unique<DefaultTemplateInstCallback>());

606

llvm::raw_ostream &Out;

609

DumpModuleInfoListener(llvm::raw_ostream &Out) : Out(Out) { }

611#define DUMP_BOOLEAN(Value, Text) \ 612 Out.indent(4) << Text << ": "

<< (Value? "Yes" : "No") << "\n"

614 bool

ReadFullVersionInformation(StringRef FullVersion)

override

{

619

<<

" Clang: "

<< FullVersion <<

"\n"

;

623 void

ReadModuleName(StringRef ModuleName)

override

{

624

Out.indent(2) <<

"Module name: "

<< ModuleName <<

"\n"

;

626 void

ReadModuleMapFile(StringRef ModuleMapPath)

override

{

627

Out.indent(2) <<

"Module map file: "

<< ModuleMapPath <<

"\n"

;

630 bool

ReadLanguageOptions(

const LangOptions

&LangOpts,

631

StringRef ModuleFilename,

bool

Complain,

632 bool

AllowCompatibleDifferences)

override

{

633

Out.indent(2) <<

"Language options:\n"

;

634#define LANGOPT(Name, Bits, Default, Description) \ 635 DUMP_BOOLEAN(LangOpts.Name, Description); 636#define ENUM_LANGOPT(Name, Type, Bits, Default, Description) \ 637 Out.indent(4) << Description << ": "

\

638

<< static_cast<unsigned>(LangOpts.get##Name()) << "\n";

639#define VALUE_LANGOPT(Name, Bits, Default, Description) \ 640 Out.indent(4) << Description << ": "

<< LangOpts.Name << "\n";

641#define BENIGN_LANGOPT(Name, Bits, Default, Description) 642#define BENIGN_ENUM_LANGOPT(Name, Type, Bits, Default, Description) 643#include "clang/Basic/LangOptions.def" 646

Out.indent(4) <<

"Module features:\n"

;

648

Out.indent(6) << Feature <<

"\n"

;

655

StringRef ModuleFilename,

bool

Complain,

656 bool

AllowCompatibleDifferences)

override

{

657

Out.indent(2) <<

"Target options:\n"

;

658

Out.indent(4) <<

" Triple: "

<< TargetOpts.

Triple

<<

"\n"

;

659

Out.indent(4) <<

" CPU: "

<< TargetOpts.

CPU

<<

"\n"

;

660

Out.indent(4) <<

" TuneCPU: "

<< TargetOpts.

TuneCPU

<<

"\n"

;

661

Out.indent(4) <<

" ABI: "

<< TargetOpts.

ABI

<<

"\n"

;

664

Out.indent(4) <<

"Target features:\n"

;

675

StringRef ModuleFilename,

676 bool

Complain)

override

{

677

Out.indent(2) <<

"Diagnostic options:\n"

;

678#define DIAGOPT(Name, Bits, Default) DUMP_BOOLEAN(DiagOpts->Name, #Name); 679#define ENUM_DIAGOPT(Name, Type, Bits, Default) \ 680 Out.indent(4) << #Name << ": "

<< DiagOpts->get##Name() << "\n";

681#define VALUE_DIAGOPT(Name, Bits, Default) \ 682 Out.indent(4) << #Name << ": "

<< DiagOpts->Name << "\n";

683#include "clang/Basic/DiagnosticOptions.def" 685

Out.indent(4) <<

"Diagnostic flags:\n"

;

686 for

(

const

std::string &

Warning

: DiagOpts->Warnings)

687

Out.indent(6) <<

"-W"

<<

Warning

<<

"\n"

;

688 for

(

const

std::string &

Remark

: DiagOpts->Remarks)

689

Out.indent(6) <<

"-R"

<<

Remark

<<

"\n"

;

695

StringRef ModuleFilename,

696

StringRef SpecificModuleCachePath,

697 bool

Complain)

override

{

698

Out.indent(2) <<

"Header search options:\n"

;

699

Out.indent(4) <<

"System root [-isysroot=]: '"

<< HSOpts.

Sysroot

<<

"'\n"

;

700

Out.indent(4) <<

"Resource dir [ -resource-dir=]: '"

<< HSOpts.

ResourceDir

<<

"'\n"

;

701

Out.indent(4) <<

"Module Cache: '"

<< SpecificModuleCachePath <<

"'\n"

;

703 "Use builtin include directories [-nobuiltininc]"

);

705 "Use standard system include directories [-nostdinc]"

);

707 "Use standard C++ include directories [-nostdinc++]"

);

709 "Use libc++ (rather than libstdc++) [-stdlib=]"

);

714 bool

Complain)

override

{

715

Out.indent(2) <<

"Header search paths:\n"

;

716

Out.indent(4) <<

"User entries:\n"

;

718

Out.indent(6) << Entry.Path <<

"\n"

;

719

Out.indent(4) <<

"System header prefixes:\n"

;

721

Out.indent(6) << Prefix.Prefix <<

"\n"

;

722

Out.indent(4) <<

"VFS overlay files:\n"

;

724

Out.indent(6) << Overlay <<

"\n"

;

729

StringRef ModuleFilename,

bool

ReadMacros,

731

std::string &SuggestedPredefines)

override

{

732

Out.indent(2) <<

"Preprocessor options:\n"

;

734 "Uses compiler/target-specific predefines [-undef]"

);

736 "Uses detailed preprocessing record (for indexing)"

);

739

Out.indent(4) <<

"Predefined macros:\n"

;

742 for

(std::vector<std::pair<std::string, bool/*isUndef*/> >::const_iterator

743

I = PPOpts.

Macros

.begin(), IEnd = PPOpts.

Macros

.end();

750

Out << I->first <<

"\n"

;

756 void

readModuleFileExtension(

758

Out.indent(2) <<

"Module file extension '" 763

Out.write_escaped(Metadata.

UserInfo

);

771 bool

needsInputFileVisitation()

override

{

return true

; }

775 bool

needsSystemInputFileVisitation()

override

{

return true

; }

780 bool

visitInputFile(StringRef

Filename

,

bool

isSystem,

781 bool

isOverridden,

bool

isExplicitModule)

override

{

783

Out.indent(2) <<

"Input file: "

<<

Filename

;

785 if

(isSystem || isOverridden || isExplicitModule) {

789 if

(isOverridden || isExplicitModule)

793

Out <<

"Overridden"

;

794 if

(isExplicitModule)

797 if

(isExplicitModule)

798

Out <<

"ExplicitModule"

;

810 bool

needsImportVisitation()

const override

{

return true

; }

814 void

visitImport(StringRef ModuleName, StringRef

Filename

)

override

{

815

Out.indent(2) <<

"Imports module '"

<< ModuleName

816

<<

"': "

<<

Filename

.str() <<

"\n"

;

832 return "Module Map Module"

;

834 return "Interface Unit"

;

836 return "Implementation Unit"

;

838 return "Partition Interface"

;

840 return "Partition Implementation"

;

842 return "Header Unit"

;

844 return "Global Module Fragment"

;

846 return "Implicit Module Fragment"

;

848 return "Private Module Fragment"

;

850

llvm_unreachable(

"unknown module kind!"

);

865 if

(!OutputFileName.empty() && OutputFileName !=

"-"

) {

867

OutputStream.reset(

new

llvm::raw_fd_ostream(

868

OutputFileName.str(), EC, llvm::sys::fs::OF_TextWithCRLF));

870

llvm::raw_ostream &Out = OutputStream ? *OutputStream : llvm::outs();

872

Out <<

"Information for module file '"

<<

getCurrentFile

() <<

"':\n"

;

875

StringRef Magic = (*Buffer)->getMemBufferRef().getBuffer();

876 bool

IsRaw = Magic.starts_with(

"CPCH"

);

877

Out <<

" Module format: "

<< (IsRaw ?

"raw"

:

"obj"

) <<

"\n"

;

880

DumpModuleInfoListener Listener(Out);

892

Out <<

" ====== C++20 Module structure ======\n"

;

895

Out <<

" Mismatched module names : "

<< MF.

ModuleName

<<

" and " 905

std::map<std::string, SubModInfo> SubModMap;

908 auto

I = SubModMap.find(Name);

909 if

(I == SubModMap.end())

910

Out <<

" was not found in the sub modules!\n"

;

912

I->second.Seen =

true

;

913

Out <<

" is at index #"

<< I->second.Idx <<

"\n"

;

916 Module

*Primary =

nullptr

;

917 for

(

unsigned

Idx = 0; Idx <= SubModuleCount; ++Idx) {

924

<<

"' is the Primary Module at index #"

<< Idx <<

"\n"

;

925

SubModMap.insert({M->

Name

, {Idx, M, M->

Kind

, M->Name,

true

}});

927

SubModMap.insert({M->

Name

, {Idx, M, M->

Kind

, M->Name,

false

}});

931

Out <<

" Sub Modules:\n"

;

933

PrintSubMapEntry(MI->Name, MI->Kind);

935 if

(!Primary->

Imports

.empty())

936

Out <<

" Imports:\n"

;

937 for

(

auto

*IMP : Primary->

Imports

) {

938

PrintSubMapEntry(IMP->Name, IMP->Kind);

940 if

(!Primary->

Exports

.empty())

941

Out <<

" Exports:\n"

;

942 for

(

unsigned

MN = 0, N = Primary->

Exports

.size(); MN != N; ++MN) {

944

PrintSubMapEntry(M->Name, M->Kind);

952 if

(

auto

FilteredMacros = llvm::make_filter_range(

954

[](

const auto

&Macro) { return Macro.first->isFromAST(); });

955

!FilteredMacros.empty()) {

956

Out <<

" Macro Definitions:\n"

;

957 for

(

const auto

&Macro :

959

Out <<

" "

<< Macro.first->getName() <<

"\n"

;

963 for

(

const auto

&

SM

: SubModMap) {

964 if

(!

SM

.second.Seen &&

SM

.second.Mod) {

966

<<

"' at index #"

<<

SM

.second.Idx

967

<<

" has no direct reference in the Primary\n"

;

970

Out <<

" ====== ======\n"

;

991

llvm::MemoryBufferRef FromFile =

SM

.getBufferOrFake(

SM

.getMainFileID());

997 while

(RawTok.

isNot

(tok::eof)) {

999

llvm::errs() <<

"\n"

;

1012

llvm::errs() <<

"\n"

;

1013

}

while

(Tok.

isNot

(tok::eof));

1027

}

while

(Tok.

isNot

(tok::eof));

1046 bool

BinaryMode =

false

;

1047 if

(llvm::Triple(LLVM_HOST_TRIPLE).isOSWindows()) {

1050 if

(std::optional<llvm::MemoryBufferRef> Buffer =

1051 SM

.getBufferOrNone(

SM

.getMainFileID())) {

1052 const char

*cur = Buffer->getBufferStart();

1053 const char

*end = Buffer->getBufferEnd();

1054 const char

*next = (cur != end) ? cur + 1 : end;

1059 if

(end - cur > 256)

1062 while

(next < end) {

1065

BinaryMode =

false

;

1068

}

else if

(*cur == 0x0A)

1077

std::unique_ptr<raw_ostream> OS =

1085 if

(Input.isFile()) {

1087

OS->write_escaped(Input.getFile());

1091

(*OS) <<

"#pragma clang module contents\n"

;

1128

llvm::outs().write((*Buffer)->getBufferStart(),

Preamble

);

1132void

DumpCompilerOptionsAction::ExecuteAction() {

1134

std::unique_ptr<raw_ostream> OSP =

1139

raw_ostream &OS = *OSP;

1149

OS <<

"\n\"features\" : [\n"

;

1152#define FEATURE(Name, Predicate) \ 1153 ("\t{\""

#Name "\" : " + llvm::Twine(Predicate ? "true" : "false") + "},\n") \

1155#include "clang/Basic/Features.def" 1159

OS << Str.substr(0, Str.size() - 2);

1163

OS <<

"\n\"extensions\" : [\n"

;

1166#define EXTENSION(Name, Predicate) \ 1167 ("\t{\""

#Name "\" : " + llvm::Twine(Predicate ? "true" : "false") + "},\n") \

1169#include "clang/Basic/Features.def" 1173

OS << Str.substr(0, Str.size() - 2);

1183

llvm::MemoryBufferRef FromFile =

SM

.getBufferOrFake(

SM

.getMainFileID());

1188

FromFile.getBuffer(), Tokens, Directives, &CI.

getDiagnostics

(),

1189 SM

.getLocForStartOfFile(

SM

.getMainFileID()))) {

1191 "no errors reported for failure"

);

1203

}

while

(Tok.

isNot

(tok::eof));

1211void

GetDependenciesByModuleNameAction::ExecuteAction() {

1215 FileID

MainFileID =

SM

.getMainFileID();

1219 Path

.push_back(std::make_pair(ModuleID, FileStart));

enum clang::sema::@1704::IndirectLocalPathEntry::EntryKind Kind

This is the interface for scanning header and source files to get the minimum necessary preprocessor ...

Defines the clang::FileManager interface and associated types.

#define DUMP_BOOLEAN(Value, Text)

static StringRef ModuleKindName(Module::ModuleKind MK)

Defines the clang::Module class, which describes a module in the source code.

Defines the clang::Preprocessor interface.

static std::string toString(const clang::SanitizerSet &Sanitizers)

Produce a string containing comma-separated names of sanitizers in Sanitizers set.

const clang::PrintingPolicy & getPrintingPolicy() const

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

void ExecuteAction() override

Implement the ExecuteAction interface by running Sema on the already-initialized AST consumer.

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

Abstract interface for callback invocations by the ASTReader.

virtual bool ReadFullVersionInformation(StringRef FullVersion)

Receives the full Clang version information.

Reads an AST files chain containing the contents of a translation unit.

ModuleManager & getModuleManager()

Retrieve the module manager.

@ ARR_ConfigurationMismatch

The client can handle an AST file that cannot load because it's compiled configuration doesn't match ...

unsigned getTotalNumSubmodules() const

Returns the number of submodules known.

Module * getModule(unsigned ID) override

Retrieve the module that corresponds to the given module ID.

static bool readASTFileControlBlock(StringRef Filename, FileManager &FileMgr, const InMemoryModuleCache &ModuleCache, const PCHContainerReader &PCHContainerRdr, bool FindModuleFileExtensions, ASTReaderListener &Listener, bool ValidateDiagnosticOptions, unsigned ClientLoadCapabilities=ARR_ConfigurationMismatch|ARR_OutOfDate)

Read the control block for the named AST file.

Preprocessor & getPreprocessor() const

Retrieve the preprocessor.

const LangOptions & getLangOpts() const

IntrusiveRefCntPtr< ASTReader > getASTReader() const

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

Abstract interface for a consumer of code-completion information.

CompilerInstance - Helper class for managing a single instance of the Clang compiler.

const PCHContainerReader & getPCHContainerReader() const

Return the appropriate PCHContainerReader depending on the current CodeGenOptions.

DiagnosticsEngine & getDiagnostics() const

Get the current diagnostics engine.

std::unique_ptr< raw_pwrite_stream > createDefaultOutputFile(bool Binary=true, StringRef BaseInput="", StringRef Extension="", bool RemoveFileOnSignal=true, bool CreateMissingDirectories=false, bool ForceUseTemporary=false)

Create the default output file (from the invocation's options) and add it to the list of tracked outp...

ModuleLoadResult loadModule(SourceLocation ImportLoc, ModuleIdPath Path, Module::NameVisibilityKind Visibility, bool IsInclusionDirective) override

Attempt to load the given module.

FileManager & getFileManager() const

Return the current file manager to the caller.

PreprocessorOutputOptions & getPreprocessorOutputOpts()

InMemoryModuleCache & getModuleCache() const

Preprocessor & getPreprocessor() const

Return the current preprocessor.

ASTContext & getASTContext() const

FrontendOptions & getFrontendOpts()

HeaderSearchOptions & getHeaderSearchOpts()

bool hasCodeCompletionConsumer() const

const PCHContainerWriter & getPCHContainerWriter() const

Return the appropriate PCHContainerWriter depending on the current CodeGenOptions.

PreprocessorOptions & getPreprocessorOpts()

void createCodeCompletionConsumer()

Create a code completion consumer using the invocation; note that this will cause the source manager ...

DiagnosticOptions & getDiagnosticOpts()

LangOptions & getLangOpts()

SourceManager & getSourceManager() const

Return the current source manager.

CodeCompleteConsumer & getCodeCompletionConsumer() const

void createSema(TranslationUnitKind TUKind, CodeCompleteConsumer *CompletionConsumer)

Create the Sema object to be used for parsing.

Decl - This represents one declaration (or definition), e.g.

static Decl * castFromDeclContext(const DeclContext *)

SourceLocation getLocation() const

DiagnosticBuilder Report(SourceLocation Loc, unsigned DiagID)

Issue the message to the client.

bool hasErrorOccurred() const

void setSuppressAllDiagnostics(bool Val)

Suppress all diagnostics, to silence the front end when we know that we don't want any more diagnosti...

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

void ExecuteAction() override

Implement the ExecuteAction interface by running Sema on the already-initialized AST consumer.

bool BeginInvocation(CompilerInstance &CI) override

Callback before starting processing a single input, giving the opportunity to modify the CompilerInvo...

void ExecuteAction() override

Callback to run the program action, using the initialized compiler instance.

void ExecuteAction() override

Callback to run the program action, using the initialized compiler instance.

An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...

llvm::ErrorOr< std::unique_ptr< llvm::MemoryBuffer > > getBufferForFile(FileEntryRef Entry, bool isVolatile=false, bool RequiresNullTerminator=true, std::optional< int64_t > MaybeLimit=std::nullopt, bool IsText=true)

Open the specified file as a MemoryBuffer, returning a new MemoryBuffer if successful,...

Abstract base class for actions which can be performed by the frontend.

const FrontendInputFile & getCurrentInput() const

InputKind getCurrentFileKind() const

virtual bool shouldEraseOutputFiles()

Callback at the end of processing a single input, to determine if the output files should be erased o...

ASTUnit & getCurrentASTUnit() const

CompilerInstance & getCompilerInstance() const

Module * getCurrentModule() const

StringRef getCurrentFile() const

virtual bool BeginSourceFileAction(CompilerInstance &CI)

Callback at the start of processing a single input.

virtual TranslationUnitKind getTranslationUnitKind()

For AST-based actions, the kind of translation unit we're handling.

virtual bool hasCodeCompletionSupport() const

Does this action support use with code completion?

StringRef getCurrentFileOrBufferName() const

bool isCurrentFileAST() const

FrontendOptions - Options for controlling the behavior of the frontend.

unsigned BuildingImplicitModule

Whether we are performing an implicit module build.

unsigned AllowPCMWithCompilerErrors

Output (and read) PCM files regardless of compiler errors.

unsigned IncludeTimestamps

Whether timestamps should be written to the produced PCH file.

std::string ASTDumpFilter

If given, filter dumped AST Decl nodes by this substring.

unsigned ASTDumpLookups

Whether we include lookup table dumps in AST dumps.

ASTDumpOutputFormat ASTDumpFormat

Specifies the output format of the AST.

std::string OutputFile

The output file, if any.

unsigned GenReducedBMI

Whether to generate reduced BMI for C++20 named modules.

std::vector< std::shared_ptr< ModuleFileExtension > > ModuleFileExtensions

The list of module file extensions.

ParsedSourceLocation CodeCompletionAt

If given, enable code completion at the provided location.

std::string OriginalModuleMap

When the input is a module map, the original module map file from which that map was inferred,...

std::string ModuleOutputPath

Output Path for module output file.

unsigned ASTDumpDeclTypes

Whether we include declaration type dumps in AST dumps.

unsigned ASTDumpAll

Whether we deserialize all decls when forming AST dumps.

unsigned RelocatablePCH

When generating PCH files, instruct the AST writer to create relocatable PCH files.

unsigned ASTDumpDecls

Whether we include declaration dumps in AST dumps.

bool shouldEraseOutputFiles() override

Callback at the end of processing a single input, to determine if the output files should be erased o...

std::vector< std::unique_ptr< ASTConsumer > > CreateMultiplexConsumer(CompilerInstance &CI, StringRef InFile)

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

bool BeginSourceFileAction(CompilerInstance &CI) override

Callback at the start of processing a single input.

std::unique_ptr< raw_pwrite_stream > CreateOutputFile(CompilerInstance &CI, StringRef InFile) override

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

static std::unique_ptr< llvm::raw_pwrite_stream > CreateOutputFile(CompilerInstance &CI, StringRef InFile, std::string &OutputFile)

Creates file to write the PCH into and returns a stream to write it into.

bool BeginSourceFileAction(CompilerInstance &CI) override

Callback at the start of processing a single input.

static bool ComputeASTConsumerArguments(CompilerInstance &CI, std::string &Sysroot)

Compute the AST consumer arguments that will be used to create the PCHGenerator instance returned by ...

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

bool shouldEraseOutputFiles() override

Callback at the end of processing a single input, to determine if the output files should be erased o...

One of these records is kept for each identifier that is lexed.

@ CMK_HeaderUnit

Compiling a module header unit.

@ CMK_ModuleInterface

Compiling a C++ modules interface unit.

Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...

std::string CurrentModule

The name of the current module, of which the main source file is a part.

std::vector< std::string > ModuleFeatures

The names of any features to enable in module 'requires' decls in addition to the hard-coded list in ...

Lexer - This provides a simple interface that turns a text buffer into a stream of tokens.

void SetKeepWhitespaceMode(bool Val)

SetKeepWhitespaceMode - This method lets clients enable or disable whitespace retention mode.

bool LexFromRawLexer(Token &Result)

LexFromRawLexer - Lex a token from a designated raw lexer (one with no associated preprocessor object...

static PreambleBounds ComputePreamble(StringRef Buffer, const LangOptions &LangOpts, unsigned MaxLines=0)

Compute the preamble of the given file.

Describes a module or submodule.

SmallVector< ExportDecl, 2 > Exports

The set of export declarations.

@ Hidden

All of the names in this module are hidden.

void print(raw_ostream &OS, unsigned Indent=0, bool Dump=false) const

Print the module map for this module to the given stream.

ModuleKind Kind

The kind of this module.

llvm::SmallSetVector< Module *, 2 > Imports

The set of modules imported by this module, and on which this module depends.

std::string Name

The name of this module.

llvm::iterator_range< submodule_iterator > submodules()

@ ModuleImplementationUnit

This is a C++20 module implementation unit.

@ ModuleMapModule

This is a module that was defined by a module map and built out of header files.

@ ImplicitGlobalModuleFragment

This is an implicit fragment of the global module which contains only language linkage declarations (...

@ ModulePartitionInterface

This is a C++20 module partition interface.

@ ModuleInterfaceUnit

This is a C++20 module interface unit.

@ ModuleHeaderUnit

This is a C++20 header unit.

@ ModulePartitionImplementation

This is a C++20 module partition implementation.

@ PrivateModuleFragment

This is the private module fragment within some C++ module.

@ ExplicitGlobalModuleFragment

This is the explicit Global Module Fragment of a modular TU.

This represents a decl that may have a name.

virtual void getNameForDiagnostic(raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const

Appends a human-readable name for this declaration into the given stream.

virtual std::unique_ptr< ASTConsumer > CreatePCHContainerGenerator(CompilerInstance &CI, const std::string &MainFileName, const std::string &OutputFileName, std::unique_ptr< llvm::raw_pwrite_stream > OS, std::shared_ptr< PCHBuffer > Buffer) const =0

Return an ASTConsumer that can be chained with a PCHGenerator that produces a wrapper file format con...

This interface provides a way to observe the actions of the preprocessor as it does its thing.

virtual void moduleImport(SourceLocation ImportLoc, ModuleIdPath Path, const Module *Imported)

Callback invoked whenever there was an explicit module-import syntax.

void ExecuteAction() override

Callback to run the program action, using the initialized compiler instance.

PreprocessorOptions - This class is used for passing the various options used in preprocessor initial...

std::pair< unsigned, bool > PrecompiledPreambleBytes

If non-zero, the implicit PCH include is actually a precompiled preamble that covers this number of b...

bool DetailedRecord

Whether we should maintain a detailed record of all macro definitions and expansions.

bool UsePredefines

Initialize the preprocessor with the compiler and target specific predefines.

std::vector< std::pair< std::string, bool > > Macros

bool AllowPCHWithCompilerErrors

When true, a PCH with compiler errors will not be rejected.

Engages in a tight little dance with the lexer to efficiently preprocess tokens.

void DumpToken(const Token &Tok, bool DumpFlags=false) const

Print the token to stderr, used for debugging.

void IgnorePragmas()

Install empty handlers for all pragmas (making them ignored).

PPCallbacks * getPPCallbacks() const

void Lex(Token &Result)

Lex the next token for this preprocessor.

void EnterMainSourceFile()

Enter the specified FileID as the main source file, which implicitly adds the builtin defines etc.

IdentifierInfo * getIdentifierInfo(StringRef Name) const

Return information about the specified preprocessor identifier token.

SourceManager & getSourceManager() const

llvm::iterator_range< macro_iterator > macros(bool IncludeExternalMacros=true) const

HeaderSearch & getHeaderSearchInfo() const

const LangOptions & getLangOpts() const

Represents an unpacked "presumed" location which can be presented to the user.

unsigned getColumn() const

Return the presumed column number of this location.

const char * getFilename() const

Return the presumed filename of this location.

unsigned getLine() const

Return the presumed line number of this location.

bool isInvalid() const

Return true if this object is invalid or uninitialized.

void ExecuteAction() override

Callback to run the program action, using the initialized compiler instance.

void ExecuteAction() override

Callback to run the program action, using the initialized compiler instance.

void ExecuteAction() override

Callback to run the program action, using the initialized compiler instance.

Sema - This implements semantic analysis and AST building for C.

const LangOptions & getLangOpts() const

std::vector< std::unique_ptr< TemplateInstantiationCallback > > TemplateInstCallbacks

The template instantiation callbacks to trace or track instantiations (objects can be chained).

SourceManager & getSourceManager() const

Encodes a location in the source.

void print(raw_ostream &OS, const SourceManager &SM) const

This class handles loading and caching of source files into memory.

PresumedLoc getPresumedLoc(SourceLocation Loc, bool UseLineDirectives=true) const

Returns the "presumed" location of a SourceLocation specifies.

~SyntaxOnlyAction() override

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

Options for controlling the target.

std::string Triple

The name of the target triple to compile for.

std::string ABI

If given, the name of the target ABI to use.

std::string TuneCPU

If given, the name of the target CPU to tune code for.

std::string CPU

If given, the name of the target CPU to generate code for.

std::vector< std::string > FeaturesAsWritten

The list of target specific features to enable or disable, as written on the command line.

This is a base class for callbacks that will be notified at every template instantiation.

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

void ExecuteAction() override

Implement the ExecuteAction interface by running Sema on the already-initialized AST consumer.

Token - This structure provides full information about a lexed token.

bool isNot(tok::TokenKind K) const

The base class of the type hierarchy.

std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override

Create the AST consumer object for this action, if supported.

void ExecuteAction() override

Implement the ExecuteAction interface by running Sema on the already-initialized AST consumer.

Information about a module that has been loaded by the ASTReader.

std::string ModuleName

The name of the module.

ModuleFile & getPrimaryModule()

Returns the primary module associated with the manager, that is, the first module loaded.

Defines the clang::TargetInfo interface.

@ MK_PCH

File is a PCH file treated as such.

@ MK_Preamble

File is a PCH file treated as the preamble.

The JSON file list parser is used to communicate input to InstallAPI.

void atTemplateEnd(TemplateInstantiationCallbackPtrs &Callbacks, const Sema &TheSema, const Sema::CodeSynthesisContext &Inst)

void atTemplateBegin(TemplateInstantiationCallbackPtrs &Callbacks, const Sema &TheSema, const Sema::CodeSynthesisContext &Inst)

void printDependencyDirectivesAsSource(StringRef Source, ArrayRef< dependency_directives_scan::Directive > Directives, llvm::raw_ostream &OS)

Print the previously scanned dependency directives as minimized source text.

void initialize(TemplateInstantiationCallbackPtrs &Callbacks, const Sema &TheSema)

bool scanSourceForDependencyDirectives(StringRef Input, SmallVectorImpl< dependency_directives_scan::Token > &Tokens, SmallVectorImpl< dependency_directives_scan::Directive > &Directives, DiagnosticsEngine *Diags=nullptr, SourceLocation InputSourceLoc=SourceLocation())

Scan the input for the preprocessor directives that might have an effect on the dependencies for a co...

std::unique_ptr< ASTConsumer > CreateASTDeclNodeLister()

@ C

Languages that the frontend can parse and compile.

@ CIR

LLVM IR & CIR: we accept these so that we can run the optimizer on them, and compile them to assembly...

@ Asm

Assembly: we accept this only so that we can preprocess it.

void DoPrintPreprocessedInput(Preprocessor &PP, raw_ostream *OS, const PreprocessorOutputOptions &Opts)

DoPrintPreprocessedInput - Implement -E mode.

std::unique_ptr< ASTConsumer > CreateASTDumper(std::unique_ptr< raw_ostream > OS, StringRef FilterString, bool DumpDecls, bool Deserialize, bool DumpLookups, bool DumpDeclTypes, ASTDumpOutputFormat Format)

std::unique_ptr< ASTConsumer > CreateASTPrinter(std::unique_ptr< raw_ostream > OS, StringRef FilterString)

std::unique_ptr< ASTConsumer > CreateASTViewer()

@ None

Perform validation, don't disable it.

std::string getClangFullRepositoryVersion()

Retrieves the full repository version that is an amalgamation of the information in getClangRepositor...

void finalize(TemplateInstantiationCallbackPtrs &Callbacks, const Sema &TheSema)

Diagnostic wrappers for TextAPI types for error reporting.

unsigned Size

Size of the preamble in bytes.

Describes how types, statements, expressions, and declarations should be printed.

unsigned SuppressDefaultTemplateArgs

When true, attempt to suppress template arguments that match the default argument for the parameter.

A context in which code is being synthesized (where a source location alone is not sufficient to iden...

static void mapping(IO &io, TemplightEntry &fields)


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4