Print this page
11506 smatch resync

@@ -29,11 +29,11 @@
 {
         int arg;
 
         if (!option_info)
                 return;
-        if (__in_fake_assign)
+        if (__in_fake_assign || __in_fake_parameter_assign || __in_function_def)
                 return;
 
         arg = get_param_num_from_sym(sym);
         if (arg >= 0)
                 set_state_stree(&used_stree, my_id, name, sym, &used);

@@ -49,11 +49,11 @@
         if (!name || !sym)
                 goto free;
 
         arg_nr = get_param_num_from_sym(sym);
         if (arg_nr >= 0)
-                set_state(my_id, name, sym, &used);
+                set_state_stree(&used_stree, my_id, name, sym, &used);
 free:
         free_string(name);
 }
 
 static void process_states(void)

@@ -67,11 +67,16 @@
                 if (arg < 0)
                         continue;
                 name = get_param_name(tmp);
                 if (!name)
                         continue;
+                if (is_recursive_member(name))
+                        continue;
 
+                if (is_ignored_kernel_data(name))
+                        continue;
+
                 sql_insert_return_implies(PARAM_USED, arg, name, "");
         } END_FOR_EACH_SM(tmp);
 
         free_stree(&used_stree);
 }