Tweak the use of static_assert to support older compilers. (#4536)
authorMartin <martin.brain@cs.ox.ac.uk>
Wed, 27 May 2020 18:26:51 +0000 (19:26 +0100)
committerGitHub <noreply@github.com>
Wed, 27 May 2020 18:26:51 +0000 (11:26 -0700)
C++11 introduces static_assert(bool, string).
C++17 introduces static_assert(bool)

By adding a message we can support older compilers such as those
used by our nightly build system...

src/util/floatingpoint.cpp

index 3bcf2b0de9b8a81b69d0a8bb64234db7417cd978..f5545f73c7a9e622b1c8bf77f37ba6e73c7ec499 100644 (file)
@@ -925,7 +925,8 @@ static FloatingPointLiteral constructorHelperBitVector(
       // We only have multiplyByPow(uint32_t) so we can't convert all numbers.
       // As we convert Integer -> unsigned int -> uint32_t we need that
       // unsigned int is not smaller than uint32_t
-      static_assert(sizeof(unsigned int) >= sizeof(uint32_t));
+      static_assert(sizeof(unsigned int) >= sizeof(uint32_t),
+                   "Conversion float -> real could loose data");
 #ifdef CVC4_ASSERTIONS
       // Note that multipling by 2^n requires n bits of space (worst case)
       // so, in effect, these tests limit us to cases where the resultant