1 /* SPDX-License-Identifier: GPL-2.0 */
11 struct type_descriptor {
17 struct source_location {
18 const char *file_name;
20 unsigned long reported;
28 struct overflow_data {
29 struct source_location location;
30 struct type_descriptor *type;
33 struct type_mismatch_data {
34 struct source_location location;
35 struct type_descriptor *type;
36 unsigned long alignment;
37 unsigned char type_check_kind;
40 struct type_mismatch_data_v1 {
41 struct source_location location;
42 struct type_descriptor *type;
43 unsigned char log_alignment;
44 unsigned char type_check_kind;
47 struct type_mismatch_data_common {
48 struct source_location *location;
49 struct type_descriptor *type;
50 unsigned long alignment;
51 unsigned char type_check_kind;
54 struct nonnull_arg_data {
55 struct source_location location;
56 struct source_location attr_location;
60 struct nonnull_return_data {
61 struct source_location location;
62 struct source_location attr_location;
65 struct vla_bound_data {
66 struct source_location location;
67 struct type_descriptor *type;
70 struct out_of_bounds_data {
71 struct source_location location;
72 struct type_descriptor *array_type;
73 struct type_descriptor *index_type;
76 struct shift_out_of_bounds_data {
77 struct source_location location;
78 struct type_descriptor *lhs_type;
79 struct type_descriptor *rhs_type;
82 struct unreachable_data {
83 struct source_location location;
86 struct invalid_value_data {
87 struct source_location location;
88 struct type_descriptor *type;
91 #if defined(CONFIG_ARCH_SUPPORTS_INT128) && defined(__SIZEOF_INT128__)
92 typedef __int128 s_max;
93 typedef unsigned __int128 u_max;