diff mbox

[5/5] do not depends on limits.h to test __CHAR_BIT__

Message ID 20170327141918.61151-6-luc.vanoostenryck@gmail.com (mailing list archive)
State Mainlined, archived
Headers show

Commit Message

Luc Van Oostenryck March 27, 2017, 2:19 p.m. UTC
This test depends on the header <limits.h> which itself depends
on some macros being defined by the compiler.

Now these macros are predefined (at least the obvious ones)
but it's annoying for the tests to depends on external things
like this header.

Remove this dependence by rewriting the test to use the predefined
macros directly.

Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
---
 validation/builtin_char_bit.c             |  7 -------
 validation/preprocessor/predef-char-bit.c | 16 ++++++++++++++++
 2 files changed, 16 insertions(+), 7 deletions(-)
 delete mode 100644 validation/builtin_char_bit.c
 create mode 100644 validation/preprocessor/predef-char-bit.c
diff mbox

Patch

diff --git a/validation/builtin_char_bit.c b/validation/builtin_char_bit.c
deleted file mode 100644
index 30e6bed46..000000000
--- a/validation/builtin_char_bit.c
+++ /dev/null
@@ -1,7 +0,0 @@ 
-#include <limits.h>
-
-static unsigned int word_bits = sizeof(unsigned int) * CHAR_BIT;
-
-/*
- * check-name: __CHAR_BIT__
- */
diff --git a/validation/preprocessor/predef-char-bit.c b/validation/preprocessor/predef-char-bit.c
new file mode 100644
index 000000000..fed0166e4
--- /dev/null
+++ b/validation/preprocessor/predef-char-bit.c
@@ -0,0 +1,16 @@ 
+#define TEST_BIT(X, T)	if (__ ## X ## _BIT__  != 8 * sizeof(T)) return 1
+
+int test(void)
+{
+	TEST_BIT(CHAR, char);
+
+	return 0;
+}
+
+/*
+ * check-name: predefined __<type>_BIT__
+ * check-command: test-linearize -Wno-decl $file
+ * check-output-ignore
+ *
+ * check-output-contains: ret\\..*\\$0
+ */