Lines Matching defs:CI
158 CompilerInstance &CI = getCompilerInstance();
159 return CI.getPreprocessor().getHeaderSearchInfo().lookupModule(
160 CI.getLangOpts().CurrentModule, SourceLocation(), /*AllowSearch*/false);
164 FrontendAction::CreateWrappedASTConsumer(CompilerInstance &CI,
166 std::unique_ptr<ASTConsumer> Consumer = CreateASTConsumer(CI, InFile);
172 for (const std::string &Arg : CI.getFrontendOpts().AddPluginActions) {
180 CI.getDiagnostics().Report(diag::err_fe_invalid_plugin_name) << Arg;
192 if (CI.hasCodeCompletionConsumer())
207 if (llvm::is_contained(CI.getFrontendOpts().AddPluginActions,
218 CI,
219 CI.getFrontendOpts().PluginArgs[std::string(Plugin.getName())])) {
220 std::unique_ptr<ASTConsumer> PluginConsumer = P->CreateASTConsumer(CI, InFile);
235 CI.getCodeGenOpts().ClearASTBeforeBackend = false;
247 /// \param CI The compiler instance.
252 static SourceLocation ReadOriginalFileName(CompilerInstance &CI,
255 auto &SourceMgr = CI.getSourceManager();
263 new Lexer(MainFileID, *MainFileBuf, SourceMgr, CI.getLangOpts()));
281 if (Lexer::getSpelling(LineNoLoc, Buffer, SourceMgr, CI.getLangOpts())
290 StringLiteralParser Literal(T, CI.getPreprocessor());
299 CI.getSourceManager().AddLineNote(
446 static bool loadModuleMapForModuleBuild(CompilerInstance &CI, bool IsSystem,
450 auto &SrcMgr = CI.getSourceManager();
451 HeaderSearch &HS = CI.getPreprocessor().getHeaderSearchInfo();
463 ReadOriginalFileName(CI, PresumedModuleMapFile, /*IsModuleMap*/ true);
465 Offset = CI.getSourceManager().getDecomposedLoc(EndOfLineMarker).second;
480 CI.getLangOpts().ModuleName + ".framework");
482 CI.getFileManager().getOptionalDirectoryRef(InferredFrameworkPath))
489 static Module *prepareToBuildModule(CompilerInstance &CI,
491 if (CI.getLangOpts().CurrentModule.empty()) {
492 CI.getDiagnostics().Report(diag::err_missing_module_name);
502 HeaderSearch &HS = CI.getPreprocessor().getHeaderSearchInfo();
503 Module *M = HS.lookupModule(CI.getLangOpts().CurrentModule, SourceLocation(),
506 CI.getDiagnostics().Report(diag::err_missing_module)
507 << CI.getLangOpts().CurrentModule << ModuleMapFilename;
513 if (Preprocessor::checkModuleIsAvailable(CI.getLangOpts(), CI.getTarget(), *M,
514 CI.getDiagnostics()))
519 CI.getPreprocessor().setMainFileDir(*M->Directory);
525 StringRef OriginalModuleMapName = CI.getFrontendOpts().OriginalModuleMap;
528 CI.getFileManager().getOptionalFileRef(OriginalModuleMapName,
531 CI.getDiagnostics().Report(diag::err_module_map_not_found)
535 if (*OriginalModuleMap != CI.getSourceManager().getFileEntryRefForID(
536 CI.getSourceManager().getMainFileID())) {
539 FileID OriginalModuleMapFID = CI.getSourceManager().getOrCreateFileID(
541 CI.getPreprocessor()
551 SourceManager &SourceMgr = CI.getSourceManager();
553 SourceMgr.pushModuleBuildStack(CI.getLangOpts().CurrentModule,
560 getInputBufferForModule(CompilerInstance &CI, Module *M) {
561 FileManager &FileMgr = CI.getFileManager();
569 HeaderContents, CI.getLangOpts(), M->IsExternC);
571 CI.getLangOpts(), FileMgr, CI.getDiagnostics(),
572 CI.getPreprocessor().getHeaderSearchInfo().getModuleMap(), M,
576 CI.getDiagnostics().Report(diag::err_module_cannot_create_includes)
585 bool FrontendAction::BeginSourceFile(CompilerInstance &CI,
591 setCompilerInstance(&CI);
601 CI.getDiagnosticClient().EndSourceFile();
602 CI.setASTConsumer(nullptr);
603 CI.clearOutputFiles(/*EraseFiles=*/true);
604 CI.getLangOpts().setCompilingModule(LangOptions::CMK_None);
609 if (!BeginInvocation(CI))
615 IntrusiveRefCntPtr<DiagnosticsEngine> Diags(&CI.getDiagnostics());
627 InputFile, CI.getPCHContainerReader(), ASTUnit::LoadPreprocessorOnly,
628 ASTDiags, CI.getFileSystemOpts(),
635 CI.getHeaderSearchOpts() = AST->getHeaderSearchOpts();
636 CI.getPreprocessorOpts() = AST->getPreprocessorOpts();
637 CI.getLangOpts() = AST->getLangOpts();
641 CI.setFileManager(&AST->getFileManager());
642 CI.createSourceManager(CI.getFileManager());
643 CI.getSourceManager().initializeForReplay(AST->getSourceManager());
654 CI.getFrontendOpts().ModuleFiles.push_back(MF.FileName);
657 CI.getFrontendOpts().ModuleMapFiles.push_back(
689 IntrusiveRefCntPtr<DiagnosticsEngine> Diags(&CI.getDiagnostics());
695 InputFile, CI.getPCHContainerReader(), ASTUnit::LoadEverything, Diags,
696 CI.getFileSystemOpts(), CI.getHeaderSearchOptsPtr(),
697 CI.getLangOptsPtr());
703 CI.getDiagnosticClient().BeginSourceFile(CI.getLangOpts(), nullptr);
708 CI.setFileManager(&AST->getFileManager());
709 CI.setSourceManager(&AST->getSourceManager());
710 CI.setPreprocessor(AST->getPreprocessorPtr());
711 Preprocessor &PP = CI.getPreprocessor();
714 CI.setASTContext(&AST->getASTContext());
719 if (!BeginSourceFileAction(CI))
723 CI.setASTConsumer(CreateWrappedASTConsumer(CI, InputFile));
724 if (!CI.hasASTConsumer())
732 if (!CI.hasFileManager()) {
733 if (!CI.createFileManager()) {
737 if (!CI.hasSourceManager()) {
738 CI.createSourceManager(CI.getFileManager());
739 if (CI.getDiagnosticOpts().getFormat() == DiagnosticOptions::SARIF) {
740 static_cast<SARIFDiagnosticPrinter *>(&CI.getDiagnosticClient())
742 std::make_unique<SarifDocumentWriter>(CI.getSourceManager()));
748 for (const auto &F : CI.getFrontendOpts().ModulesEmbedFiles) {
749 if (auto FE = CI.getFileManager().getOptionalFileRef(F, /*openFile*/true))
750 CI.getSourceManager().setFileIsTransient(*FE);
752 CI.getDiagnostics().Report(diag::err_modules_embed_file_not_found) << F;
754 if (CI.getFrontendOpts().ModulesEmbedAllFiles)
755 CI.getSourceManager().setAllFilesAreTransient(true);
760 CI.getDiagnostics().Report(diag::err_ast_action_on_llvm_ir)
766 CI.getDiagnosticClient().BeginSourceFile(CI.getLangOpts(), nullptr);
770 if (!BeginSourceFileAction(CI))
774 if (!CI.InitializeSourceManager(CurrentInput))
783 if (!CI.getPreprocessorOpts().ImplicitPCHInclude.empty()) {
784 FileManager &FileMgr = CI.getFileManager();
785 PreprocessorOptions &PPOpts = CI.getPreprocessorOpts();
787 std::string SpecificModuleCachePath = CI.getSpecificModuleCachePath();
799 Dir->path(), FileMgr, CI.getModuleCache(),
800 CI.getPCHContainerReader(), CI.getLangOpts(),
801 CI.getTargetOpts(), CI.getPreprocessorOpts(),
810 CI.getDiagnostics().Report(diag::err_fe_no_pch_in_dir) << PCHInclude;
819 CI.createPreprocessor(getTranslationUnitKind());
822 CI.getDiagnosticClient().BeginSourceFile(CI.getLangOpts(),
823 &CI.getPreprocessor());
830 if (CI.getLangOpts().CPlusPlusModules && Input.getKind().isHeaderUnit() &&
835 assert(CI.hasPreprocessor() &&
837 HeaderSearch &HS = CI.getPreprocessor().getHeaderSearchInfo();
839 auto Dir = CI.getFileManager().getOptionalDirectoryRef(".");
849 CI.getDiagnostics().Report(diag::err_module_header_file_not_found)
861 if (CI.getLangOpts().ModuleName.empty())
862 CI.getLangOpts().ModuleName = std::string(FileName);
863 CI.getLangOpts().CurrentModule = CI.getLangOpts().ModuleName;
866 if (!CI.InitializeSourceManager(Input))
869 if (CI.getLangOpts().CPlusPlusModules && Input.getKind().isHeaderUnit() &&
876 ReadOriginalFileName(CI, PresumedInputFile);
879 if (CI.getLangOpts().ModuleName.empty())
880 CI.getLangOpts().ModuleName = std::string(PresumedInputFile);
881 CI.getLangOpts().CurrentModule = CI.getLangOpts().ModuleName;
887 CI.getLangOpts().setCompilingModule(LangOptions::CMK_ModuleMap);
891 if (loadModuleMapForModuleBuild(CI, Input.isSystem(),
896 auto *CurrentModule = prepareToBuildModule(CI, Input.getFile());
904 CI.getPreprocessor().setSkipMainFilePreamble(OffsetToContents, true);
907 auto Buffer = getInputBufferForModule(CI, CurrentModule);
913 auto &SourceMgr = CI.getSourceManager();
921 if (!BeginSourceFileAction(CI))
925 for (const auto &Filename : CI.getFrontendOpts().ModuleMapFiles) {
926 if (auto File = CI.getFileManager().getOptionalFileRef(Filename))
927 CI.getPreprocessor().getHeaderSearchInfo().loadModuleMapFile(
930 CI.getDiagnostics().Report(diag::err_module_map_not_found) << Filename;
934 (void)CI.getPreprocessor().getCurrentModuleImplementation();
938 CI.getPreprocessor()
948 CI.createASTContext();
954 ReadOriginalFileName(CI, PresumedInputFile);
957 CreateWrappedASTConsumer(CI, PresumedInputFile);
963 CI.getASTContext().setASTMutationListener(Consumer->GetASTMutationListener());
965 if (!CI.getPreprocessorOpts().ChainedIncludes.empty()) {
968 source = createChainedIncludesSource(CI, FinalReader);
971 CI.setASTReader(static_cast<ASTReader *>(FinalReader.get()));
972 CI.getASTContext().setExternalSource(source);
973 } else if (CI.getLangOpts().Modules ||
974 !CI.getPreprocessorOpts().ImplicitPCHInclude.empty()) {
980 if (CI.getPreprocessorOpts().DumpDeserializedPCHDecls) {
985 if (!CI.getPreprocessorOpts().DeserializedPCHDeclsToErrorOn.empty()) {
987 CI.getASTContext(),
988 CI.getPreprocessorOpts().DeserializedPCHDeclsToErrorOn,
992 if (!CI.getPreprocessorOpts().ImplicitPCHInclude.empty()) {
993 CI.createPCHExternalASTSource(
994 CI.getPreprocessorOpts().ImplicitPCHInclude,
995 CI.getPreprocessorOpts().DisablePCHOrModuleValidation,
996 CI.getPreprocessorOpts().AllowPCHWithCompilerErrors,
998 if (!CI.getASTContext().getExternalSource())
1004 if (CI.getLangOpts().Modules || !CI.hasASTContext() ||
1005 !CI.getASTContext().getExternalSource()) {
1006 CI.createASTReader();
1007 CI.getASTReader()->setDeserializationListener(DeserialListener,
1012 CI.setASTConsumer(std::move(Consumer));
1013 if (!CI.hasASTConsumer())
1019 if (CI.getLangOpts().Modules || !CI.hasASTContext() ||
1020 !CI.getASTContext().getExternalSource()) {
1021 Preprocessor &PP = CI.getPreprocessor();
1027 assert((!CI.getLangOpts().Modules || CI.getASTReader()) &&
1033 for (const auto &ModuleFile : CI.getFrontendOpts().ModuleFiles) {
1035 if (!CI.loadModuleFile(ModuleFile, Loaded))
1039 CI.getDiagnostics().Report(
1045 if (!CI.getFrontendOpts().OverrideRecordLayoutsFile.empty() &&
1046 CI.hasASTContext() && !CI.getASTContext().getExternalSource()) {
1049 CI.getFrontendOpts().OverrideRecordLayoutsFile));
1050 CI.getASTContext().setExternalSource(Override);
1054 if (CI.getLangOpts().HLSL && CI.hasASTContext()) {
1058 CI.getASTContext().getExternalSource())) {
1061 CI.getASTContext().setExternalSource(MultiSema);
1063 CI.getASTContext().setExternalSource(HLSLSema);
1071 CompilerInstance &CI = getCompilerInstance();
1076 if (CI.shouldBuildGlobalModuleIndex() && CI.hasFileManager() &&
1077 CI.hasPreprocessor()) {
1079 CI.getPreprocessor().getHeaderSearchInfo().getModuleCachePath();
1082 CI.getFileManager(), CI.getPCHContainerReader(), Cache)) {
1095 CompilerInstance &CI = getCompilerInstance();
1098 CI.getDiagnosticClient().EndSourceFile();
1101 if (CI.hasPreprocessor())
1102 CI.getPreprocessor().EndSourceFile();
1110 bool DisableFree = CI.getFrontendOpts().DisableFree;
1112 CI.resetAndLeakSema();
1113 CI.resetAndLeakASTContext();
1114 llvm::BuryPointer(CI.takeASTConsumer().get());
1116 CI.setSema(nullptr);
1117 CI.setASTContext(nullptr);
1118 CI.setASTConsumer(nullptr);
1121 if (CI.getFrontendOpts().ShowStats) {
1123 CI.getPreprocessor().PrintStats();
1124 CI.getPreprocessor().getIdentifierTable().PrintStats();
1125 CI.getPreprocessor().getHeaderSearchInfo().PrintStats();
1126 CI.getSourceManager().PrintStats();
1132 CI.clearOutputFiles(/*EraseFiles=*/shouldEraseOutputFiles());
1139 CI.resetAndLeakPreprocessor();
1140 CI.resetAndLeakSourceManager();
1141 CI.resetAndLeakFileManager();
1144 CI.setPreprocessor(nullptr);
1145 CI.setSourceManager(nullptr);
1146 CI.setFileManager(nullptr);
1152 CI.getLangOpts().setCompilingModule(LangOptions::CMK_None);
1164 CompilerInstance &CI = getCompilerInstance();
1165 if (!CI.hasPreprocessor())
1175 !CI.getFrontendOpts().CodeCompletionAt.FileName.empty())
1176 CI.createCodeCompletionConsumer();
1180 if (CI.hasCodeCompletionConsumer())
1181 CompletionConsumer = &CI.getCodeCompletionConsumer();
1183 if (!CI.hasSema())
1184 CI.createSema(getTranslationUnitKind(), CompletionConsumer);
1186 ParseAST(CI.getSema(), CI.getFrontendOpts().ShowStats,
1187 CI.getFrontendOpts().SkipFunctionBodies);
1193 PreprocessorFrontendAction::CreateASTConsumer(CompilerInstance &CI,
1198 bool WrapperFrontendAction::PrepareToExecuteAction(CompilerInstance &CI) {
1199 return WrappedAction->PrepareToExecuteAction(CI);
1202 WrapperFrontendAction::CreateASTConsumer(CompilerInstance &CI,
1204 return WrappedAction->CreateASTConsumer(CI, InFile);
1206 bool WrapperFrontendAction::BeginInvocation(CompilerInstance &CI) {
1207 return WrappedAction->BeginInvocation(CI);
1209 bool WrapperFrontendAction::BeginSourceFileAction(CompilerInstance &CI) {
1211 WrappedAction->setCompilerInstance(&CI);
1212 auto Ret = WrappedAction->BeginSourceFileAction(CI);