GCC Middle and Back End API Reference
ubsan.h
Go to the documentation of this file.
1/* UndefinedBehaviorSanitizer, undefined behavior detector.
2 Copyright (C) 2013-2024 Free Software Foundation, Inc.
3 Contributed by Marek Polacek <polacek@redhat.com>
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 3, or (at your option) any later
10version.
11
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING3. If not see
19<http://www.gnu.org/licenses/>. */
20
21#ifndef GCC_UBSAN_H
22#define GCC_UBSAN_H
23
24/* The various kinds of NULL pointer checks. */
37
38/* This controls how ubsan prints types. Used in ubsan_type_descriptor. */
45
46/* This controls ubsan_encode_value behavior. */
52
59extern tree ubsan_create_data (const char *, int, const location_t *, ...);
64extern bool is_ubsan_builtin_p (tree);
66 tree, tree *);
67extern tree ubsan_instrument_float_cast (location_t, tree, tree);
69extern tree sanitize_unreachable_fn (tree *data, location_t loc);
70
71#endif /* GCC_UBSAN_H */
Definition genoutput.cc:150
union tree_node * tree
Definition coretypes.h:97
tree_code
Definition genmatch.cc:992
Definition gimple-iterator.h:26
bool ubsan_expand_vptr_ifn(gimple_stmt_iterator *)
Definition ubsan.cc:1289
bool ubsan_expand_null_ifn(gimple_stmt_iterator *)
Definition ubsan.cc:833
tree ubsan_create_data(const char *, int, const location_t *,...)
Definition ubsan.cc:592
bool is_ubsan_builtin_p(tree)
Definition ubsan.cc:742
ubsan_print_style
Definition ubsan.h:39
@ UBSAN_PRINT_NORMAL
Definition ubsan.h:40
@ UBSAN_PRINT_POINTER
Definition ubsan.h:41
@ UBSAN_PRINT_ARRAY
Definition ubsan.h:42
@ UBSAN_PRINT_FORCE_INT
Definition ubsan.h:43
ubsan_encode_value_phase
Definition ubsan.h:47
@ UBSAN_ENCODE_VALUE_GIMPLE
Definition ubsan.h:49
@ UBSAN_ENCODE_VALUE_RTL
Definition ubsan.h:50
@ UBSAN_ENCODE_VALUE_GENERIC
Definition ubsan.h:48
tree ubsan_type_descriptor(tree, ubsan_print_style=UBSAN_PRINT_NORMAL)
Definition ubsan.cc:371
bool ubsan_expand_objsize_ifn(gimple_stmt_iterator *)
Definition ubsan.cc:1012
tree ubsan_build_overflow_builtin(tree_code, location_t, tree, tree, tree, tree *)
Definition ubsan.cc:1607
ubsan_null_ckind
Definition ubsan.h:25
@ UBSAN_REF_BINDING
Definition ubsan.h:28
@ UBSAN_DOWNCAST_REFERENCE
Definition ubsan.h:33
@ UBSAN_DOWNCAST_POINTER
Definition ubsan.h:32
@ UBSAN_CAST_TO_VBASE
Definition ubsan.h:35
@ UBSAN_MEMBER_CALL
Definition ubsan.h:30
@ UBSAN_STORE_OF
Definition ubsan.h:27
@ UBSAN_MEMBER_ACCESS
Definition ubsan.h:29
@ UBSAN_CTOR_CALL
Definition ubsan.h:31
@ UBSAN_UPCAST
Definition ubsan.h:34
@ UBSAN_LOAD_OF
Definition ubsan.h:26
bool ubsan_expand_bounds_ifn(gimple_stmt_iterator *)
Definition ubsan.cc:766
bool ubsan_instrument_unreachable(gimple_stmt_iterator *)
Definition ubsan.cc:731
tree ubsan_instrument_float_cast(location_t, tree, tree)
Definition ubsan.cc:1893
tree ubsan_get_source_location_type(void)
Definition ubsan.cc:269
bool ubsan_expand_ptr_ifn(gimple_stmt_iterator *)
Definition ubsan.cc:1125
tree ubsan_encode_value(tree, ubsan_encode_value_phase=UBSAN_ENCODE_VALUE_GENERIC)
Definition ubsan.cc:126
tree sanitize_unreachable_fn(tree *data, location_t loc)
Definition ubsan.cc:700