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 ||