// RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -Wover-aligned %s -isystem %S/Inputs -verify=precxx17 %std_cxx11-14 // RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -Wover-aligned %s -isystem %S/Inputs -verify %std_cxx17- // expected-no-diagnostics // This test ensures that we still get the warning even if we #include // where the header here simulates . #include namespace test1 { struct Test { template struct SeparateCacheLines { T data; } __attribute__((aligned(256))); SeparateCacheLines high_contention_data[10]; }; void helper() { Test t; new Test; // precxx17-warning {{type 'Test' requires 256 bytes of alignment and the default allocator only guarantees}} new Test[10]; // precxx17-warning {{type 'Test' requires 256 bytes of alignment and the default allocator only guarantees}} } } namespace test2 { struct helper { int i __attribute__((aligned(256))); }; struct Placement { Placement() { new (d) helper(); } helper *d; }; }