[llvm-commits] [llvm-gcc-4.2] r46028 - /llvm-gcc-4.2/trunk/gcc/tree-eh.c
Dale Johannesen
dalej at apple.com
Tue Jan 15 15:20:18 PST 2008
Author: johannes
Date: Tue Jan 15 17:20:17 2008
New Revision: 46028
URL: http://llvm.org/viewvc/llvm-project?rev=46028&view=rev
Log:
Use 64 bits for "save_filt" temps on 64-bit targets.
LLVM uses 64 bits for these and they need to match.
Modified:
llvm-gcc-4.2/trunk/gcc/tree-eh.c
Modified: llvm-gcc-4.2/trunk/gcc/tree-eh.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/tree-eh.c?rev=46028&r1=46027&r2=46028&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/tree-eh.c (original)
+++ llvm-gcc-4.2/trunk/gcc/tree-eh.c Tue Jan 15 17:20:17 2008
@@ -838,14 +838,22 @@
tree save_eptr, save_filt;
save_eptr = create_tmp_var (ptr_type_node, "save_eptr");
+#if ENABLE_LLVM
+ /* LLVM exceptions use 64 bits for these on 64-bit targets. */
+ save_filt = create_tmp_var (long_integer_type_node, "save_filt");
+#else
save_filt = create_tmp_var (integer_type_node, "save_filt");
-
+#endif
i = tsi_start (finally);
x = build0 (EXC_PTR_EXPR, ptr_type_node);
x = build2 (MODIFY_EXPR, void_type_node, save_eptr, x);
tsi_link_before (&i, x, TSI_CONTINUE_LINKING);
+#if ENABLE_LLVM
+ x = build0 (FILTER_EXPR, long_integer_type_node);
+#else
x = build0 (FILTER_EXPR, integer_type_node);
+#endif
x = build2 (MODIFY_EXPR, void_type_node, save_filt, x);
tsi_link_before (&i, x, TSI_CONTINUE_LINKING);
@@ -854,7 +862,11 @@
x = build2 (MODIFY_EXPR, void_type_node, x, save_eptr);
tsi_link_after (&i, x, TSI_CONTINUE_LINKING);
+#if ENABLE_LLVM
+ x = build0 (FILTER_EXPR, long_integer_type_node);
+#else
x = build0 (FILTER_EXPR, integer_type_node);
+#endif
x = build2 (MODIFY_EXPR, void_type_node, x, save_filt);
tsi_link_after (&i, x, TSI_CONTINUE_LINKING);
More information about the llvm-commits
mailing list