diff --git a/llvm/include/llvm/IR/IRBuilder.h b/llvm/include/llvm/IR/IRBuilder.h --- a/llvm/include/llvm/IR/IRBuilder.h +++ b/llvm/include/llvm/IR/IRBuilder.h @@ -134,9 +134,9 @@ return C; } - Value *Insert(Value *V, const Twine& = "") const { + Value *Insert(Value *V, const Twine &Name = "") const { if (Instruction *I = dyn_cast(V)) - return Insert(I); + return Insert(I, Name); assert(isa(V)); return V; } diff --git a/llvm/unittests/IR/IRBuilderTest.cpp b/llvm/unittests/IR/IRBuilderTest.cpp --- a/llvm/unittests/IR/IRBuilderTest.cpp +++ b/llvm/unittests/IR/IRBuilderTest.cpp @@ -929,4 +929,11 @@ EXPECT_EQ(MN2, MF2->getRawElements()); EXPECT_TRUE(verifyModule(*M)); } + +TEST_F(IRBuilderTest, NoFolderNames) { + IRBuilder Builder(BB); + auto *Add = + Builder.CreateAdd(Builder.getInt32(1), Builder.getInt32(2), "add"); + EXPECT_EQ(Add->getName(), "add"); +} }