chiark / gitweb /
test-sizeof: another aproach to _Float128 availability detection
[elogind.git] / src / test / test-sizeof.c
index 103c96955560de4c168cca075a9e91bc678f0f66..bd010c50d4ad7b04df63505f0447409e19592818 100644 (file)
@@ -1,13 +1,11 @@
 /* SPDX-License-Identifier: LGPL-2.1+ */
-/***
-  This file is part of systemd.
-
-  Copyright 2016 Zbigniew Jędrzejewski-Szmek
-***/
 
 #include <stdio.h>
 #include <string.h>
 
+#define __STDC_WANT_IEC_60559_TYPES_EXT__
+//#include <float.h>
+
 #include "time-util.h"
 
 /* Print information about various types. Useful when diagnosing
@@ -26,7 +24,12 @@ enum Enum {
 };
 
 enum BigEnum {
-        big_enum_value = UINT64_C(-1),
+        big_enum_value = UINT64_C(1),
+};
+
+enum BigEnum2 {
+        big_enum2_pos = UINT64_C(1),
+        big_enum2_neg = UINT64_C(-1),
 };
 
 int main(void) {
@@ -46,6 +49,14 @@ int main(void) {
         info(double);
         info(long double);
 
+#ifdef FLT128_MAX
+        info(_Float128);
+        info(_Float64);
+        info(_Float64x);
+        info(_Float32);
+        info(_Float32x);
+#endif
+
         info(size_t);
         info(ssize_t);
         info(time_t);
@@ -59,6 +70,10 @@ int main(void) {
 
         info(enum Enum);
         info(enum BigEnum);
+        info(enum BigEnum2);
+        assert_cc(sizeof(enum BigEnum2) == 8);
+        printf("big_enum2_pos → %zu\n", sizeof(big_enum2_pos));
+        printf("big_enum2_neg → %zu\n", sizeof(big_enum2_neg));
 
         return 0;
 }