Errata for SuperTest Aelbert Cuyp 5.0

Errata for SuperTest Aelbert Cuyp 5.0

  • [5.0.33] The following test file performs a comparison of pointers across different memory spaces, which may result in an infinite loop on very specific target architectures. The impacted test file has been corrected and moved to a new location in the test suite (3/3/8/talloc.c).
    • 4/10/3/3/talloc.c
  • [5.0.32] The following test files incorrectly calculate the buffer size used for printing wide characters to a buffer. The impacted test files have been corrected.
    • C99/7/24/2/4/t1.c
    • C99/7/24/2/4/t1d.c
    • C99/7/24/2/4/t1f.c
  • [5.0.30, 5.0.31] Various test files require specializations of std::ctype<> for char16_t and char32_t, which is not mandated by the C++ standard. The impacted test files have been corrected.
  • [5.0.29] The following test file uses a variable named array, which may conflict with symbols in a standard library implementation. The impacted test file has been corrected.
    • 4/1/5/t01.c
  • [5.0.27, 5.0.28] The following test files do not always reach the intended goal of making allocation fail. The test files have been corrected.
    • Cxx17/21/6/2/1/t_handler.C
    • Cxx17/21/6/2/1/t_handler_nothrow_return.C
    • Cxx17/21/6/2/1/t_handler_throw.C
    • Cxx17/21/6/2/1/t_nothrow_nullptr.C
    • Cxx17/21/6/2/1/t_throw.C
    • Cxx17/21/6/2/1/t_throw_szmax.C
    • Cxx17/21/6/2/2/t_nothrow_nullptr.C
  • [5.0.26] The following test files do not qualify the destructors as virtual, which is required to reach the purpose of the test for C++14 and later versions of C++. The test files have been corrected.
    • iso14882/12/4/t12-4-12.C
    • iso14882/12/4/t12-4-22.C
  • [5.0.25] The following tests might invoke signed integer overflow if the wint_t type is a signed type. The test files have been corrected.
    • C99/7/25/2/1/1/t1.gen
    • C99/7/25/2/1/10/t1.gen
    • C99/7/25/2/1/11/t1.gen
    • C99/7/25/2/1/12/t1.gen
    • C99/7/25/2/1/2/t1.gen
    • C99/7/25/2/1/3/t1.gen
    • C99/7/25/2/1/4/t1.gen
    • C99/7/25/2/1/5/t1.gen
    • C99/7/25/2/1/6/t1.gen
    • C99/7/25/2/1/7/t1.gen
    • C99/7/25/2/1/8/t1.gen
    • C99/7/25/2/1/9/t1.gen
    • C99/7/25/3/1/1/t1.gen
    • C99/7/25/3/2/1/t1.gen
  • [5.0.23, 5.0.24] The following test file incorrectly uses a precision that relies on DECIMAL_DIG for the %e, %E, %f, %F conversion specifiers. The test file has been corrected.
    • C99/7/19/6/5/tsnprintfRound.c
  • [5.0.22] The following test files fail to compile if one of the optional floating-point exception macros is not defined by a standard library implementation. The test files have been corrected.
    • C99/7/19/6/5/tsnprintfRoundSign.c
    • Cxx11/18/3/2/4/t_tinynessbefore_d.C
    • Cxx11/18/3/2/4/t_tinynessbefore_f.C
    • Cxx11/18/3/2/4/t_tinynessbefore_ld.C
  • [5.0.21] The following test files do not take into account the buffer size provided to the snprintf function when verifying the output of the %n format specifier. The test files have been corrected.
    • C99/7/19/6/12/t1.c
    • C99/7/19/6/5/t5.c
    • C99/7/19/6/5/tsnprintfn.c
    • C99/7/19/6/5/tsnprintftype.c
    • C99/7/19/6/5/tsnprintftypeSizeN.c
    • C99/7/19/6/tseqpointsnprintf1.c
    • C99/7/19/6/tseqpointsnprintf2.c
    • C99/7/19/6/tseqpointvsnprintf1.c
    • C99/7/19/6/tseqpointvsnprintf2.c
  • [5.0.20] The following test files use incorrect reference values to verify the return value of std::numeric_limits<>::infinity(). The test files have been corrected.
    • Cxx11/18/3/2/4/t_limits_double_value.C
    • Cxx11/18/3/2/4/t_limits_double_value_isConstexpr.C
    • Cxx11/18/3/2/4/t_limits_float_value.C
    • Cxx11/18/3/2/4/t_limits_float_value_isConstexpr.C
    • Cxx11/18/3/2/4/t_limits_long_double_value.C
    • Cxx11/18/3/2/4/t_limits_long_double_value_isConstexpr.C
  • [5.0.19] The following test files have too strict requirements on the formatting expected as a result of using the %A and %a format specifiers. The test files have been updated to allow other correct formatting as well.
    • C99/7/19/6/1/ttypeDoubleL99.c
    • C99/7/19/6/10/ttypeDoubleL99.c
    • C99/7/19/6/12/ttypeDoubleL99.c
    • C99/7/19/6/13/ttypeDoubleL99.c
    • C99/7/19/6/3/ttypeDoubleL99.c
    • C99/7/19/6/5/ttypeDoubleL99.c
    • C99/7/19/6/6/ttypeDoubleL99.c
    • C99/7/19/6/8/ttypeDoubleL99.c
  • [5.0.18] The following test files incorrectly expect the number classification macros to expand to floating-point expressions instead of integer constant expressions. The test files have been corrected.
    • C99/7/12/tfp_infinite_macro_1.c
    • C99/7/12/tfp_nan_macro_1.c
    • C99/7/12/tfp_normal_macro.c
    • C99/7/12/tfp_subnormal_macro.c
    • C99/7/12/tfp_zero_macro.c
  • [5.0.17] The following test file includes <stdarg.h> instead of <cstdarg> when being compiled with a C++ compiler. The test file has been corrected.
    • C99/7/15/1/2/t1.c
  • [5.0.16] The following test files do not apply to C++ compilers. The test files have been corrected so they are skipped for C++ compilers.
    • C18/6/7/6/3/t_0001.c
    • C18/6/7/6/3/t_0002.c
    • C18/6/7/9/t_0001.c
  • [5.0.15] The following test files incorrectly use has_quiet_NaN as a function instead of a variable. The test files have been corrected.
    • Cxx11/18/3/2/4/t_limits_float_value.C
    • Cxx11/18/3/2/4/t_limits_double_value.C
    • Cxx11/18/3/2/4/t_limits_long_double_value.C
  • [5.0.14] The following test file uses std::less, but does not include the <functional> header. The test file has been corrected.
    • Cxx17/23/11/2/2/7/t_0002.C
  • [5.0.13] The following test file is a duplicate of another test file (Cxx11/22/4/2/2/1/t_iterator.C). The test file has been retracted from SuperTest.
    • Cxx11/22/4/2/2/1/t_iterator_fail.C
  • [5.0.12] The following test files invoke undefined behavior. The test files have been retracted from SuperTest.
    • Cxx11/21/6/x_0001.C
    • Cxx11/21/6/x_0002.C
    • Cxx11/21/6/x_0003.C
    • Cxx11/21/6/x_0004.C
  • [5.0.11] The following test file relies on implementation-defined. The test file has been corrected.
    • Cxx11/27/9/1/5/t_setbuf_1.C
  • [5.0.10] The following test files verify that a null character is written on extraction from an empty string, but the C++ standard does not require that. The test files have been corrected.
    • Cxx11/27/7/2/2/3/t_extractor_to_char_array.C
    • Cxx11/27/7/2/2/3/t_extractor_to_char_array_char16_char32.C
    • Cxx11/27/7/2/2/3/t_extractor_to_char_array_nospace.C
    • Cxx11/27/7/2/2/3/t_extractor_to_char_array_nospace_wchar_t.C
  • [5.0.9] The following test files use the return value of std::exception_ptr() when it may be a null pointer. The test files have been corrected.
    • Cxx11/30/6/5/t_set_exception.C
    • Cxx11/30/6/5/t_set_exception_at_thread_exit.C
  • [5.0.8] The following test files invoke undefined behavior. The test files have been retracted from SuperTest.
    • Cxx11/24/5/3/3/14/x_0001.C
    • Cxx11/24/5/3/3/14/x_0002.C
  • [5.0.7] The following test files do not restore the locale after changing it. The test files have been corrected.
    • C11/7/28/1/1/tsizet1.c
    • C11/7/28/1/1/tsizet2.c
    • C11/7/28/1/1/tsizet3.c
  • [5.0.6] The following test files contain classes inherited from std::char_traits, but do not satisfy all requirements of std::char_traits. The test files have been corrected.
    • Cxx11/21/4/2/t_constructor_from_input_iterator.C
    • Cxx11/24/6/3/t_istreambuf_iterator_copy_ctor.C
    • Cxx11/27/6/3/2/3/t_sbumpc.C
    • Cxx11/27/6/3/2/3/t_throw.C
    • Cxx11/27/6/3/4/3/t_xsgetn_char16_char32_eof.C
    • Cxx11/27/8/2/4/t_underflow.C
    • Cxx11/27/8/2/4/t_underflow_char.C
    • Cxx11/27/8/2/4/t_underflow_char_throw.C
  • [5.0.5] The following test files for std::abs and std::div incorrectly include the <cmath> header. The test files have been corrected.
    • Cxx11/26/8/t_abs_ll.C
    • Cxx11/26/8/t_div_ll.C
  • [5.0.4] The following test files writes files in wide mode, but reads them in narrow mode. The test files have been corrected.
    • C99/7/24/2/1/t2.c
    • C99/7/24/2/1/t3.c
    • C99/7/24/2/12/t3.gen
  • [5.0.3] The following test contains code that may be removed by compiler optimizations, contradicting the goal of the test. The test file has been rewritten to prevent optimization.
    • Cxx17/8/3/4/t_noexcept_nullptr.C
  • [5.0.2] The following test files contain variables with the identifier “open”, which may conflict with library functions with the same identifier. The test files have been corrected.
    • Cxx11/23/3/7/t_ref_swap.C
    • Cxx11/27/9/1/5/t_seekoff_open.C
  • [5.0.1] The following test file calls std::basic_ios::rdbuf() before std::basic_ios::init(), which invokes undefined behavior. The test file has been corrected.
    • Cxx11/27/5/5/3/t_move.C