summaryrefslogtreecommitdiff
path: root/src/ssl/ssl_c_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ssl/ssl_c_test.c')
-rw-r--r--src/ssl/ssl_c_test.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ssl/ssl_c_test.c b/src/ssl/ssl_c_test.c
new file mode 100644
index 00000000..02f8655d
--- /dev/null
+++ b/src/ssl/ssl_c_test.c
@@ -0,0 +1,15 @@
+#include <openssl/ssl.h>
+
+int BORINGSSL_enum_c_type_test(void);
+
+int BORINGSSL_enum_c_type_test(void) {
+#if defined(__cplusplus)
+#error "This is testing the behaviour of the C compiler."
+#error "It's pointless to build it in C++ mode."
+#endif
+
+ // In C++, the enums in ssl.h are explicitly typed as ints to allow them to
+ // be predeclared. This function confirms that the C compiler believes them
+ // to be the same size as ints. They may differ in signedness, however.
+ return sizeof(enum ssl_private_key_result_t) == sizeof(int);
+}