[libcxx-commits] [libcxx] 3dce6b3 - [libcxx] [test] Fix the aligned storage test to work on Windows
    Martin Storsjö via libcxx-commits 
    libcxx-commits at lists.llvm.org
       
    Thu Feb 10 01:00:29 PST 2022
    
    
  
Author: Martin Storsjö
Date: 2022-02-10T10:59:52+02:00
New Revision: 3dce6b329ce3efa1d51f1101a08cff31ecdbeb12
URL: https://github.com/llvm/llvm-project/commit/3dce6b329ce3efa1d51f1101a08cff31ecdbeb12
DIFF: https://github.com/llvm/llvm-project/commit/3dce6b329ce3efa1d51f1101a08cff31ecdbeb12.diff
LOG: [libcxx] [test] Fix the aligned storage test to work on Windows
Don't test alignment over 8 KB, which isn't supported on that
platform.
Differential Revision: https://reviews.llvm.org/D119348
Added: 
    
Modified: 
    libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/aligned_storage.pass.cpp
Removed: 
    
################################################################################
diff  --git a/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/aligned_storage.pass.cpp b/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/aligned_storage.pass.cpp
index 592a34a513d26..890d0d68eb487 100644
--- a/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/aligned_storage.pass.cpp
+++ b/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/aligned_storage.pass.cpp
@@ -6,8 +6,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-// XFAIL: LIBCXX-WINDOWS-FIXME
-
 // type_traits
 
 // aligned_storage
@@ -313,6 +311,16 @@ int main(int, char**)
     static_assert(std::alignment_of<T1>::value == 8, "");
     static_assert(sizeof(T1) == 16, "");
     }
+  {
+    const int Align = 8192;
+    typedef typename std::aligned_storage<1, Align>::type T1;
+    static_assert(std::is_trivial<T1>::value, "");
+    static_assert(std::is_standard_layout<T1>::value, "");
+    static_assert(std::alignment_of<T1>::value == Align, "");
+    static_assert(sizeof(T1) == Align, "");
+  }
+#ifndef _WIN32
+  // Windows only supports alignment up to 8192 bytes.
   {
     const int Align = 65536;
     typedef typename std::aligned_storage<1, Align>::type T1;
@@ -321,6 +329,7 @@ int main(int, char**)
     static_assert(std::alignment_of<T1>::value == Align, "");
     static_assert(sizeof(T1) == Align, "");
   }
+#endif
 
   return 0;
 }
        
    
    
More information about the libcxx-commits
mailing list