diff options
author | ed <ed@FreeBSD.org> | 2009-06-06 08:21:31 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2009-06-06 08:21:31 +0000 |
commit | 265c92560db8af7e64dc328cb612076086a62bd1 (patch) | |
tree | 06d57bb7679a2140aef96db7105a0bd5f16a4358 /lib/CodeGen/CGExprAgg.cpp | |
parent | 9e262ca77e924f9d84a864b031a1b931d03c5e38 (diff) | |
download | FreeBSD-src-265c92560db8af7e64dc328cb612076086a62bd1.zip FreeBSD-src-265c92560db8af7e64dc328cb612076086a62bd1.tar.gz |
Import clang, at r72995.
Diffstat (limited to 'lib/CodeGen/CGExprAgg.cpp')
-rw-r--r-- | lib/CodeGen/CGExprAgg.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp index 8d903d9..4268ae3 100644 --- a/lib/CodeGen/CGExprAgg.cpp +++ b/lib/CodeGen/CGExprAgg.cpp @@ -263,17 +263,21 @@ void AggExprEmitter::VisitConditionalOperator(const ConditionalOperator *E) { llvm::Value *Cond = CGF.EvaluateExprAsBool(E->getCond()); Builder.CreateCondBr(Cond, LHSBlock, RHSBlock); + CGF.PushConditionalTempDestruction(); CGF.EmitBlock(LHSBlock); // Handle the GNU extension for missing LHS. assert(E->getLHS() && "Must have LHS for aggregate value"); Visit(E->getLHS()); + CGF.PopConditionalTempDestruction(); CGF.EmitBranch(ContBlock); + CGF.PushConditionalTempDestruction(); CGF.EmitBlock(RHSBlock); Visit(E->getRHS()); + CGF.PopConditionalTempDestruction(); CGF.EmitBranch(ContBlock); CGF.EmitBlock(ContBlock); |