Skip to content

Commit

Permalink
Fix archetypes.hpp under libcpp-no-extensions and std level < 14
Browse files Browse the repository at this point in the history
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.

Use a comma operator to workaround this problem.

Differential Revision: https://reviews.llvm.org/D26147

llvm-svn: 285572
  • Loading branch information
Roger Ferrer Ibanez committed Oct 31, 2016
1 parent 82a1fc8 commit c6a40d2
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions libcxx/test/support/archetypes.hpp
Expand Up @@ -147,15 +147,15 @@ struct ValueBase {
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;
Expand Down

0 comments on commit c6a40d2

Please sign in to comment.