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
;