[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang / test / SemaCXX / warn-new-overaligned-3.cpp
blobba14303fb9d8464785fe7231165cb720bc6405d1
1 // RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -Wover-aligned %s -isystem %S/Inputs -verify
3 // This test ensures that we still get the warning even if we #include <new>
4 // where the header here simulates <new>.
5 #include <warn-new-overaligned-3.h>
7 namespace test1 {
8 struct Test {
9 template <typename T>
10 struct SeparateCacheLines {
11 T data;
12 } __attribute__((aligned(256)));
14 SeparateCacheLines<int> high_contention_data[10];
17 void helper() {
18 Test t;
19 new Test; // expected-warning {{type 'Test' requires 256 bytes of alignment and the default allocator only guarantees}}
20 new Test[10]; // expected-warning {{type 'Test' requires 256 bytes of alignment and the default allocator only guarantees}}
24 namespace test2 {
25 struct helper { int i __attribute__((aligned(256))); };
27 struct Placement {
28 Placement() {
29 new (d) helper();
31 helper *d;