Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / SemaCXX / warn-new-overaligned-3.cpp
blob8d071b4d93a74554ce4bfd6858ed7071800c5070
1 // RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -Wover-aligned %s -isystem %S/Inputs -verify=precxx17 %std_cxx11-14
2 // RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -Wover-aligned %s -isystem %S/Inputs -verify %std_cxx17-
4 // expected-no-diagnostics
6 // This test ensures that we still get the warning even if we #include <new>
7 // where the header here simulates <new>.
8 #include <warn-new-overaligned-3.h>
10 namespace test1 {
11 struct Test {
12 template <typename T>
13 struct SeparateCacheLines {
14 T data;
15 } __attribute__((aligned(256)));
17 SeparateCacheLines<int> high_contention_data[10];
20 void helper() {
21 Test t;
22 new Test; // precxx17-warning {{type 'Test' requires 256 bytes of alignment and the default allocator only guarantees}}
23 new Test[10]; // precxx17-warning {{type 'Test' requires 256 bytes of alignment and the default allocator only guarantees}}
27 namespace test2 {
28 struct helper { int i __attribute__((aligned(256))); };
30 struct Placement {
31 Placement() {
32 new (d) helper();
34 helper *d;