diff options
author | Richard Biener <rguenther@suse.de> | 2021-07-12 10:26:25 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-07-12 12:18:37 +0200 |
commit | 123d0a597beb6d9865f808bf15b0d67f2a8fd5b2 (patch) | |
tree | b9eab77ef25cd612baffefa39709230e355a4fd5 /gcc/tree-eh.c | |
parent | 0192c3eedbc7e6fe703abd8b321f400ddb02adf7 (diff) | |
download | gcc-123d0a597beb6d9865f808bf15b0d67f2a8fd5b2.zip gcc-123d0a597beb6d9865f808bf15b0d67f2a8fd5b2.tar.gz gcc-123d0a597beb6d9865f808bf15b0d67f2a8fd5b2.tar.bz2 |
middle-end/101423 - internal calls do not trap
This adjusts gimple_could_trap_p to not consider internal function
calls to trap compared to indirect calls or calls to weak functions.
2021-07-12 Richard Biener <rguenther@suse.de>
PR middle-end/101423
* gimple.c (gimple_could_trap_p_1): Internal function calls
do not trap.
* tree-eh.c (tree_could_trap_p): Likewise.
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r-- | gcc/tree-eh.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 601285c..57ce8f0 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -2723,8 +2723,11 @@ tree_could_trap_p (tree expr) return TREE_THIS_VOLATILE (expr); case CALL_EXPR: + /* Internal function calls do not trap. */ + if (CALL_EXPR_FN (expr) == NULL_TREE) + return false; t = get_callee_fndecl (expr); - /* Assume that calls to weak functions may trap. */ + /* Assume that indirect and calls to weak functions may trap. */ if (!t || !DECL_P (t)) return true; if (DECL_WEAK (t)) |