diff --git a/clang-tools-extra/clangd/ClangdServer.cpp b/clang-tools-extra/clangd/ClangdServer.cpp --- a/clang-tools-extra/clangd/ClangdServer.cpp +++ b/clang-tools-extra/clangd/ClangdServer.cpp @@ -191,7 +191,7 @@ WorkScheduler.emplace(CDB, TUScheduler::Options(Opts), std::make_unique( DynamicIdx.get(), Callbacks, TFS, - IndexTasks ? IndexTasks.getPointer() : nullptr)); + IndexTasks ? &*IndexTasks : nullptr)); // Adds an index to the stack, at higher priority than existing indexes. auto AddIndex = [&](SymbolIndex *Idx) { if (this->Index != nullptr) { @@ -408,7 +408,7 @@ // both the old and the new version in case only one of them matches. CodeCompleteResult Result = clangd::codeComplete( File, Pos, IP->Preamble, ParseInput, CodeCompleteOpts, - SpecFuzzyFind ? SpecFuzzyFind.getPointer() : nullptr); + SpecFuzzyFind ? &*SpecFuzzyFind : nullptr); { clang::clangd::trace::Span Tracer("Completion results callback"); CB(std::move(Result)); diff --git a/clang-tools-extra/clangd/CodeComplete.cpp b/clang-tools-extra/clangd/CodeComplete.cpp --- a/clang-tools-extra/clangd/CodeComplete.cpp +++ b/clang-tools-extra/clangd/CodeComplete.cpp @@ -1768,8 +1768,8 @@ assert(IdentifierResult); C.Name = IdentifierResult->Name; } - if (auto OverloadSet = C.overloadSet( - Opts, FileName, Inserter ? Inserter.getPointer() : nullptr)) { + if (auto OverloadSet = + C.overloadSet(Opts, FileName, Inserter ? &*Inserter : nullptr)) { auto Ret = BundleLookup.try_emplace(OverloadSet, Bundles.size()); if (Ret.second) Bundles.emplace_back(); @@ -1863,9 +1863,9 @@ Relevance.Name = Bundle.front().Name; Relevance.FilterLength = HeuristicPrefix.Name.size(); Relevance.Query = SymbolRelevanceSignals::CodeComplete; - Relevance.FileProximityMatch = FileProximity.getPointer(); + Relevance.FileProximityMatch = &*FileProximity; if (ScopeProximity) - Relevance.ScopeProximityMatch = ScopeProximity.getPointer(); + Relevance.ScopeProximityMatch = &*ScopeProximity; if (PreferredType) Relevance.HadContextType = true; Relevance.ContextWords = &ContextWords; diff --git a/clang-tools-extra/clangd/ParsedAST.cpp b/clang-tools-extra/clangd/ParsedAST.cpp --- a/clang-tools-extra/clangd/ParsedAST.cpp +++ b/clang-tools-extra/clangd/ParsedAST.cpp @@ -482,7 +482,7 @@ CTContext->setASTContext(&Clang->getASTContext()); CTContext->setCurrentFile(Filename); CTContext->setSelfContainedDiags(true); - CTChecks = CTFactories.createChecksForLanguage(CTContext.getPointer()); + CTChecks = CTFactories.createChecksForLanguage(&*CTContext); Preprocessor *PP = &Clang->getPreprocessor(); for (const auto &Check : CTChecks) { Check->registerPPCallbacks(Clang->getSourceManager(), PP, PP); @@ -663,7 +663,7 @@ Preamble->Diags.end()); // Finally, add diagnostics coming from the AST. { - std::vector D = ASTDiags.take(CTContext.getPointer()); + std::vector D = ASTDiags.take(&*CTContext); Diags->insert(Diags->end(), D.begin(), D.end()); } } diff --git a/clang-tools-extra/clangd/TUScheduler.cpp b/clang-tools-extra/clangd/TUScheduler.cpp --- a/clang-tools-extra/clangd/TUScheduler.cpp +++ b/clang-tools-extra/clangd/TUScheduler.cpp @@ -1653,10 +1653,9 @@ bool ContentChanged = false; if (!FD) { // Create a new worker to process the AST-related tasks. - ASTWorkerHandle Worker = - ASTWorker::create(File, CDB, *IdleASTs, *HeaderIncluders, - WorkerThreads ? WorkerThreads.getPointer() : nullptr, - Barrier, Opts, *Callbacks); + ASTWorkerHandle Worker = ASTWorker::create( + File, CDB, *IdleASTs, *HeaderIncluders, + WorkerThreads ? &*WorkerThreads : nullptr, Barrier, Opts, *Callbacks); FD = std::unique_ptr( new FileData{Inputs.Contents, std::move(Worker)}); ContentChanged = true; diff --git a/clang-tools-extra/clangd/index/Serialization.h b/clang-tools-extra/clangd/index/Serialization.h --- a/clang-tools-extra/clangd/index/Serialization.h +++ b/clang-tools-extra/clangd/index/Serialization.h @@ -64,11 +64,11 @@ IndexFileOut() = default; IndexFileOut(const IndexFileIn &I) - : Symbols(I.Symbols ? I.Symbols.getPointer() : nullptr), - Refs(I.Refs ? I.Refs.getPointer() : nullptr), - Relations(I.Relations ? I.Relations.getPointer() : nullptr), - Sources(I.Sources ? I.Sources.getPointer() : nullptr), - Cmd(I.Cmd ? I.Cmd.getPointer() : nullptr) {} + : Symbols(I.Symbols ? &*I.Symbols : nullptr), + Refs(I.Refs ? &*I.Refs : nullptr), + Relations(I.Relations ? &*I.Relations : nullptr), + Sources(I.Sources ? &*I.Sources : nullptr), + Cmd(I.Cmd ? &*I.Cmd : nullptr) {} }; // Serializes an index file. llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const IndexFileOut &O); diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp --- a/clang-tools-extra/clangd/tool/ClangdMain.cpp +++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -993,8 +993,7 @@ } else { log("Starting LSP over stdin/stdout"); TransportLayer = newJSONTransport( - stdin, llvm::outs(), - InputMirrorStream ? InputMirrorStream.getPointer() : nullptr, + stdin, llvm::outs(), InputMirrorStream ? &*InputMirrorStream : nullptr, PrettyPrint, InputStyle); } if (!PathMappingsArg.empty()) { diff --git a/clang-tools-extra/pseudo/tool/ClangPseudo.cpp b/clang-tools-extra/pseudo/tool/ClangPseudo.cpp --- a/clang-tools-extra/pseudo/tool/ClangPseudo.cpp +++ b/clang-tools-extra/pseudo/tool/ClangPseudo.cpp @@ -113,7 +113,7 @@ if (Source.getNumOccurrences()) { SourceText = readOrDie(Source); RawStream = clang::pseudo::lex(SourceText, LangOpts); - TokenStream *Stream = RawStream.getPointer(); + TokenStream *Stream = &*RawStream; auto DirectiveStructure = clang::pseudo::DirectiveTree::parse(*RawStream); clang::pseudo::chooseConditionalBranches(DirectiveStructure, *RawStream); @@ -121,7 +121,7 @@ llvm::Optional Preprocessed; if (StripDirectives) { Preprocessed = DirectiveStructure.stripDirectives(*Stream); - Stream = Preprocessed.getPointer(); + Stream = &*Preprocessed; } if (PrintSource) diff --git a/clang/include/clang/Basic/DarwinSDKInfo.h b/clang/include/clang/Basic/DarwinSDKInfo.h --- a/clang/include/clang/Basic/DarwinSDKInfo.h +++ b/clang/include/clang/Basic/DarwinSDKInfo.h @@ -142,7 +142,7 @@ auto Mapping = VersionMappings.find(Kind.Value); if (Mapping == VersionMappings.end()) return nullptr; - return Mapping->getSecond() ? Mapping->getSecond().getPointer() : nullptr; + return Mapping->getSecond() ? &*Mapping->getSecond() : nullptr; } static Optional diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h --- a/clang/include/clang/Basic/TargetInfo.h +++ b/clang/include/clang/Basic/TargetInfo.h @@ -1671,8 +1671,7 @@ /// Returns the darwin target variant triple, the variant of the deployment /// target for which the code is being compiled. const llvm::Triple *getDarwinTargetVariantTriple() const { - return DarwinTargetVariantTriple ? DarwinTargetVariantTriple.getPointer() - : nullptr; + return DarwinTargetVariantTriple ? &*DarwinTargetVariantTriple : nullptr; } /// Returns the version of the darwin target variant SDK which was used during diff --git a/clang/include/clang/Sema/CodeCompleteConsumer.h b/clang/include/clang/Sema/CodeCompleteConsumer.h --- a/clang/include/clang/Sema/CodeCompleteConsumer.h +++ b/clang/include/clang/Sema/CodeCompleteConsumer.h @@ -424,7 +424,7 @@ llvm::Optional getCXXScopeSpecifier() { if (ScopeSpecifier) - return ScopeSpecifier.getPointer(); + return &*ScopeSpecifier; return llvm::None; } }; diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -708,7 +708,7 @@ llvm::Optional StoredDiag; if (!ResultDiag) { StoredDiag.emplace(Level, Info); - ResultDiag = StoredDiag.getPointer(); + ResultDiag = &*StoredDiag; } StandaloneDiags->push_back( makeStandaloneDiagnostic(*LangOpts, *ResultDiag)); diff --git a/clang/lib/Sema/SemaCUDA.cpp b/clang/lib/Sema/SemaCUDA.cpp --- a/clang/lib/Sema/SemaCUDA.cpp +++ b/clang/lib/Sema/SemaCUDA.cpp @@ -381,8 +381,7 @@ InferredTarget = BaseMethodTarget; } else { bool ResolutionError = resolveCalleeCUDATargetConflict( - InferredTarget.value(), BaseMethodTarget, - InferredTarget.getPointer()); + InferredTarget.value(), BaseMethodTarget, &*InferredTarget); if (ResolutionError) { if (Diagnose) { Diag(ClassDecl->getLocation(), @@ -425,8 +424,7 @@ InferredTarget = FieldMethodTarget; } else { bool ResolutionError = resolveCalleeCUDATargetConflict( - InferredTarget.value(), FieldMethodTarget, - InferredTarget.getPointer()); + InferredTarget.value(), FieldMethodTarget, &*InferredTarget); if (ResolutionError) { if (Diagnose) { Diag(ClassDecl->getLocation(), diff --git a/llvm/include/llvm/MC/MCObjectFileInfo.h b/llvm/include/llvm/MC/MCObjectFileInfo.h --- a/llvm/include/llvm/MC/MCObjectFileInfo.h +++ b/llvm/include/llvm/MC/MCObjectFileInfo.h @@ -484,8 +484,7 @@ } const Triple *getDarwinTargetVariantTriple() const { - return DarwinTargetVariantTriple ? DarwinTargetVariantTriple.getPointer() - : nullptr; + return DarwinTargetVariantTriple ? &*DarwinTargetVariantTriple : nullptr; } void setDarwinTargetVariantSDKVersion(const VersionTuple &TheSDKVersion) { diff --git a/llvm/lib/CodeGen/ExpandMemCmp.cpp b/llvm/lib/CodeGen/ExpandMemCmp.cpp --- a/llvm/lib/CodeGen/ExpandMemCmp.cpp +++ b/llvm/lib/CodeGen/ExpandMemCmp.cpp @@ -884,8 +884,7 @@ const DataLayout& DL = F.getParent()->getDataLayout(); bool MadeChanges = false; for (auto BBIt = F.begin(); BBIt != F.end();) { - if (runOnBlock(*BBIt, TLI, TTI, TL, DL, PSI, BFI, - DTU ? DTU.getPointer() : nullptr)) { + if (runOnBlock(*BBIt, TLI, TTI, TL, DL, PSI, BFI, DTU ? &*DTU : nullptr)) { MadeChanges = true; // If changes were made, restart the function from the beginning, since // the structure of the function was changed. diff --git a/llvm/lib/CodeGen/SafeStack.cpp b/llvm/lib/CodeGen/SafeStack.cpp --- a/llvm/lib/CodeGen/SafeStack.cpp +++ b/llvm/lib/CodeGen/SafeStack.cpp @@ -907,7 +907,7 @@ } else { // Otherwise, we need to compute it. LazilyComputedDomTree.emplace(F); - DT = LazilyComputedDomTree.getPointer(); + DT = &*LazilyComputedDomTree; ShouldPreserveDominatorTree = false; } diff --git a/llvm/lib/CodeGen/ShadowStackGCLowering.cpp b/llvm/lib/CodeGen/ShadowStackGCLowering.cpp --- a/llvm/lib/CodeGen/ShadowStackGCLowering.cpp +++ b/llvm/lib/CodeGen/ShadowStackGCLowering.cpp @@ -360,7 +360,7 @@ // For each instruction that escapes... EscapeEnumerator EE(F, "gc_cleanup", /*HandleExceptions=*/true, - DTU ? DTU.getPointer() : nullptr); + DTU ? &*DTU : nullptr); while (IRBuilder<> *AtExit = EE.Next()) { // Pop the entry from the shadow stack. Don't reuse CurrentHead from // AtEntry, since that would make the value live for the entire function. diff --git a/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp b/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp --- a/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp +++ b/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp @@ -20,12 +20,12 @@ NativeTypeUDT::NativeTypeUDT(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::ClassRecord CR) : NativeRawSymbol(Session, PDB_SymType::UDT, Id), Index(TI), - Class(std::move(CR)), Tag(Class.getPointer()) {} + Class(std::move(CR)), Tag(&*Class) {} NativeTypeUDT::NativeTypeUDT(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::UnionRecord UR) : NativeRawSymbol(Session, PDB_SymType::UDT, Id), Index(TI), - Union(std::move(UR)), Tag(Union.getPointer()) {} + Union(std::move(UR)), Tag(&*Union) {} NativeTypeUDT::NativeTypeUDT(NativeSession &Session, SymIndexId Id, NativeTypeUDT &UnmodifiedType, diff --git a/llvm/lib/Support/ToolOutputFile.cpp b/llvm/lib/Support/ToolOutputFile.cpp --- a/llvm/lib/Support/ToolOutputFile.cpp +++ b/llvm/lib/Support/ToolOutputFile.cpp @@ -46,7 +46,7 @@ return; } OSHolder.emplace(Filename, EC, Flags); - OS = OSHolder.getPointer(); + OS = &*OSHolder; // If open fails, no cleanup is needed. if (EC) Installer.Keep = true; @@ -55,5 +55,5 @@ ToolOutputFile::ToolOutputFile(StringRef Filename, int FD) : Installer(Filename) { OSHolder.emplace(FD, true); - OS = OSHolder.getPointer(); + OS = &*OSHolder; } diff --git a/llvm/lib/Transforms/Scalar/LoopFlatten.cpp b/llvm/lib/Transforms/Scalar/LoopFlatten.cpp --- a/llvm/lib/Transforms/Scalar/LoopFlatten.cpp +++ b/llvm/lib/Transforms/Scalar/LoopFlatten.cpp @@ -924,7 +924,7 @@ // this pass will simplify all loops that contain inner loops, // regardless of whether anything ends up being flattened. Changed |= Flatten(LN, &AR.DT, &AR.LI, &AR.SE, &AR.AC, &AR.TTI, &U, - MSSAU ? MSSAU.getPointer() : nullptr); + MSSAU ? &*MSSAU : nullptr); if (!Changed) return PreservedAnalyses::all(); @@ -989,8 +989,8 @@ bool Changed = false; for (Loop *L : *LI) { auto LN = LoopNest::getLoopNest(*L, *SE); - Changed |= Flatten(*LN, DT, LI, SE, AC, TTI, nullptr, - MSSAU ? MSSAU.getPointer() : nullptr); + Changed |= + Flatten(*LN, DT, LI, SE, AC, TTI, nullptr, MSSAU ? &*MSSAU : nullptr); } return Changed; } diff --git a/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp b/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp --- a/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp +++ b/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp @@ -221,7 +221,7 @@ AR.MSSA->verifyMemorySSA(); } if (!simplifyLoopInst(L, AR.DT, AR.LI, AR.AC, AR.TLI, - MSSAU ? MSSAU.getPointer() : nullptr)) + MSSAU ? &*MSSAU : nullptr)) return PreservedAnalyses::all(); auto PA = getLoopPassPreservedAnalyses(); diff --git a/llvm/lib/Transforms/Scalar/LoopRotation.cpp b/llvm/lib/Transforms/Scalar/LoopRotation.cpp --- a/llvm/lib/Transforms/Scalar/LoopRotation.cpp +++ b/llvm/lib/Transforms/Scalar/LoopRotation.cpp @@ -58,10 +58,9 @@ Optional MSSAU; if (AR.MSSA) MSSAU = MemorySSAUpdater(AR.MSSA); - bool Changed = - LoopRotation(&L, &AR.LI, &AR.TTI, &AR.AC, &AR.DT, &AR.SE, - MSSAU ? MSSAU.getPointer() : nullptr, SQ, false, Threshold, - false, PrepareForLTO || PrepareForLTOOption); + bool Changed = LoopRotation(&L, &AR.LI, &AR.TTI, &AR.AC, &AR.DT, &AR.SE, + MSSAU ? &*MSSAU : nullptr, SQ, false, Threshold, + false, PrepareForLTO || PrepareForLTOOption); if (!Changed) return PreservedAnalyses::all(); @@ -130,9 +129,9 @@ ? DefaultRotationThreshold : MaxHeaderSize; - return LoopRotation(L, LI, TTI, AC, &DT, &SE, - MSSAU ? MSSAU.getPointer() : nullptr, SQ, false, - Threshold, false, PrepareForLTO || PrepareForLTOOption); + return LoopRotation(L, LI, TTI, AC, &DT, &SE, MSSAU ? &*MSSAU : nullptr, SQ, + false, Threshold, false, + PrepareForLTO || PrepareForLTOOption); } }; } // end namespace diff --git a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp --- a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp +++ b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp @@ -721,8 +721,8 @@ if (AR.MSSA) MSSAU = MemorySSAUpdater(AR.MSSA); bool DeleteCurrentLoop = false; - if (!simplifyLoopCFG(L, AR.DT, AR.LI, AR.SE, - MSSAU ? MSSAU.getPointer() : nullptr, DeleteCurrentLoop)) + if (!simplifyLoopCFG(L, AR.DT, AR.LI, AR.SE, MSSAU ? &*MSSAU : nullptr, + DeleteCurrentLoop)) return PreservedAnalyses::all(); if (DeleteCurrentLoop) @@ -756,9 +756,8 @@ if (MSSAA && VerifyMemorySSA) MSSAU->getMemorySSA()->verifyMemorySSA(); bool DeleteCurrentLoop = false; - bool Changed = - simplifyLoopCFG(*L, DT, LI, SE, MSSAU ? MSSAU.getPointer() : nullptr, - DeleteCurrentLoop); + bool Changed = simplifyLoopCFG(*L, DT, LI, SE, MSSAU ? &*MSSAU : nullptr, + DeleteCurrentLoop); if (DeleteCurrentLoop) LPM.markLoopAsDeleted(*L); return Changed; diff --git a/llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp b/llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp --- a/llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp +++ b/llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp @@ -143,10 +143,10 @@ break; } HasDeadBlocks |= replaceConditionalBranchesOnConstant( - II, NewValue, DTU ? DTU.getPointer() : nullptr); + II, NewValue, DTU ? &*DTU : nullptr); } if (HasDeadBlocks) - removeUnreachableBlocks(F, DTU ? DTU.getPointer() : nullptr); + removeUnreachableBlocks(F, DTU ? &*DTU : nullptr); return !Worklist.empty(); } diff --git a/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp b/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp --- a/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp +++ b/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp @@ -139,7 +139,7 @@ case LibFunc_sqrt: if (TTI->haveFastSqrt(Call->getType()) && optimizeSQRT(Call, CalledFunc, *CurrBB, BB, TTI, - DTU ? DTU.getPointer() : nullptr)) + DTU ? &*DTU : nullptr)) break; continue; default: diff --git a/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp b/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp --- a/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp +++ b/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp @@ -873,7 +873,7 @@ for (BasicBlock &BB : llvm::make_early_inc_range(F)) { bool ModifiedDTOnIteration = false; MadeChange |= optimizeBlock(BB, ModifiedDTOnIteration, TTI, DL, - DTU ? DTU.getPointer() : nullptr); + DTU ? &*DTU : nullptr); // Restart BB iteration if the dominator tree of the Function was changed if (ModifiedDTOnIteration) diff --git a/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp b/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp --- a/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp +++ b/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp @@ -3217,8 +3217,8 @@ AR.MSSA->verifyMemorySSA(); } if (!unswitchLoop(L, AR.DT, AR.LI, AR.AC, AR.AA, AR.TTI, Trivial, NonTrivial, - UnswitchCB, &AR.SE, MSSAU ? MSSAU.getPointer() : nullptr, - PSI, AR.BFI, DestroyLoopCB)) + UnswitchCB, &AR.SE, MSSAU ? &*MSSAU : nullptr, PSI, AR.BFI, + DestroyLoopCB)) return PreservedAnalyses::all(); if (AR.MSSA && VerifyMemorySSA) diff --git a/llvm/tools/llvm-dwp/llvm-dwp.cpp b/llvm/tools/llvm-dwp/llvm-dwp.cpp --- a/llvm/tools/llvm-dwp/llvm-dwp.cpp +++ b/llvm/tools/llvm-dwp/llvm-dwp.cpp @@ -195,7 +195,7 @@ OS = &OutFile.os(); } else { BOS.emplace(OutFile.os()); - OS = BOS.getPointer(); + OS = &*BOS; } std::unique_ptr MS(TheTarget->createMCObjectStreamer(