svn commit: r352840 - head/sys/sys
Edward Tomasz Napierala
trasz at FreeBSD.org
Sat Sep 28 09:54:03 UTC 2019
Author: trasz
Date: Sat Sep 28 09:54:03 2019
New Revision: 352840
URL: https://svnweb.freebsd.org/changeset/base/352840
Log:
Fix Q_TOSTR(3) with GCC when it's called with first parameter being const.
Discussed with: cem
MFC after: 2 weeks
Sponsored by: Klara Inc, Netflix
Differential Revision: https://reviews.freebsd.org/D21766
Modified:
head/sys/sys/qmath.h
Modified: head/sys/sys/qmath.h
==============================================================================
--- head/sys/sys/qmath.h Sat Sep 28 09:50:01 2019 (r352839)
+++ head/sys/sys/qmath.h Sat Sep 28 09:54:03 2019 (r352840)
@@ -58,11 +58,16 @@ typedef uint64_t u64q_t;
typedef s64q_t smaxq_t;
typedef u64q_t umaxq_t;
+#if defined(__GNUC__)
+/* Ancient GCC hack to de-const, remove when GCC4 is removed. */
+#define Q_BT(q) __typeof(1 * q)
+#else
/* The underlying base type of 'q'. */
#define Q_BT(q) __typeof(q)
+#endif
/* Type-cast variable 'v' to the same underlying type as 'q'. */
-#define Q_TC(q, v) ((Q_BT(q))(v))
+#define Q_TC(q, v) ((__typeof(q))(v))
/* Number of total bits associated with the data type underlying 'q'. */
#define Q_NTBITS(q) ((uint32_t)(sizeof(q) << 3))
More information about the svn-src-all
mailing list