diff options
Diffstat (limited to 'tests/headers/core.h')
| -rw-r--r-- | tests/headers/core.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/headers/core.h b/tests/headers/core.h new file mode 100644 index 00000000..01c6aa5e --- /dev/null +++ b/tests/headers/core.h @@ -0,0 +1,54 @@ +#define FN(__r, ...) __r (*_)(__VA_ARGS__) + +#define FUNCTION(__f, __t) \ + { \ + __t = __f; \ + } + +#define MACRO(__m) \ + { \ + typeof(__m) v = __m; \ + } + +#define MACRO_VALUE(__m, __v) _Static_assert(__m == __v, #__m) + +#define MACRO_VALUE_STRING(__m, __v) \ + do { \ + (void)sizeof( \ + char[(__builtin_strcmp(__m, __v) == 0) ? 1 : -1]); \ + } while (0) + +#define MACRO_TYPE(__t, __m) \ + { \ + __t v = __m; \ + } + +#define TYPE(__t) \ + { \ + __t v; \ + } + +#define INCOMPLETE_TYPE(__t) \ + { \ + __t *v; \ + } + +#define STRUCT_MEMBER(__s, __t, __n) \ + { \ + __s s; \ + __t *_ = &(s.__n); \ + } + +#define STRUCT_MEMBER_ARRAY(__s, __t, __n) \ + { \ + __s s; \ + __t *p = &(s.__n[0]); \ + } + +#define STRUCT_MEMBER_FUNCTION_POINTER(__s, __t, __n) \ + { \ + __s s; \ + __t = (s.__n); \ + } + +#define TEST(__name) static void __name(void) |
