================
@@ -0,0 +1,43 @@
+// RUN: %clang_cc1 -std=c++17 -triple x86_64-unknown-linux-gnu -fclangir 
-emit-cir %s -o %t.cir
+// RUN: FileCheck --check-prefix=CIR --input-file=%t.cir %s
+// RUN: %clang_cc1 -std=c++17 -triple x86_64-unknown-linux-gnu -fclangir 
-emit-llvm %s -o %t-cir.ll
+// RUN: FileCheck --check-prefix=LLVM --input-file=%t-cir.ll %s
+// RUN: %clang_cc1 -std=c++17 -triple x86_64-unknown-linux-gnu -emit-llvm %s 
-o %t.ll
+// RUN: FileCheck --check-prefix=OGCG --input-file=%t.ll %s
+
+// C++17 added aligned-allocation overloads of operator new / delete:
+//   void* operator new   (std::size_t, std::align_val_t);
+//   void  operator delete(void*, std::size_t, std::align_val_t);
+// These are called when allocating an over-aligned type.  CIRGen
+// previously errorNYI'd the new-side path and the cleanup-during-new
+// path (the delete-side path was already implemented).  This test pins
+// the alignment passing on both sides and cross-checks against OGCG.
+
+struct alignas(64) Big {
+  char data[64];
----------------
erichkeane wrote:

Can we choose different values than 64, so that they show up meaningfully in 
the check-lines? 

https://github.com/llvm/llvm-project/pull/197094
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to