| // RUN: %clang_analyze_cc1 -verify %s \ | |
| // RUN: -analyzer-checker=core,unix.Malloc,alpha.core.CastSize | |
| typedef typeof(sizeof(int)) size_t; | |
| void *malloc(size_t); | |
| struct s1 { | |
| int a; | |
| char x[]; | |
| }; | |
| struct s2 { | |
| int a[100]; | |
| char x[]; | |
| }; | |
| union u { | |
| struct s1 a; | |
| struct s2 b; | |
| }; | |
| static union u *test() { | |
| union u *req; | |
| req = malloc(5); // expected-warning{{Cast a region whose size is not a multiple of the destination type size}} | |
| return req; | |
| } |