diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-14 18:55:22 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-14 18:55:22 +0000 |
commit | 1d3f675f9a122578d8cabcd04bff9c521956450e (patch) | |
tree | 35fed41760bd91f12cf6b65723674cbbc0fcc28b /gcc/gimple.c | |
parent | 73bb17ceddeaafacaf347e7570eb24dfaeed452c (diff) | |
download | gcc-1d3f675f9a122578d8cabcd04bff9c521956450e.tar.gz |
PR c++/44127
gcc:
* gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
(gimple_call_set_nothrow): New.
* gimple.c (gimple_build_call_from_tree): Call it.
(gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
gcc/cp:
* except.c (dtor_nothrow): Return nonzero for type with
trivial destructor.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159408 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimple.c')
-rw-r--r-- | gcc/gimple.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/gimple.c b/gcc/gimple.c index dd691a810d2..ace53b92f87 100644 --- a/gcc/gimple.c +++ b/gcc/gimple.c @@ -297,6 +297,7 @@ gimple_build_call_from_tree (tree t) gimple_call_set_return_slot_opt (call, CALL_EXPR_RETURN_SLOT_OPT (t)); gimple_call_set_from_thunk (call, CALL_FROM_THUNK_P (t)); gimple_call_set_va_arg_pack (call, CALL_EXPR_VA_ARG_PACK (t)); + gimple_call_set_nothrow (call, TREE_NOTHROW (t)); gimple_set_no_warning (call, TREE_NO_WARNING (t)); return call; @@ -1753,6 +1754,9 @@ gimple_call_flags (const_gimple stmt) flags = 0; } + if (stmt->gsbase.subcode & GF_CALL_NOTHROW) + flags |= ECF_NOTHROW; + return flags; } |