1*fcf107d4SArtem Dergachev //RUN: %clang_analyze_cc1 -std=c++17 -analyze -analyzer-checker=core -verify %s
2*fcf107d4SArtem Dergachev 
3*fcf107d4SArtem Dergachev // expected-no-diagnostics
4*fcf107d4SArtem Dergachev 
5*fcf107d4SArtem Dergachev // Notice the weird alignment.
6*fcf107d4SArtem Dergachev struct alignas(1024) S {};
7*fcf107d4SArtem Dergachev 
foo()8*fcf107d4SArtem Dergachev void foo() {
9*fcf107d4SArtem Dergachev   // Operator new() here is the C++17 aligned new that takes two arguments:
10*fcf107d4SArtem Dergachev   // size and alignment. Size is passed implicitly as usual, and alignment
11*fcf107d4SArtem Dergachev   // is passed implicitly in a similar manner.
12*fcf107d4SArtem Dergachev   S *s = new S; // no-warning
13*fcf107d4SArtem Dergachev   delete s;
14*fcf107d4SArtem Dergachev }
15