summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/smatch/files/smatch-fix-compiler-warnings.patch')
-rw-r--r--sys-devel/smatch/files/smatch-fix-compiler-warnings.patch92
1 files changed, 92 insertions, 0 deletions
diff --git a/sys-devel/smatch/files/smatch-fix-compiler-warnings.patch b/sys-devel/smatch/files/smatch-fix-compiler-warnings.patch
new file mode 100644
index 0000000..e067703
--- /dev/null
+++ b/sys-devel/smatch/files/smatch-fix-compiler-warnings.patch
@@ -0,0 +1,92 @@
+diff --git a/check_locking.c b/check_locking.c
+index 30a658d..595e422 100644
+--- a/check_locking.c
++++ b/check_locking.c
+@@ -354,7 +354,7 @@ static void do_unlock(const char *name)
+ static void match_lock_held(const char *fn, struct expression *call_expr,
+ struct expression *assign_expr, void *_index)
+ {
+- int index = (int)_index;
++ int index = *(int*)_index;
+ char *lock_name;
+ struct lock_info *lock = &lock_table[index];
+
+@@ -376,7 +376,7 @@ static void match_lock_held(const char *fn, struct expression *call_expr,
+ static void match_lock_failed(const char *fn, struct expression *call_expr,
+ struct expression *assign_expr, void *_index)
+ {
+- int index = (int)_index;
++ int index = *(int*)_index;
+ char *lock_name;
+ struct lock_info *lock = &lock_table[index];
+
+@@ -399,7 +399,7 @@ static void match_returns_locked(const char *fn, struct expression *expr,
+ void *_index)
+ {
+ char *full_name = NULL;
+- int index = (int)_index;
++ int index = *(int*)_index;
+ struct lock_info *lock = &lock_table[index];
+
+ if (lock->arg != RETURN_VAL)
+@@ -411,7 +411,7 @@ static void match_returns_locked(const char *fn, struct expression *expr,
+ static void match_lock_unlock(const char *fn, struct expression *expr, void *_index)
+ {
+ char *full_name = NULL;
+- int index = (int)_index;
++ int index = *(int*)_index;
+ struct lock_info *lock = &lock_table[index];
+
+ full_name = get_full_name(expr, index);
+@@ -624,7 +624,7 @@ static void match_func_end(struct symbol *sym)
+ static void register_lock(int index)
+ {
+ struct lock_info *lock = &lock_table[index];
+- void *idx = (void *)index;
++ void *idx = &index;
+
+ if (lock->return_type == ret_non_zero) {
+ return_implies_state(lock->function, 1, POINTER_MAX, &match_lock_held, idx);
+@@ -649,7 +649,7 @@ static void load_table(struct lock_info *_lock_table, int size)
+ if (lock_table[i].action == LOCK)
+ register_lock(i);
+ else
+- add_function_hook(lock_table[i].function, &match_lock_unlock, (void *)i);
++ add_function_hook(lock_table[i].function, &match_lock_unlock, &i);
+ }
+ }
+
+diff --git a/check_unused_ret.c b/check_unused_ret.c
+index 2f277c2..94afb66 100644
+--- a/check_unused_ret.c
++++ b/check_unused_ret.c
+@@ -59,7 +59,7 @@ static struct smatch_state *my_alloc_state(int assign_id)
+ snprintf(buff, 255, "assign_%d", assign_id);
+ buff[255] = '\0';
+ state->name = alloc_string(buff);
+- state->data = (void *) assign_id;
++ state->data = &assign_id;
+ return state;
+ }
+
+@@ -122,7 +122,7 @@ static void delete_used_symbols(struct state_list *possible)
+ struct sm_state *tmp;
+
+ FOR_EACH_PTR(possible, tmp) {
+- delete_used((int)tmp->state->data);
++ delete_used(*(int*)tmp->state->data);
+ } END_FOR_EACH_PTR(tmp);
+ }
+
+diff --git a/smatch_extra.c b/smatch_extra.c
+index 45e8bf7..c094be6 100644
+--- a/smatch_extra.c
++++ b/smatch_extra.c
+@@ -12,7 +12,6 @@
+ */
+
+ #include <stdlib.h>
+-#define __USE_ISOC99
+ #include <limits.h>
+ #include "parse.h"
+ #include "smatch.h"