Print this page
12257 resync smatch to 0.6.1-rc1-il-4
@@ -102,10 +102,16 @@
int op;
int id;
};
DECLARE_PTR_LIST(constraint_list, struct constraint);
+struct alloc_info {
+ const char *fn;
+ int size_param, nr;
+};
+extern struct alloc_info *alloc_funcs;
+
struct bit_info {
unsigned long long set;
unsigned long long possible;
};
@@ -396,10 +402,11 @@
int sym_name_is(const char *name, struct expression *expr);
int get_const_value(struct expression *expr, sval_t *sval);
int get_value(struct expression *expr, sval_t *val);
int get_implied_value(struct expression *expr, sval_t *val);
+int get_implied_value_fast(struct expression *expr, sval_t *sval);
int get_implied_min(struct expression *expr, sval_t *sval);
int get_implied_max(struct expression *expr, sval_t *val);
int get_hard_max(struct expression *expr, sval_t *sval);
int get_fuzzy_min(struct expression *expr, sval_t *min);
int get_fuzzy_max(struct expression *expr, sval_t *max);
@@ -837,10 +844,11 @@
BIT_INFO = 1034,
NOSPEC = 1035,
NOSPEC_WB = 1036,
STMT_CNT = 1037,
TERMINATED = 1038,
+ FRESH_ALLOC = 1044,
/* put random temporary stuff in the 7000-7999 range for testing */
USER_DATA = 8017,
USER_DATA_SET = 9017,
NO_OVERFLOW = 8018,
@@ -1247,10 +1255,11 @@
int get_param_from_container_of(struct expression *expr);
int get_offset_from_container_of(struct expression *expr);
char *get_container_name(struct expression *container, struct expression *expr);
/* smatch_mtag.c */
+mtag_t str_to_mtag(const char *str);
int get_string_mtag(struct expression *expr, mtag_t *tag);
int get_toplevel_mtag(struct symbol *sym, mtag_t *tag);
int create_mtag_alias(mtag_t tag, struct expression *expr, mtag_t *new);
int expr_to_mtag_offset(struct expression *expr, mtag_t *tag, int *offset);
void update_mtag_data(struct expression *expr, struct smatch_state *state);
@@ -1276,10 +1285,12 @@
bool is_nul_terminated_var_sym(const char *name, struct symbol *sym);
bool is_nul_terminated(struct expression *expr);
/* check_kernel.c */
bool is_ignored_kernel_data(const char *name);
+bool is_fresh_alloc_var_sym(const char *var, struct symbol *sym);
+bool is_fresh_alloc(struct expression *expr);
static inline bool type_is_ptr(struct symbol *type)
{
return type &&
(type->type == SYM_PTR ||
type->type == SYM_ARRAY ||