https://github.com/timmyhoa created https://github.com/llvm/llvm-project/pull/90165
Closes #88917 Do I really know what is going on? Nope. Do I know what the bug is? Enough to fix it (hopefully) :) I'm just a beginner so sorry for any obvious mistake. >From 99a85014b6dd2193afcaff1cb92b92a52bb92654 Mon Sep 17 00:00:00 2001 From: timmyhoa <timmyho...@gmail.com> Date: Fri, 26 Apr 2024 01:12:20 -0400 Subject: [PATCH 1/2] fixed delete in for loop --- clang/lib/CodeGen/CodeGenModule.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index d085e735ecb443..cd50f06b4a976a 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -5706,6 +5706,7 @@ static void replaceUsesOfNonProtoConstant(llvm::Constant *old, llvm::Type *newRetTy = newFn->getReturnType(); SmallVector<llvm::Value*, 4> newArgs; + SmallVector<llvm::CallBase* > toBeRemoved; for (llvm::Value::use_iterator ui = old->use_begin(), ue = old->use_end(); ui != ue; ) { @@ -5792,7 +5793,10 @@ static void replaceUsesOfNonProtoConstant(llvm::Constant *old, if (callSite->getDebugLoc()) newCall->setDebugLoc(callSite->getDebugLoc()); - callSite->eraseFromParent(); + toBeRemoved.push_back(callSite); + } + for (llvm::CallBase *callSite : toBeRemoved) { + callSite->eraseFromParent(); } } >From 33d1a75b1c0b130b612a9dd478609e86315ddf5c Mon Sep 17 00:00:00 2001 From: timmyhoa <timmyho...@gmail.com> Date: Fri, 26 Apr 2024 01:16:08 -0400 Subject: [PATCH 2/2] formatted --- clang/lib/CodeGen/CodeGenModule.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index cd50f06b4a976a..7e79b6ce350beb 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -5706,7 +5706,7 @@ static void replaceUsesOfNonProtoConstant(llvm::Constant *old, llvm::Type *newRetTy = newFn->getReturnType(); SmallVector<llvm::Value*, 4> newArgs; - SmallVector<llvm::CallBase* > toBeRemoved; + SmallVector<llvm::CallBase *> toBeRemoved; for (llvm::Value::use_iterator ui = old->use_begin(), ue = old->use_end(); ui != ue; ) { @@ -5796,7 +5796,7 @@ static void replaceUsesOfNonProtoConstant(llvm::Constant *old, toBeRemoved.push_back(callSite); } for (llvm::CallBase *callSite : toBeRemoved) { - callSite->eraseFromParent(); + callSite->eraseFromParent(); } } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits