Version:  2.0.40 2.2.26 2.4.37 3.13 3.14 3.15 3.16 3.17 3.18 3.19 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10

Linux/lib/ubsan.h

  1 #ifndef _LIB_UBSAN_H
  2 #define _LIB_UBSAN_H
  3 
  4 enum {
  5         type_kind_int = 0,
  6         type_kind_float = 1,
  7         type_unknown = 0xffff
  8 };
  9 
 10 struct type_descriptor {
 11         u16 type_kind;
 12         u16 type_info;
 13         char type_name[1];
 14 };
 15 
 16 struct source_location {
 17         const char *file_name;
 18         union {
 19                 unsigned long reported;
 20                 struct {
 21                         u32 line;
 22                         u32 column;
 23                 };
 24         };
 25 };
 26 
 27 struct overflow_data {
 28         struct source_location location;
 29         struct type_descriptor *type;
 30 };
 31 
 32 struct type_mismatch_data {
 33         struct source_location location;
 34         struct type_descriptor *type;
 35         unsigned long alignment;
 36         unsigned char type_check_kind;
 37 };
 38 
 39 struct nonnull_arg_data {
 40         struct source_location location;
 41         struct source_location attr_location;
 42         int arg_index;
 43 };
 44 
 45 struct nonnull_return_data {
 46         struct source_location location;
 47         struct source_location attr_location;
 48 };
 49 
 50 struct vla_bound_data {
 51         struct source_location location;
 52         struct type_descriptor *type;
 53 };
 54 
 55 struct out_of_bounds_data {
 56         struct source_location location;
 57         struct type_descriptor *array_type;
 58         struct type_descriptor *index_type;
 59 };
 60 
 61 struct shift_out_of_bounds_data {
 62         struct source_location location;
 63         struct type_descriptor *lhs_type;
 64         struct type_descriptor *rhs_type;
 65 };
 66 
 67 struct unreachable_data {
 68         struct source_location location;
 69 };
 70 
 71 struct invalid_value_data {
 72         struct source_location location;
 73         struct type_descriptor *type;
 74 };
 75 
 76 #if defined(CONFIG_ARCH_SUPPORTS_INT128) && defined(__SIZEOF_INT128__)
 77 typedef __int128 s_max;
 78 typedef unsigned __int128 u_max;
 79 #else
 80 typedef s64 s_max;
 81 typedef u64 u_max;
 82 #endif
 83 
 84 #endif
 85 

This page was automatically generated by LXR 0.3.1 (source).  •  Linux is a registered trademark of Linus Torvalds  •  Contact us