gcc/
* gimplify.c (gimplify_function_tree): Fix building calls
to __builtin_return_address.
gcc/testsuite/
* gcc.dg/
20001117-1.c: Abort on NULL call_sites.
Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com>
From-SVN: r170738
+2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
+
+ * gimplify.c (gimplify_function_tree): Fix building calls
+ to __builtin_return_address.
+
2011-03-07 Alan Modra <amodra@gmail.com>
* config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
gimple call;
x = implicit_built_in_decls[BUILT_IN_RETURN_ADDRESS];
- call = gimple_build_call (x, 0);
+ call = gimple_build_call (x, 1, integer_zero_node);
tmp_var = create_tmp_var (ptr_type_node, "return_addr");
gimple_call_set_lhs (call, tmp_var);
gimplify_seq_add_stmt (&cleanup, call);
tf = gimple_build_try (seq, cleanup, GIMPLE_TRY_FINALLY);
x = implicit_built_in_decls[BUILT_IN_RETURN_ADDRESS];
- call = gimple_build_call (x, 0);
+ call = gimple_build_call (x, 1, integer_zero_node);
tmp_var = create_tmp_var (ptr_type_node, "return_addr");
gimple_call_set_lhs (call, tmp_var);
gimplify_seq_add_stmt (&body, call);
+2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
+ Nathan Froyd <froydnj@codesourcery.com>
+
+ * gcc.dg/20001117-1.c: Abort on NULL call_sites.
+
2011-03-06 Mark Mitchell <mark@codesourcery.com>
* README.QMTEST: Remove.
exit (0);
}
-void __attribute__((no_instrument_function)) __cyg_profile_func_enter(void *this_fn, void *call_site) { }
-void __attribute__((no_instrument_function)) __cyg_profile_func_exit(void *this_fn, void *call_site) { }
+/* Abort on non-NULL CALL_SITE to ensure that __builtin_return_address
+ was expanded properly. */
+void __attribute__((no_instrument_function))
+__cyg_profile_func_enter(void *this_fn, void *call_site)
+{
+ if (call_site == (void *)0)
+ abort ();
+}
+
+void __attribute__((no_instrument_function))
+__cyg_profile_func_exit(void *this_fn, void *call_site)
+{
+ if (call_site == (void *)0)
+ abort ();
+}
+