On Tue, Jun 21, 2022 at 11:59:56PM -0400, Jason Merrill wrote:
>       PR c++/104642
> 
> gcc/ChangeLog:
> 
>       * common.opt: Add -funreachable-traps.
>       * doc/invoke.texi (-funreachable-traps): Document it.
>       * opts.cc (finish_options): Enable at -O0 or -Og.
>       * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
>       (builtin_decl_unreachable, build_builtin_unreachable): New.
>       * tree.h: Declare them.
>       * ubsan.cc (sanitize_unreachable_fn): Factor out.
>       (ubsan_instrument_unreachable): Use
>       gimple_build_builtin_unreachable.
>       * ubsan.h (sanitize_unreachable_fn): Declare.
>       * gimple.cc (gimple_build_builtin_unreachable): New.
>       * gimple.h: Declare it.
>       * builtins.cc (expand_builtin_unreachable): Add assert.
>       (fold_builtin_0): Call build_builtin_unreachable.
>       * sanopt.cc: Don't run for just SANITIZE_RETURN
>       or SANITIZE_UNREACHABLE when trapping.
>       * cgraphunit.cc (walk_polymorphic_call_targets): Use new
>       unreachable functions.
>       * gimple-fold.cc (gimple_fold_call)
>       (gimple_get_virt_method_for_vtable)
>       * ipa-fnsummary.cc (redirect_to_unreachable)
>       * ipa-prop.cc (ipa_make_edge_direct_to_target)
>       (ipa_impossible_devirt_target)
>       * ipa.cc (walk_polymorphic_call_targets)
>       * tree-cfg.cc (pass_warn_function_return::execute)
>       (execute_fixup_cfg)
>       * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
>       (unloop_loops)
>       * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
>       Likewise.
> 
> gcc/cp/ChangeLog:
> 
>       * constexpr.cc (cxx_eval_builtin_function_call): Handle
>       unreachable/trap earlier.
>       * cp-gimplify.cc (cp_maybe_instrument_return): Use
>       build_builtin_unreachable.
> 
> gcc/testsuite/ChangeLog:
> 
>       * g++.dg/ubsan/return-8a.C: New test.
>       * g++.dg/ubsan/return-8b.C: New test.
>       * g++.dg/ubsan/return-8d.C: New test.
>       * g++.dg/ubsan/return-8e.C: New test.

LGTM, thanks.

        Jakub

Reply via email to