]> git.ozlabs.org Git - ccan/blobdiff - check_type/check_type.h
base64: fix for unsigned chars (e.g. ARM).
[ccan] / check_type / check_type.h
diff --git a/check_type/check_type.h b/check_type/check_type.h
deleted file mode 100644 (file)
index e05236f..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#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 1.
- *
- * 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 1.
- *
- * 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(enclosing_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 "build_assert/build_assert.h"
-/* Without typeof, we can only test the sizes. */
-#define check_type(expr, type)                                 \
-       EXPR_BUILD_ASSERT(sizeof(expr) == sizeof(type))
-
-#define check_types_match(expr1, expr2)                                \
-       EXPR_BUILD_ASSERT(sizeof(expr1) == sizeof(expr2))
-#endif /* HAVE_TYPEOF */
-
-#endif /* CCAN_CHECK_TYPE_H */