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))
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to