//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // XFAIL: with_system_cxx_lib=macosx10.12 // // template > // class basic_ostream; // operator<<( int16_t val); // operator<<(uint16_t val); // operator<<( int32_t val); // operator<<(uint32_t val); // operator<<( int64_t val); // operator<<(uint64_t val); // Testing to make sure that the max length values are correctly inserted #include #include #include #include #include #include #include "test_macros.h" template void test_octal(const char *expected) { std::stringstream ss; ss << std::oct << static_cast(-1); assert(ss.str() == expected); } template void test_dec(const char *expected) { std::stringstream ss; ss << std::dec << static_cast(-1); assert(ss.str() == expected); } template void test_hex(const char *expected) { std::stringstream ss; ss << std::hex << static_cast(-1); std::string str = ss.str(); for (size_t i = 0; i < str.size(); ++i ) str[i] = static_cast(std::toupper(str[i])); assert(str == expected); } int main(int, char**) { test_octal( "177777"); test_octal< int16_t>( "177777"); test_octal( "37777777777"); test_octal< int32_t>( "37777777777"); test_octal("1777777777777777777777"); test_octal< int64_t>("1777777777777777777777"); test_octal("1777777777777777777777"); const bool long_is_64 = std::integral_constant::value; // avoid compiler warnings const bool long_long_is_64 = std::integral_constant::value; // avoid compiler warnings if (long_is_64) { test_octal< unsigned long>("1777777777777777777777"); test_octal< long>("1777777777777777777777"); } if (long_long_is_64) { test_octal< unsigned long long>("1777777777777777777777"); test_octal< long long>("1777777777777777777777"); } test_dec( "65535"); test_dec< int16_t>( "-1"); test_dec( "4294967295"); test_dec< int32_t>( "-1"); test_dec("18446744073709551615"); test_dec< int64_t>( "-1"); if (long_is_64) { test_dec("18446744073709551615"); test_dec< long>( "-1"); } if (long_long_is_64) { test_dec("18446744073709551615"); test_dec< long long>( "-1"); } test_hex( "FFFF"); test_hex< int16_t>( "FFFF"); test_hex( "FFFFFFFF"); test_hex< int32_t>( "FFFFFFFF"); test_hex("FFFFFFFFFFFFFFFF"); test_hex< int64_t>("FFFFFFFFFFFFFFFF"); if (long_is_64) { test_hex("FFFFFFFFFFFFFFFF"); test_hex< long>("FFFFFFFFFFFFFFFF"); } if (long_long_is_64) { test_hex("FFFFFFFFFFFFFFFF"); test_hex< long long>("FFFFFFFFFFFFFFFF"); } return 0; }