rogfer01 created this revision. rogfer01 added reviewers: EricWF, mclow.lists, rmaprath. rogfer01 added a subscriber: cfe-commits.
Under -fno-exceptions TEST_THROW becomes abort / __builtin_abort which returns void. This causes a type mismatch in the conditional operator when testing the library in C++98,03,11 modes. This patch uses a comma operator to workaround this problem. https://reviews.llvm.org/D26147 Files: test/support/archetypes.hpp Index: test/support/archetypes.hpp =================================================================== --- test/support/archetypes.hpp +++ test/support/archetypes.hpp @@ -147,15 +147,15 @@ protected: constexpr static int check_value(int const& val) { #if TEST_STD_VER < 14 - return val == -1 || val == 999 ? TEST_THROW(42) : val; + return val == -1 || val == 999 ? (TEST_THROW(42), 0) : val; #else assert(val != -1); assert(val != 999); return val; #endif } constexpr static int check_value(int& val, int val_cp = 0) { #if TEST_STD_VER < 14 - return val_cp = val, val = -1, (val_cp == -1 || val_cp == 999 ? TEST_THROW(42) : val_cp); + return val_cp = val, val = -1, (val_cp == -1 || val_cp == 999 ? (TEST_THROW(42), 0) : val_cp); #else assert(val != -1); assert(val != 999); val_cp = val;
Index: test/support/archetypes.hpp =================================================================== --- test/support/archetypes.hpp +++ test/support/archetypes.hpp @@ -147,15 +147,15 @@ protected: constexpr static int check_value(int const& val) { #if TEST_STD_VER < 14 - return val == -1 || val == 999 ? TEST_THROW(42) : val; + return val == -1 || val == 999 ? (TEST_THROW(42), 0) : val; #else assert(val != -1); assert(val != 999); return val; #endif } constexpr static int check_value(int& val, int val_cp = 0) { #if TEST_STD_VER < 14 - return val_cp = val, val = -1, (val_cp == -1 || val_cp == 999 ? TEST_THROW(42) : val_cp); + return val_cp = val, val = -1, (val_cp == -1 || val_cp == 999 ? (TEST_THROW(42), 0) : val_cp); #else assert(val != -1); assert(val != 999); val_cp = val;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits