Details
Description
The 18.numeric.special.int test fails with the following assertions:
# ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<bool>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<char>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<signed char>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<unsigned char>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<short>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<unsigned short>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<int>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<unsigned int>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<long>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<unsigned long>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<_RWSTD_LONG_LONG>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<unsigned _RWSTD_LONG_LONG>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587 # ASSERTION (S7) (4 lines): # TEXT: std::numeric_limits<wchar_t>::traps == 0, got true # CLAUSE: numeric.special # LINE: 587
Problem is in that the test unconditionally expects that numeric_limits<>::traps is false for all integral types. Perhaps we need to hardcode the expected results depending on the platform (as done in 18.numeric.special.float test).