// 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; | |
} |