[llvm-commits] CVS: llvm-gcc/gcc/llvm-expand.c

Chris Lattner lattner at cs.uiuc.edu
Mon Feb 14 23:00:05 PST 2005



Changes in directory llvm-gcc/gcc:

llvm-expand.c updated: 1.81 -> 1.82
---
Log message:

Make sure to put an exception scope around the RHS of a short circuit logical
operation like &&.  This fixes SingleSource/Regression/C++/short_circuit_dtor.cpp
PR513: http://llvm.cs.uiuc.edu/PR513 , and finally allows QT4.0's qmake program to print its help message. :)


---
Diffs of the changes:  (+7 -0)

 llvm-expand.c |    7 +++++++
 1 files changed, 7 insertions(+)


Index: llvm-gcc/gcc/llvm-expand.c
diff -u llvm-gcc/gcc/llvm-expand.c:1.81 llvm-gcc/gcc/llvm-expand.c:1.82
--- llvm-gcc/gcc/llvm-expand.c:1.81	Mon Feb 14 23:26:41 2005
+++ llvm-gcc/gcc/llvm-expand.c	Tue Feb 15 00:59:52 2005
@@ -3312,8 +3312,15 @@
               
   llvm_emit_label(Fn, TestBlock);
 
+  /* Start a region for the RHS expression destructors */
+  llvm_expand_start_bindings(Fn);
+
   SecondOp = llvm_expand_expr(Fn, TREE_OPERAND(exp, 1), 0);
   SecondOp = cast_if_type_not_equal(Fn, SecondOp, BoolTy);
+
+  /* Stop the scope. */
+  llvm_expand_end_bindings(Fn, NULL_TREE);
+
   TestBlock = llvm_ilist_back(llvm_basicblock, Fn->BasicBlocks);
   
   llvm_emit_label(Fn, DoneBlock);






More information about the llvm-commits mailing list