summaryrefslogtreecommitdiffstats
path: root/Modules/CMakeCCompilerABI.c
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2008-01-21 23:30:17 (GMT)
committerBrad King <brad.king@kitware.com>2008-01-21 23:30:17 (GMT)
commita28b197b11f4b647c67a6914c731077972449343 (patch)
tree48e3cad97678cc49ef2b63c210d4e712a4dc58fa /Modules/CMakeCCompilerABI.c
parent19d22f6105ae064378e9175bed6a01b197e2eb5d (diff)
downloadCMake-a28b197b11f4b647c67a6914c731077972449343.zip
CMake-a28b197b11f4b647c67a6914c731077972449343.tar.gz
CMake-a28b197b11f4b647c67a6914c731077972449343.tar.bz2
ENH: Generalize the check for sizeof void* to detect more ABI information.
Diffstat (limited to 'Modules/CMakeCCompilerABI.c')
-rw-r--r--Modules/CMakeCCompilerABI.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/Modules/CMakeCCompilerABI.c b/Modules/CMakeCCompilerABI.c
new file mode 100644
index 0000000..f73e7fc
--- /dev/null
+++ b/Modules/CMakeCCompilerABI.c
@@ -0,0 +1,28 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#ifdef __CLASSIC_C__
+# define const
+#endif
+
+/*--------------------------------------------------------------------------*/
+
+#include "CMakeCompilerABI.h"
+
+/*--------------------------------------------------------------------------*/
+
+/* Make sure the information strings are referenced. */
+#define REQUIRE(x) (&x[0] != &require)
+
+int main()
+{
+ const char require = 0;
+ return
+ (
+ REQUIRE(info_sizeof_dptr)
+#if defined(ABI_ID)
+ && REQUIRE(info_abi)
+#endif
+ );
+}