diff options
-rw-r--r-- | cas.c | 3 | ||||
-rw-r--r-- | container_of.c | 2 |
2 files changed, 4 insertions, 1 deletions
@@ -67,16 +67,19 @@ static inline unsigned int cas( volatile split_t *mem, int test_compare_and_swap () { pointer_t mem, old, new; + new.concat = old.concat = 0; return compare_and_swap(&mem.concat, old.concat, new.concat); } int test_cas () { pointer_t mem, old, new; + new.concat = old.concat = 0; return cas(&mem.split, old.split, new.split); } void check_assign_a() { pointer_t a, b; + b.concat = 0; a.concat = b.concat; } diff --git a/container_of.c b/container_of.c index f67b644..d3f9e25 100644 --- a/container_of.c +++ b/container_of.c @@ -29,7 +29,7 @@ #include "stdlib.h" #include "stddef.h" -#define container_of(ptr, type, member) ({ \ +#define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );}) |