aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.h
diff options
context:
space:
mode:
authorStuart Hastings <stuart@apple.com>2002-08-25 05:21:11 +0000
committerStan Shebs <shebs@gcc.gnu.org>2002-08-25 05:21:11 +0000
commitb6128b8c319487d4ecb240a211c0af9f6a4c2659 (patch)
tree3380fca11b3c1b6f649fb9a54c3af4eb23ad8090 /gcc/function.h
parent13d3f0b659c7db21e006e8d2894c93707a95583d (diff)
downloadgcc-b6128b8c319487d4ecb240a211c0af9f6a4c2659.zip
gcc-b6128b8c319487d4ecb240a211c0af9f6a4c2659.tar.gz
gcc-b6128b8c319487d4ecb240a211c0af9f6a4c2659.tar.bz2
function.h (struct function): Add flag all_throwers_are_sibcalls.
2002-08-24 Stuart Hastings <stuart@apple.com> * function.h (struct function): Add flag all_throwers_are_sibcalls. * except.c (set_nothrow_function_flags): Replaces nothrow_function_p. Set new flag. * except.h (set_nothrow_function_flags): Replaces nothrow_function_p. * dwarf2out.c (struct dw_fde_struct): Add flag all_throwers_are_sibcalls. (output_call_frame_info): Test it. (dwarf2out_begin_prologue) Propagate it from cfun to dw_fde_struct. * toplev.c (rest_of_compilation): Update calls to nothrow_function_p. From-SVN: r56561
Diffstat (limited to 'gcc/function.h')
-rw-r--r--gcc/function.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/function.h b/gcc/function.h
index 0ee31d1..ff96b9c 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -437,6 +437,13 @@ struct function GTY(())
we should try to cut corners where we can. */
unsigned int is_thunk : 1;
+ /* This bit is used by the exception handling logic. It is set if all
+ calls (if any) are sibling calls. Such functions do not have to
+ have EH tables generated, as they cannot throw. A call to such a
+ function, however, should be treated as throwing if any of its callees
+ can throw. */
+ unsigned int all_throwers_are_sibcalls : 1;
+
/* Nonzero if instrumentation calls for function entry and exit should be
generated. */
unsigned int instrument_entry_exit : 1;