| // RUN: %clang_analyze_cc1 -std=c++14 -triple x86_64-linux-gnu -analyzer-checker=optin.performance -analyzer-config optin.performance.Padding:AllowedPad=2 -verify %s | |
| class Empty {}; // no-warning | |
| // expected-warning@+1{{Excessive padding in 'struct NoUniqueAddressWarn1' (6 padding}} | |
| struct NoUniqueAddressWarn1 { | |
| char c1; | |
| [[no_unique_address]] Empty empty; | |
| int i; | |
| char c2; | |
| }; | |
| // expected-warning@+1{{Excessive padding in 'struct NoUniqueAddressWarn2' (6 padding}} | |
| struct NoUniqueAddressWarn2 { | |
| char c1; | |
| [[no_unique_address]] Empty e1, e2; | |
| int i; | |
| char c2; | |
| }; | |
| struct NoUniqueAddressNoWarn1 { | |
| char c1; | |
| [[no_unique_address]] Empty empty; | |
| char c2; | |
| }; | |
| struct NoUniqueAddressNoWarn2 { | |
| char c1; | |
| [[no_unique_address]] Empty e1, e2; | |
| }; |