- ((uint64_t)((((t) >> 30) * 1000000000) + \
- ((((t)&0x3fffffff) * 1000000000 + (1 << 29)) >> 30)))
-
-#define CDTIME_T_TO_DOUBLE(t) (((double)(t)) / 1073741824.0)
-#define DOUBLE_TO_CDTIME_T(d) ((cdtime_t)((d)*1073741824.0))
-
-#define CDTIME_T_TO_TIMEVAL(cdt, tvp) \
- do { \
- (tvp)->tv_sec = (time_t)((cdt) >> 30); \
- (tvp)->tv_usec = \
- (suseconds_t)((((cdt)&0x3fffffff) * 1000000 + (1 << 29)) >> 30); \
- } while (0)
+ (uint64_t) { \
+ (uint64_t)((((t) >> 30) * 1000000000) + \
+ ((((t)&0x3fffffff) * 1000000000 + (1 << 29)) >> 30)) \
+ }
+
+#define CDTIME_T_TO_DOUBLE(t) \
+ (double) { ((double)(t)) / 1073741824.0 }
+#define DOUBLE_TO_CDTIME_T_STATIC(d) ((cdtime_t)((d)*1073741824.0))
+#define DOUBLE_TO_CDTIME_T(d) \
+ (cdtime_t) { DOUBLE_TO_CDTIME_T_STATIC(d) }
+
+#define CDTIME_T_TO_TIMEVAL(t) \
+ (struct timeval) { \
+ .tv_sec = (time_t)((t) >> 30), \
+ .tv_usec = (suseconds_t)((((t)&0x3fffffff) * 1000000 + (1 << 29)) >> 30), \
+ }