summaryrefslogtreecommitdiff
path: root/ccan/build_assert
diff options
context:
space:
mode:
Diffstat (limited to 'ccan/build_assert')
l---------ccan/build_assert/LICENSE1
-rw-r--r--ccan/build_assert/_info49
-rw-r--r--ccan/build_assert/build_assert.h40
-rw-r--r--ccan/build_assert/test/compile_fail-expr.c10
-rw-r--r--ccan/build_assert/test/compile_fail.c9
-rw-r--r--ccan/build_assert/test/compile_ok.c7
-rw-r--r--ccan/build_assert/test/run-BUILD_ASSERT_OR_ZERO.c9
7 files changed, 0 insertions, 125 deletions
diff --git a/ccan/build_assert/LICENSE b/ccan/build_assert/LICENSE
deleted file mode 120000
index b7951da..0000000
--- a/ccan/build_assert/LICENSE
+++ /dev/null
@@ -1 +0,0 @@
-../../licenses/CC0 \ No newline at end of file
diff --git a/ccan/build_assert/_info b/ccan/build_assert/_info
deleted file mode 100644
index 97ebe6c..0000000
--- a/ccan/build_assert/_info
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "config.h"
-#include <stdio.h>
-#include <string.h>
-
-/**
- * build_assert - routines for build-time assertions
- *
- * This code provides routines which will cause compilation to fail should some
- * assertion be untrue: such failures are preferable to run-time assertions,
- * but much more limited since they can only depends on compile-time constants.
- *
- * These assertions are most useful when two parts of the code must be kept in
- * sync: it is better to avoid such cases if possible, but seconds best is to
- * detect invalid changes at build time.
- *
- * For example, a tricky piece of code might rely on a certain element being at
- * the start of the structure. To ensure that future changes don't break it,
- * you would catch such changes in your code like so:
- *
- * Example:
- * #include <stddef.h>
- * #include <ccan/build_assert/build_assert.h>
- *
- * struct foo {
- * char string[5];
- * int x;
- * };
- *
- * static char *foo_string(struct foo *foo)
- * {
- * // This trick requires that the string be first in the structure
- * BUILD_ASSERT(offsetof(struct foo, string) == 0);
- * return (char *)foo;
- * }
- *
- * 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)
- /* Nothing. */
- return 0;
-
- return 1;
-}
diff --git a/ccan/build_assert/build_assert.h b/ccan/build_assert/build_assert.h
deleted file mode 100644
index b9ecd84..0000000
--- a/ccan/build_assert/build_assert.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* CC0 (Public domain) - see LICENSE file for details */
-#ifndef CCAN_BUILD_ASSERT_H
-#define CCAN_BUILD_ASSERT_H
-
-/**
- * BUILD_ASSERT - assert a build-time dependency.
- * @cond: the compile-time condition which must be true.
- *
- * Your compile will fail if the condition isn't true, or can't be evaluated
- * by the compiler. This can only be used within a function.
- *
- * Example:
- * #include <stddef.h>
- * ...
- * static char *foo_to_char(struct foo *foo)
- * {
- * // This code needs string to be at start of foo.
- * BUILD_ASSERT(offsetof(struct foo, string) == 0);
- * return (char *)foo;
- * }
- */
-#define BUILD_ASSERT(cond) \
- do { (void) sizeof(char [1 - 2*!(cond)]); } while(0)
-
-/**
- * BUILD_ASSERT_OR_ZERO - assert a build-time dependency, as an expression.
- * @cond: the compile-time condition which must be true.
- *
- * Your compile will fail if the condition isn't true, or can't be evaluated
- * by the compiler. This can be used in an expression: its value is "0".
- *
- * Example:
- * #define foo_to_char(foo) \
- * ((char *)(foo) \
- * + BUILD_ASSERT_OR_ZERO(offsetof(struct foo, string) == 0))
- */
-#define BUILD_ASSERT_OR_ZERO(cond) \
- (sizeof(char [1 - 2*!(cond)]) - 1)
-
-#endif /* CCAN_BUILD_ASSERT_H */
diff --git a/ccan/build_assert/test/compile_fail-expr.c b/ccan/build_assert/test/compile_fail-expr.c
deleted file mode 100644
index 6322eb3..0000000
--- a/ccan/build_assert/test/compile_fail-expr.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <ccan/build_assert/build_assert.h>
-
-int main(void)
-{
-#ifdef FAIL
- return BUILD_ASSERT_OR_ZERO(1 == 0);
-#else
- return 0;
-#endif
-}
diff --git a/ccan/build_assert/test/compile_fail.c b/ccan/build_assert/test/compile_fail.c
deleted file mode 100644
index 9fd827d..0000000
--- a/ccan/build_assert/test/compile_fail.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <ccan/build_assert/build_assert.h>
-
-int main(void)
-{
-#ifdef FAIL
- BUILD_ASSERT(1 == 0);
-#endif
- return 0;
-}
diff --git a/ccan/build_assert/test/compile_ok.c b/ccan/build_assert/test/compile_ok.c
deleted file mode 100644
index b4de8b4..0000000
--- a/ccan/build_assert/test/compile_ok.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <ccan/build_assert/build_assert.h>
-
-int main(void)
-{
- BUILD_ASSERT(1 == 1);
- return 0;
-}
diff --git a/ccan/build_assert/test/run-BUILD_ASSERT_OR_ZERO.c b/ccan/build_assert/test/run-BUILD_ASSERT_OR_ZERO.c
deleted file mode 100644
index 72f9ad1..0000000
--- a/ccan/build_assert/test/run-BUILD_ASSERT_OR_ZERO.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <ccan/build_assert/build_assert.h>
-#include <ccan/tap/tap.h>
-
-int main(void)
-{
- plan_tests(1);
- ok1(BUILD_ASSERT_OR_ZERO(1 == 1) == 0);
- return exit_status();
-}