[libcxx-commits] [libcxx] 2744c2e - [libcxx] Disable failing test for no-exceptions build

Oliver Stannard via libcxx-commits libcxx-commits at lists.llvm.org
Tue Sep 15 06:28:41 PDT 2020


Author: Oliver Stannard
Date: 2020-09-15T14:28:32+01:00
New Revision: 2744c2e2957221c8e9379e2232790c3e56efd90d

URL: https://github.com/llvm/llvm-project/commit/2744c2e2957221c8e9379e2232790c3e56efd90d
DIFF: https://github.com/llvm/llvm-project/commit/2744c2e2957221c8e9379e2232790c3e56efd90d.diff

LOG: [libcxx] Disable failing test for no-exceptions build

This test tries to create a 2 GiB std::string, catching the bad_alloc
exception if the allocation fails. However, for no-exceptions builds
there is no way for the error to be reported, so this crashes with a
null pointer dereference.

Differential revision: https://reviews.llvm.org/D87682

Added: 
    

Modified: 
    libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp b/libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp
index eee48f3dfdb12..e34dbc999592f 100644
--- a/libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp
+++ b/libcxx/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp
@@ -15,6 +15,10 @@
 //
 // REQUIRES: long_tests
 
+// Unsupported for no-exceptions builds because they have no way to report an
+// allocation failure when attempting to allocate the 2GiB string.
+// UNSUPPORTED: no-exceptions
+
 #include <sstream>
 #include <cassert>
 #include "test_macros.h"
@@ -28,18 +32,14 @@ struct SB : std::stringbuf
 
 int main(int, char**)
 {
-#ifndef TEST_HAS_NO_EXCEPTIONS
     try {
-#endif
         std::string str(2147483648, 'a');
         SB sb;
         sb.str(str);
         assert(sb.pubpbase() <= sb.pubpptr());
-#ifndef TEST_HAS_NO_EXCEPTIONS
     }
     catch (const std::length_error &) {} // maybe the string can't take 2GB
     catch (const std::bad_alloc    &) {} // maybe we don't have enough RAM
-#endif
 
   return 0;
 }


        


More information about the libcxx-commits mailing list