There is no point expanding the format string if we're just going to abort instead of throw an exception. And for freestanding or non-verbose builds we shouldn't do it either, to reduce the binary size. Signed-off-by: Jonathan Wakely libstdc++-v3/ChangeLog: * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not expand the format string for freestanding, or non-vebose, or if we're just going to abort anyway. * src/c++11/snprintf_lite.cc: Remove unused header and declaration. Tested powerpc64le-linux. Committed to trunk.