re PR sanitizer/60275 ([UBSAN] Add -f[no-]sanitize-recover/-fsanitize-undefined-trap-on-error to make UBSAN's runtime errors fatal) PR sanitizer/60275 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error): New options. * gcc.c (sanitize_spec_function): Don't return "" for "undefined" if flag_sanitize_undefined_trap_on_error. * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT, BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT, BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT, BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT, BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT, BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT, BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT, BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT, BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins. * ubsan.c (ubsan_instrument_unreachable): Return __builtin_trap () if flag_sanitize_undefined_trap_on_error. (ubsan_expand_null_ifn): Emit __builtin_trap () if flag_sanitize_undefined_trap_on_error and __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover. (ubsan_expand_null_ifn, ubsan_build_overflow_builtin, instrument_bool_enum_load): Emit __builtin_trap () if flag_sanitize_undefined_trap_on_error and __builtin_handle_*_abort () if !flag_sanitize_recover. * doc/invoke.texi (-fsanitize-recover, -fsanitize-undefined-trap-on-error): Document. c-family/ * c-ubsan.c (ubsan_instrument_return): Return __builtin_trap () if flag_sanitize_undefined_trap_on_error. (ubsan_instrument_division, ubsan_instrument_shift, ubsan_instrument_vla): Likewise. Use __ubsan_handle_*_abort () if !flag_sanitize_recover. testsuite/ * g++.dg/ubsan/return-2.C: Revert 2014-03-24 changes, add -fno-sanitize-recover to dg-options. * g++.dg/ubsan/cxx11-shift-1.C: Remove c++11 target restriction, add -std=c++11 to dg-options. * g++.dg/ubsan/cxx11-shift-2.C: Likewise. * g++.dg/ubsan/cxx1y-vla.C: Remove c++1y target restriction, add -std=c++1y to dg-options. * c-c++-common/ubsan/undefined-1.c: Revert 2014-03-24 changes, add -fno-sanitize-recover to dg-options. * c-c++-common/ubsan/overflow-sub-1.c: Likewise. * c-c++-common/ubsan/vla-4.c: Likewise. * c-c++-common/ubsan/pr59503.c: Likewise. * c-c++-common/ubsan/vla-3.c: Likewise. * c-c++-common/ubsan/save-expr-1.c: Likewise. * c-c++-common/ubsan/overflow-add-1.c: Likewise. * c-c++-common/ubsan/shift-3.c: Likewise. * c-c++-common/ubsan/overflow-1.c: Likewise. * c-c++-common/ubsan/overflow-negate-2.c: Likewise. * c-c++-common/ubsan/vla-2.c: Likewise. * c-c++-common/ubsan/overflow-mul-1.c: Likewise. * c-c++-common/ubsan/pr60613-1.c: Likewise. * c-c++-common/ubsan/shift-6.c: Likewise. * c-c++-common/ubsan/overflow-mul-3.c: Likewise. * c-c++-common/ubsan/overflow-add-3.c: New test. * c-c++-common/ubsan/overflow-add-4.c: New test. * c-c++-common/ubsan/div-by-zero-6.c: New test. * c-c++-common/ubsan/div-by-zero-7.c: New test. From-SVN: r209672
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| asan | Loading commit data... | |
| cilk-plus | Loading commit data... | |
| cpp | Loading commit data... | |
| dfp | Loading commit data... | |
| dwarf2 | Loading commit data... | |
| gomp | Loading commit data... | |
| guality | Loading commit data... | |
| simulate-thread | Loading commit data... | |
| tm | Loading commit data... | |
| torture | Loading commit data... | |
| tsan | Loading commit data... | |
| ubsan | Loading commit data... | |
| Wcast-qual-1.c | Loading commit data... | |
| Wconversion-real.c | Loading commit data... | |
| Wfloat-conversion.c | Loading commit data... | |
| Wint-to-pointer-cast-1.c | Loading commit data... | |
| Wint-to-pointer-cast-2.c | Loading commit data... | |
| Wint-to-pointer-cast-3.c | Loading commit data... | |
| Wpointer-arith-1.c | Loading commit data... | |
| Wsequence-point-1.c | Loading commit data... | |
| Wsizeof-pointer-memaccess1.c | Loading commit data... | |
| Wsizeof-pointer-memaccess2.c | Loading commit data... | |
| Wunused-local-typedefs.c | Loading commit data... | |
| Wunused-var-1.c | Loading commit data... | |
| Wunused-var-10.c | Loading commit data... | |
| Wunused-var-11.c | Loading commit data... | |
| Wunused-var-12.c | Loading commit data... | |
| Wunused-var-13.c | Loading commit data... | |
| Wunused-var-14.c | Loading commit data... | |
| Wunused-var-2.c | Loading commit data... | |
| Wunused-var-3.c | Loading commit data... | |
| Wunused-var-4.c | Loading commit data... | |
| Wunused-var-5.c | Loading commit data... | |
| Wunused-var-6.c | Loading commit data... | |
| Wunused-var-7.c | Loading commit data... | |
| Wunused-var-8.c | Loading commit data... | |
| Wunused-var-9.c | Loading commit data... | |
| Wvarargs-2.c | Loading commit data... | |
| Wvarargs.c | Loading commit data... | |
| abi-bf.c | Loading commit data... | |
| array-lit.c | Loading commit data... | |
| asmgoto-1.c | Loading commit data... | |
| asmgoto-2.c | Loading commit data... | |
| asmgoto-3.c | Loading commit data... | |
| asmgoto-4.c | Loading commit data... | |
| attr-used-2.c | Loading commit data... | |
| attr-used.c | Loading commit data... | |
| attributes-1.c | Loading commit data... | |
| builtin-offsetof.c | Loading commit data... | |
| convert-vec-1.c | Loading commit data... | |
| cxxbitfields-3.c | Loading commit data... | |
| cxxbitfields-6.c | Loading commit data... | |
| fmax-errors.c | Loading commit data... | |
| fold-bitand-4.c | Loading commit data... | |
| fold-divmul-1.c | Loading commit data... | |
| init-vec-1.c | Loading commit data... | |
| int128-1.c | Loading commit data... | |
| int128-2.c | Loading commit data... | |
| int128-types-1.c | Loading commit data... | |
| opaque-vector.c | Loading commit data... | |
| pr20000.c | Loading commit data... | |
| pr20318.c | Loading commit data... | |
| pr28656.c | Loading commit data... | |
| pr33193.c | Loading commit data... | |
| pr33763.c | Loading commit data... | |
| pr36282-1.c | Loading commit data... | |
| pr36282-2.c | Loading commit data... | |
| pr36282-3.c | Loading commit data... | |
| pr36282-4.c | Loading commit data... | |
| pr36513-2.c | Loading commit data... | |
| pr36513.c | Loading commit data... | |
| pr37743.c | Loading commit data... | |
| pr41779.c | Loading commit data... | |
| pr41935.c | Loading commit data... | |
| pr42674.c | Loading commit data... | |
| pr43690.c | Loading commit data... | |
| pr43772.c | Loading commit data... | |
| pr43942.c | Loading commit data... | |
| pr44832.c | Loading commit data... | |
| pr46562-2.c | Loading commit data... | |
| pr46562.c | Loading commit data... | |
| pr48418.c | Loading commit data... | |
| pr51294.c | Loading commit data... | |
| pr51712.c | Loading commit data... | |
| pr51768.c | Loading commit data... | |
| pr52177.c | Loading commit data... | |
| pr52181.c | Loading commit data... | |
| pr53633.c | Loading commit data... | |
| pr54486.c | Loading commit data... | |
| pr54988.c | Loading commit data... | |
| pr55619.c | Loading commit data... | |
| pr55771.c | Loading commit data... | |
| pr56302.c | Loading commit data... | |
| pr56566.c | Loading commit data... | |
| pr56607.c | Loading commit data... | |
| pr57793.c | Loading commit data... | |
| pr58346-1.c | Loading commit data... | |
| pr58346-2.c | Loading commit data... | |
| pr58346-3.c | Loading commit data... | |
| pr59032.c | Loading commit data... | |
| pr59037.c | Loading commit data... | |
| pr59223.c | Loading commit data... | |
| pr59280.c | Loading commit data... | |
| pr60101.c | Loading commit data... | |
| pr60689.c | Loading commit data... | |
| raw-string-1.c | Loading commit data... | |
| raw-string-10.c | Loading commit data... | |
| raw-string-11.c | Loading commit data... | |
| raw-string-12.c | Loading commit data... | |
| raw-string-13.c | Loading commit data... | |
| raw-string-14.c | Loading commit data... | |
| raw-string-15.c | Loading commit data... | |
| raw-string-16.c | Loading commit data... | |
| raw-string-17.c | Loading commit data... | |
| raw-string-18.c | Loading commit data... | |
| raw-string-19.c | Loading commit data... | |
| raw-string-2.c | Loading commit data... | |
| raw-string-3.c | Loading commit data... | |
| raw-string-4.c | Loading commit data... | |
| raw-string-5.c | Loading commit data... | |
| raw-string-6.c | Loading commit data... | |
| raw-string-7.c | Loading commit data... | |
| raw-string-8.c | Loading commit data... | |
| raw-string-9.c | Loading commit data... | |
| restrict-1.c | Loading commit data... | |
| restrict-2.c | Loading commit data... | |
| restrict-4.c | Loading commit data... | |
| rotate-1.c | Loading commit data... | |
| rotate-1a.c | Loading commit data... | |
| rotate-2.c | Loading commit data... | |
| rotate-2a.c | Loading commit data... | |
| rotate-3.c | Loading commit data... | |
| rotate-3a.c | Loading commit data... | |
| rotate-4.c | Loading commit data... | |
| rotate-4a.c | Loading commit data... | |
| rotate-5.c | Loading commit data... | |
| scal-to-vec1.c | Loading commit data... | |
| scal-to-vec2.c | Loading commit data... | |
| transparent-union-1.c | Loading commit data... | |
| uninit-17.c | Loading commit data... | |
| uninit-D-O0.c | Loading commit data... | |
| uninit-D.c | Loading commit data... | |
| uninit-E-O0.c | Loading commit data... | |
| uninit-E.c | Loading commit data... | |
| uninit-F-O0.c | Loading commit data... | |
| uninit-F.c | Loading commit data... | |
| uninit-G-O0.c | Loading commit data... | |
| uninit-G.c | Loading commit data... | |
| uninit-pr51010.c | Loading commit data... | |
| vector-1.c | Loading commit data... | |
| vector-2.c | Loading commit data... | |
| vector-3.c | Loading commit data... | |
| vector-4.c | Loading commit data... | |
| vector-compare-1.c | Loading commit data... | |
| vector-compare-2.c | Loading commit data... | |
| vector-compare-3.c | Loading commit data... | |
| vector-init-1.c | Loading commit data... | |
| vector-init-2.c | Loading commit data... | |
| vector-scalar-2.c | Loading commit data... | |
| vector-scalar.c | Loading commit data... | |
| vector-shift.c | Loading commit data... | |
| vector-shift1.c | Loading commit data... | |
| vector-shift3.c | Loading commit data... | |
| vector-subscript-1.c | Loading commit data... | |
| vector-subscript-2.c | Loading commit data... | |
| vector-subscript-3.c | Loading commit data... | |
| vla-1.c | Loading commit data... | |
| warn-ommitted-condop.c | Loading commit data... |