]> git.ozlabs.org Git - ccan/blobdiff - ccan/cast/cast.h
failtest: use a linked list for history, not an array.
[ccan] / ccan / cast / cast.h
index dfb95b59772611bf53582b4b4ef132970104a829..b108b0c864d3b0cd07e26a497040537921d674b4 100644 (file)
@@ -1,3 +1,4 @@
+/* Licensed under LGPLv2.1+ - see LICENSE file for details */
 #ifndef CCAN_CAST_H
 #define CCAN_CAST_H
 #include "config.h"
          )
 
 #define cast_const_strip1(expr)                        \
-       __typeof__(*(struct { int z; __typeof__(expr) x; }){0}.x)
+       __typeof__(*(union { int z; __typeof__(expr) x; }){0}.x)
 #define cast_const_strip2(expr) \
-       __typeof__(**(struct { int z; __typeof__(expr) x; }){0}.x)
+       __typeof__(**(union { int z; __typeof__(expr) x; }){0}.x)
 #define cast_const_strip3(expr) \
-       __typeof__(***(struct { int z; __typeof__(expr) x; }){0}.x)
+       __typeof__(***(union { int z; __typeof__(expr) x; }){0}.x)
 #define cast_const_compat1(expr, type)                                 \
        __builtin_types_compatible_p(cast_const_strip1(expr),           \
                                     cast_const_strip1(type))
 #else
 #define cast_sign_compatible(type, expr)               \
        (sizeof(*(type)0) == 1 && sizeof(*(expr)) == 1)
-#define cast_const_compat1(expr, type)         \
-       (sizeof(*(expr)) == sizeof(*(type)0))
-#define cast_const_compat2(expr, type)         \
-       (sizeof(**(expr)) == sizeof(**(type)0))
-#define cast_const_compat3(expr, type)                 \
-       (sizeof(***(expr)) == sizeof(***(type)0))
+#define cast_const_compat1(expr, type)         (1)
+#define cast_const_compat2(expr, type)         (1)
+#define cast_const_compat3(expr, type)         (1)
 #endif
 #endif /* CCAN_CAST_H */