Print this page
12257 resync smatch to 0.6.1-rc1-il-4
*** 102,111 ****
--- 102,117 ----
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,405 ****
--- 402,412 ----
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,846 ****
--- 844,854 ----
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,1256 ****
--- 1255,1265 ----
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,1285 ****
--- 1285,1296 ----
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 ||