diff options
| author | William Casarin <jb55@jb55.com> | 2018-07-09 22:28:25 -0700 |
|---|---|---|
| committer | William Casarin <jb55@jb55.com> | 2018-07-09 22:31:48 -0700 |
| commit | 9593fc545950782ed75f12f53238b07885559b2b (patch) | |
| tree | 9c7c2f7cbb427c54e9184cb61eedce737a6cbc6f /ccan/check_type | |
| parent | bd8c223756d2f912526ecef53bae0cc8e0c63442 (diff) | |
remove ccan for now
Diffstat (limited to 'ccan/check_type')
| l--------- | ccan/check_type/LICENSE | 1 | ||||
| -rw-r--r-- | ccan/check_type/_info | 33 | ||||
| -rw-r--r-- | ccan/check_type/check_type.h | 64 | ||||
| -rw-r--r-- | ccan/check_type/test/compile_fail-check_type.c | 11 | ||||
| -rw-r--r-- | ccan/check_type/test/compile_fail-check_type_unsigned.c | 16 | ||||
| -rw-r--r-- | ccan/check_type/test/compile_fail-check_types_match.c | 11 | ||||
| -rw-r--r-- | ccan/check_type/test/run.c | 23 |
7 files changed, 0 insertions, 159 deletions
diff --git a/ccan/check_type/LICENSE b/ccan/check_type/LICENSE deleted file mode 120000 index b7951da..0000000 --- a/ccan/check_type/LICENSE +++ /dev/null @@ -1 +0,0 @@ -../../licenses/CC0
\ No newline at end of file diff --git a/ccan/check_type/_info b/ccan/check_type/_info deleted file mode 100644 index cc42673..0000000 --- a/ccan/check_type/_info +++ /dev/null @@ -1,33 +0,0 @@ -#include "config.h" -#include <stdio.h> -#include <string.h> - -/** - * check_type - routines for compile time type checking - * - * C has fairly weak typing: ints get automatically converted to longs, signed - * to unsigned, etc. There are some cases where this is best avoided, and - * these macros provide methods for evoking warnings (or build errors) when - * a precise type isn't used. - * - * On compilers which don't support typeof() these routines are less effective, - * since they have to use sizeof() which can only distiguish between types of - * different size. - * - * License: CC0 (Public domain) - * Author: Rusty Russell <rusty@rustcorp.com.au> - */ -int main(int argc, char *argv[]) -{ - if (argc != 2) - return 1; - - if (strcmp(argv[1], "depends") == 0) { -#if !HAVE_TYPEOF - printf("ccan/build_assert\n"); -#endif - return 0; - } - - return 1; -} diff --git a/ccan/check_type/check_type.h b/ccan/check_type/check_type.h deleted file mode 100644 index 837aef7..0000000 --- a/ccan/check_type/check_type.h +++ /dev/null @@ -1,64 +0,0 @@ -/* CC0 (Public domain) - see LICENSE file for details */ -#ifndef CCAN_CHECK_TYPE_H -#define CCAN_CHECK_TYPE_H -#include "config.h" - -/** - * check_type - issue a warning or build failure if type is not correct. - * @expr: the expression whose type we should check (not evaluated). - * @type: the exact type we expect the expression to be. - * - * This macro is usually used within other macros to try to ensure that a macro - * argument is of the expected type. No type promotion of the expression is - * done: an unsigned int is not the same as an int! - * - * check_type() always evaluates to 0. - * - * If your compiler does not support typeof, then the best we can do is fail - * to compile if the sizes of the types are unequal (a less complete check). - * - * Example: - * // They should always pass a 64-bit value to _set_some_value! - * #define set_some_value(expr) \ - * _set_some_value((check_type((expr), uint64_t), (expr))) - */ - -/** - * check_types_match - issue a warning or build failure if types are not same. - * @expr1: the first expression (not evaluated). - * @expr2: the second expression (not evaluated). - * - * This macro is usually used within other macros to try to ensure that - * arguments are of identical types. No type promotion of the expressions is - * done: an unsigned int is not the same as an int! - * - * check_types_match() always evaluates to 0. - * - * If your compiler does not support typeof, then the best we can do is fail - * to compile if the sizes of the types are unequal (a less complete check). - * - * Example: - * // Do subtraction to get to enclosing type, but make sure that - * // pointer is of correct type for that member. - * #define container_of(mbr_ptr, encl_type, mbr) \ - * (check_types_match((mbr_ptr), &((encl_type *)0)->mbr), \ - * ((encl_type *) \ - * ((char *)(mbr_ptr) - offsetof(encl_type, mbr)))) - */ -#if HAVE_TYPEOF -#define check_type(expr, type) \ - ((typeof(expr) *)0 != (type *)0) - -#define check_types_match(expr1, expr2) \ - ((typeof(expr1) *)0 != (typeof(expr2) *)0) -#else -#include <ccan/build_assert/build_assert.h> -/* Without typeof, we can only test the sizes. */ -#define check_type(expr, type) \ - BUILD_ASSERT_OR_ZERO(sizeof(expr) == sizeof(type)) - -#define check_types_match(expr1, expr2) \ - BUILD_ASSERT_OR_ZERO(sizeof(expr1) == sizeof(expr2)) -#endif /* HAVE_TYPEOF */ - -#endif /* CCAN_CHECK_TYPE_H */ diff --git a/ccan/check_type/test/compile_fail-check_type.c b/ccan/check_type/test/compile_fail-check_type.c deleted file mode 100644 index 4c22c65..0000000 --- a/ccan/check_type/test/compile_fail-check_type.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <ccan/check_type/check_type.h> - -int main(int argc, char *argv[]) -{ - (void)argc; - (void)argv; -#ifdef FAIL - check_type(argc, char); -#endif - return 0; -} diff --git a/ccan/check_type/test/compile_fail-check_type_unsigned.c b/ccan/check_type/test/compile_fail-check_type_unsigned.c deleted file mode 100644 index 795e760..0000000 --- a/ccan/check_type/test/compile_fail-check_type_unsigned.c +++ /dev/null @@ -1,16 +0,0 @@ -#include <ccan/check_type/check_type.h> - -int main(int argc, char *argv[]) -{ - (void)argc; - (void)argv; -#ifdef FAIL -#if HAVE_TYPEOF - check_type(argc, unsigned int); -#else - /* This doesn't work without typeof, so just fail */ -#error "Fail without typeof" -#endif -#endif - return 0; -} diff --git a/ccan/check_type/test/compile_fail-check_types_match.c b/ccan/check_type/test/compile_fail-check_types_match.c deleted file mode 100644 index fb83738..0000000 --- a/ccan/check_type/test/compile_fail-check_types_match.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <ccan/check_type/check_type.h> - -int main(int argc, char *argv[]) -{ - unsigned char x = argc; - (void)argv; -#ifdef FAIL - check_types_match(argc, x); -#endif - return x; -} diff --git a/ccan/check_type/test/run.c b/ccan/check_type/test/run.c deleted file mode 100644 index 09fd363..0000000 --- a/ccan/check_type/test/run.c +++ /dev/null @@ -1,23 +0,0 @@ -#include <ccan/check_type/check_type.h> -#include <ccan/tap/tap.h> - -int main(int argc, char *argv[]) -{ - int x = 0, y = 0; - - (void)argv; - plan_tests(9); - - ok1(check_type(argc, int) == 0); - ok1(check_type(&argc, int *) == 0); - ok1(check_types_match(argc, argc) == 0); - ok1(check_types_match(argc, x) == 0); - ok1(check_types_match(&argc, &x) == 0); - - ok1(check_type(x++, int) == 0); - ok(x == 0, "check_type does not evaluate expression"); - ok1(check_types_match(x++, y++) == 0); - ok(x == 0 && y == 0, "check_types_match does not evaluate expressions"); - - return exit_status(); -} |
