diff options
| author | Douglas Gregor <dgregor@apple.com> | 2009-12-24 18:16:21 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2009-12-24 18:16:21 +0000 |
| commit | 5c13090bd46c61af3d8caee342eb9143ae609297 (patch) | |
| tree | 5329a10093f56153b40bb7b82b4a765d3f5c693d | |
| parent | 54ed39072730c39733298ddc77a4b81ba03e6e0a (diff) | |
| download | bcm5719-llvm-5c13090bd46c61af3d8caee342eb9143ae609297.tar.gz bcm5719-llvm-5c13090bd46c61af3d8caee342eb9143ae609297.zip | |
Fix double-destruction assertion to account for temporaries in conditionals
llvm-svn: 92134
| -rw-r--r-- | clang/lib/CodeGen/CGTemporaries.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGTemporaries.cpp b/clang/lib/CodeGen/CGTemporaries.cpp index bfce1b0f747..bed843966e6 100644 --- a/clang/lib/CodeGen/CGTemporaries.cpp +++ b/clang/lib/CodeGen/CGTemporaries.cpp @@ -18,7 +18,8 @@ using namespace CodeGen; void CodeGenFunction::PushCXXTemporary(const CXXTemporary *Temporary, llvm::Value *Ptr) { assert((LiveTemporaries.empty() || - LiveTemporaries.back().ThisPtr != Ptr) && + LiveTemporaries.back().ThisPtr != Ptr || + ConditionalBranchLevel) && "Pushed the same temporary twice; AST is likely wrong"); llvm::BasicBlock *DtorBlock = createBasicBlock("temp.dtor"); |

