Author: Timm Bäder Date: 2023-07-23T10:27:51+02:00 New Revision: 0d91cb5ef9c01ab633243838e892f61f73ebc56b
URL: https://github.com/llvm/llvm-project/commit/0d91cb5ef9c01ab633243838e892f61f73ebc56b DIFF: https://github.com/llvm/llvm-project/commit/0d91cb5ef9c01ab633243838e892f61f73ebc56b.diff LOG: [clang][Interp][NFC] Clean up getOrCreateDummy() Added: Modified: clang/lib/AST/Interp/Program.cpp Removed: ################################################################################ diff --git a/clang/lib/AST/Interp/Program.cpp b/clang/lib/AST/Interp/Program.cpp index 1ebf9e8cbb1655..c1697bb7fa6d64 100644 --- a/clang/lib/AST/Interp/Program.cpp +++ b/clang/lib/AST/Interp/Program.cpp @@ -139,17 +139,17 @@ std::optional<unsigned> Program::getOrCreateGlobal(const ValueDecl *VD, } std::optional<unsigned> Program::getOrCreateDummy(const ParmVarDecl *PD) { - auto &ASTCtx = Ctx.getASTContext(); + // Dedup blocks since they are immutable and pointers cannot be compared. + if (auto It = DummyParams.find(PD); + It != DummyParams.end()) + return It->second; + + auto &ASTCtx = Ctx.getASTContext(); // Create a pointer to an incomplete array of the specified elements. QualType ElemTy = PD->getType()->castAs<PointerType>()->getPointeeType(); QualType Ty = ASTCtx.getIncompleteArrayType(ElemTy, ArrayType::Normal, 0); - // Dedup blocks since they are immutable and pointers cannot be compared. - auto It = DummyParams.find(PD); - if (It != DummyParams.end()) - return It->second; - if (auto Idx = createGlobal(PD, Ty, /*isStatic=*/true, /*isExtern=*/true)) { DummyParams[PD] = *Idx; return Idx; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits