27 HOST_WIDE_INT *,
tree *,
int);
80#define ASAN_SHADOW_SHIFT 3
81#define ASAN_SHADOW_GRANULARITY (1UL << ASAN_SHADOW_SHIFT)
85#define ASAN_RED_ZONE_SIZE 32
90#define ASAN_MIN_RED_ZONE_SIZE 16
98#define ASAN_STACK_MAGIC_LEFT 0xf1
99#define ASAN_STACK_MAGIC_MIDDLE 0xf2
100#define ASAN_STACK_MAGIC_RIGHT 0xf3
101#define ASAN_STACK_MAGIC_USE_AFTER_RET 0xf5
102#define ASAN_STACK_MAGIC_USE_AFTER_SCOPE 0xf8
104#define ASAN_STACK_FRAME_MAGIC 0x41b58ab3
105#define ASAN_STACK_RETIRED_MAGIC 0x45e0360e
107#define ASAN_USE_AFTER_SCOPE_ATTRIBUTE "use after scope memory"
114#define HWASAN_TAG_SIZE targetm.memtag.tag_bitsize ()
122#define HWASAN_TAG_GRANULE_SIZE targetm.memtag.granule_size ()
127#define HWASAN_STACK_BACKGROUND gen_int_mode (0, QImode)
139#define IFN_ASAN_MARK_FLAGS DEF(POISON), DEF(UNPOISON)
143#define DEF(X) ASAN_MARK_##X
164inline unsigned HOST_WIDE_INT
171 else if (size <= 128)
173 else if (size <= 512)
175 else if (size <= 4096)
202 return fcode == BUILT_IN_MEMCMP
203 || fcode == BUILT_IN_MEMCPY
204 || fcode == BUILT_IN_MEMMOVE
205 || fcode == BUILT_IN_MEMSET;
207 return fcode == BUILT_IN_INDEX
208 || fcode == BUILT_IN_MEMCHR
209 || fcode == BUILT_IN_MEMCMP
210 || fcode == BUILT_IN_MEMCPY
211 || fcode == BUILT_IN_MEMMOVE
212 || fcode == BUILT_IN_MEMSET
213 || fcode == BUILT_IN_STRCASECMP
214 || fcode == BUILT_IN_STRCAT
215 || fcode == BUILT_IN_STRCHR
216 || fcode == BUILT_IN_STRCMP
217 || fcode == BUILT_IN_STRCPY
218 || fcode == BUILT_IN_STRDUP
219 || fcode == BUILT_IN_STRLEN
220 || fcode == BUILT_IN_STRNCASECMP
221 || fcode == BUILT_IN_STRNCAT
222 || fcode == BUILT_IN_STRNCMP
223 || fcode == BUILT_IN_STRCSPN
224 || fcode == BUILT_IN_STRPBRK
225 || fcode == BUILT_IN_STRSPN
226 || fcode == BUILT_IN_STRSTR
227 || fcode == BUILT_IN_STRNCPY;
235 return (flag_sanitize_address_use_after_scope
257 if (result_flags == 0)
275 return (flag_sanitize_coverage
hash_set< tree > * asan_used_labels
Definition asan.cc:260
bool hwasan_sanitize_p()
Definition asan.cc:1866
alias_set_type asan_shadow_set
Definition asan.cc:474
bool asan_sanitize_stack_p(void)
Definition asan.cc:364
bool hwassist_sanitize_stack_p()
Definition asan.cc:1978
hash_set< tree > * asan_handled_variables
Definition asan.cc:258
void asan_finish_file(void)
Definition asan.cc:3796
void hwasan_record_frame_init()
Definition asan.cc:4696
bool sanitize_flags_p(sanitize_code_type flag, const_tree fn=current_function_decl)
Definition asan.h:253
rtx_insn * hwasan_emit_untag_frame(rtx, rtx)
Definition asan.cc:4820
rtx_insn * asan_emit_allocas_unpoison(rtx, rtx, rtx_insn *)
Definition asan.cc:2388
void hwasan_maybe_emit_frame_base_init(void)
Definition asan.cc:4594
bool gate_hwasan(void)
Definition asan.cc:5036
bool hwasan_expand_mark_ifn(gimple_stmt_iterator *)
Definition asan.cc:5030
rtx_insn * asan_emit_stack_protection(rtx, rtx, unsigned int, HOST_WIDE_INT *, tree *, int)
Definition asan.cc:1997
bool asan_intercepted_p(enum built_in_function fcode)
Definition asan.h:197
bool memtag_sanitize_stack_p(void)
Definition asan.cc:1949
bool asan_protect_stack_decl(tree decl)
Definition asan.h:242
bool asan_expand_check_ifn(gimple_stmt_iterator *, bool)
Definition asan.cc:4053
gimple_stmt_iterator create_cond_insert_point(gimple_stmt_iterator *, bool, bool, bool, basic_block *, basic_block *)
Definition asan.cc:2606
tree asan_dynamic_init_call(bool)
Definition asan.cc:3328
bool sanitize_coverage_p(const_tree fn=current_function_decl)
Definition asan.h:273
rtx asan_memfn_rtl(tree)
Definition asan.cc:398
#define IFN_ASAN_MARK_FLAGS
Definition asan.h:139
bool hwasan_sanitize_p(void)
Definition asan.cc:1866
rtx hwasan_truncate_to_tag_size(rtx, rtx)
Definition asan.cc:4891
bool asan_sanitize_use_after_scope(void)
Definition asan.h:233
#define ASAN_RED_ZONE_SIZE
Definition asan.h:85
bool gate_memtag(void)
Definition asan.cc:5042
bool hwassist_sanitize_stack_p(void)
Definition asan.cc:1978
bool asan_protect_global(tree, bool ignore_decl_rtl_set_p=false)
Definition asan.cc:2429
bool asan_sanitize_allocas_p(void)
Definition asan.cc:370
void set_sanitized_sections(const char *)
Definition asan.cc:338
asan_mark_flags
Definition asan.h:142
bool stack_vars_base_reg_p(rtx)
Definition asan.cc:4576
unsigned HOST_WIDE_INT asan_var_and_redzone_size(unsigned HOST_WIDE_INT size)
Definition asan.h:165
void hwasan_finish_file(void)
Definition asan.cc:4868
bool asan_expand_mark_ifn(gimple_stmt_iterator *)
Definition asan.cc:3939
bool asan_expand_poison_ifn(gimple_stmt_iterator *, bool *, hash_map< tree, tree > &)
Definition asan.cc:4289
void hwasan_increment_frame_tag()
Definition asan.cc:4648
void asan_function_start(void)
Definition asan.cc:1559
void asan_maybe_insert_dynamic_shadow_at_function_entry(function *)
Definition asan.cc:513
bool set_asan_shadow_offset(const char *)
Definition asan.cc:317
bool memtag_sanitize_allocas_p(void)
Definition asan.cc:1956
asan_check_flags
Definition asan.h:131
@ ASAN_CHECK_NON_ZERO_LEN
Definition asan.h:134
@ ASAN_CHECK_LAST
Definition asan.h:135
@ ASAN_CHECK_SCALAR_ACCESS
Definition asan.h:133
@ ASAN_CHECK_STORE
Definition asan.h:132
bool asan_mark_p(gimple *stmt, enum asan_mark_flags flag)
Definition asan.cc:357
bool hwasan_expand_check_ifn(gimple_stmt_iterator *, bool)
Definition asan.cc:4944
rtx hwasan_get_frame_extent()
Definition asan.cc:4637
rtx hwasan_frame_base()
Definition asan.cc:4555
bool asan_shadow_offset_set_p()
Definition asan.cc:469
bool asan_sanitize_stack_p(void)
Definition asan.cc:364
void initialize_sanitizer_builtins(void)
Definition asan.cc:3576
bool memtag_sanitize_p(void)
Definition asan.cc:1942
bool hwasan_sanitize_allocas_p(void)
Definition asan.cc:1880
bool hwassist_sanitize_p(void)
Definition asan.cc:1971
void hwasan_record_stack_var(rtx, rtx, poly_int64, poly_int64)
Definition asan.cc:4617
uint8_t hwasan_current_frame_tag()
Definition asan.cc:4543
unsigned int asan_red_zone_size(unsigned int size)
Definition asan.h:155
bool hwasan_sanitize_stack_p(void)
Definition asan.cc:1873
void hwasan_emit_prologue()
Definition asan.cc:4736
tree lookup_attribute(const char *attr_name, tree list)
Definition attribs.h:223
struct basic_block_def * basic_block
Definition coretypes.h:372
struct rtx_def * rtx
Definition coretypes.h:57
const union tree_node * const_tree
Definition coretypes.h:98
union tree_node * tree
Definition coretypes.h:97
int alias_set_type
Definition coretypes.h:366
uint64_t sanitize_code_type
Definition flag-types.h:359
built_in_function
Definition genmatch.cc:1009
poly_int< NUM_POLY_INT_COEFFS, HOST_WIDE_INT > poly_int64
Definition poly-int-types.h:24
Definition genautomata.cc:499
Definition function.h:249
Definition gimple-iterator.h:26
tree current_function_decl
Definition toplev.cc:129
unsigned HOST_WIDE_INT tree_to_uhwi(const_tree t)
Definition tree.cc:6676
#define TREE_VALUE(NODE)
Definition tree.h:1241
#define DECL_ATTRIBUTES(NODE)
Definition tree.h:2894
#define DECL_ARTIFICIAL(NODE)
Definition tree.h:3020
#define TREE_ADDRESSABLE(NODE)
Definition tree.h:745
#define NULL_TREE
Definition tree.h:318
#define DECL_P(NODE)
Definition tree.h:232