diff options
author | Jakub Jelinek <jakub@redhat.com> | 2013-12-20 10:05:04 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2013-12-20 10:05:04 +0100 |
commit | ac0ff9f273ff5d1e11a6ccd79b27f33d592eebd3 (patch) | |
tree | 1532e9443ebd8eec5317be98cd328850b93ce329 /gcc/sanitizer.def | |
parent | 634bdae96bb7ff880eeaaf35e6a91e38607a5783 (diff) | |
download | gcc-ac0ff9f273ff5d1e11a6ccd79b27f33d592eebd3.zip gcc-ac0ff9f273ff5d1e11a6ccd79b27f33d592eebd3.tar.gz gcc-ac0ff9f273ff5d1e11a6ccd79b27f33d592eebd3.tar.bz2 |
ubsan.c: Include tree-ssanames.h, asan.h and gimplify-me.h.
* ubsan.c: Include tree-ssanames.h, asan.h and gimplify-me.h.
(ubsan_type_descriptor): Handle BOOLEAN_TYPE and ENUMERAL_TYPE
like INTEGER_TYPE.
(instrument_bool_enum_load): New function.
(ubsan_pass): Call it.
(gate_ubsan): Also enable for SANITIZE_BOOL or SANITIZE_ENUM.
* asan.c (create_cond_insert_point): No longer static.
* asan.h (create_cond_insert_point): Declare.
* sanitizer.def (BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE): New
built-in.
* opts.c (common_handle_option): Handle -fsanitize=bool and
-fsanitize=enum.
* builtins.c (fold_builtin_memory_op): When sanitizing bool
and enum loads, don't use enum or bool types for memcpy folding.
* flag-types.h (SANITIZE_BOOL, SANITIZE_ENUM): New.
(SANITIZE_UNDEFINED): Or these in.
* c-c++-common/ubsan/load-bool-enum.c: New test.
From-SVN: r206143
Diffstat (limited to 'gcc/sanitizer.def')
-rw-r--r-- | gcc/sanitizer.def | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/sanitizer.def b/gcc/sanitizer.def index 9c94650..43f7467 100644 --- a/gcc/sanitizer.def +++ b/gcc/sanitizer.def @@ -331,3 +331,7 @@ DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW, "__ubsan_handle_negate_overflow", BT_FN_VOID_PTR_PTR, ATTR_COLD_NOTHROW_LEAF_LIST) +DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE, + "__ubsan_handle_load_invalid_value", + BT_FN_VOID_PTR_PTR, + ATTR_COLD_NOTHROW_LEAF_LIST) |