Handle another case that Frits suggested.
authorAnders Carlsson <andersca@mac.com>
Tue, 22 Mar 2011 03:21:01 +0000 (03:21 +0000)
committerAnders Carlsson <andersca@mac.com>
Tue, 22 Mar 2011 03:21:01 +0000 (03:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128068 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/GlobalOpt.cpp

index 7f69aeb0d028d5e4fac3d7e2ed19971981dd9b5b..0087362e339d42fbd350413f10962dbfacf2ec23 100644 (file)
@@ -2746,11 +2746,13 @@ static bool cxxDtorIsEmpty(const Function &Fn,
       if (!CalledFn)
         return false;
 
+      SmallPtrSet<const Function *, 8> NewCalledFunctions(CalledFunctions);
+
       // Don't treat recursive functions as empty.
-      if (!CalledFunctions.insert(CalledFn))
+      if (!NewCalledFunctions.insert(CalledFn))
         return false;
 
-      if (!cxxDtorIsEmpty(*CalledFn, CalledFunctions))
+      if (!cxxDtorIsEmpty(*CalledFn, NewCalledFunctions))
         return false;
     } else if (isa<ReturnInst>(*I))
       return true;