diff options
author | Anders Carlsson <andersca@mac.com> | 2011-03-22 03:21:01 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2011-03-22 03:21:01 +0000 |
commit | 1cc8073bb36cd8f7bbd771ce3b07b5caad88db9d (patch) | |
tree | 17b2a6e66a43b90cc2e7a355c60c8efd481fa57f /llvm/lib | |
parent | 7bf595348ea08d911dd2da449c484cee8f31860d (diff) | |
download | bcm5719-llvm-1cc8073bb36cd8f7bbd771ce3b07b5caad88db9d.tar.gz bcm5719-llvm-1cc8073bb36cd8f7bbd771ce3b07b5caad88db9d.zip |
Handle another case that Frits suggested.
llvm-svn: 128068
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Transforms/IPO/GlobalOpt.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/llvm/lib/Transforms/IPO/GlobalOpt.cpp index 7f69aeb0d02..0087362e339 100644 --- a/llvm/lib/Transforms/IPO/GlobalOpt.cpp +++ b/llvm/lib/Transforms/IPO/GlobalOpt.cpp @@ -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; |