27 lines
459 B
C
27 lines
459 B
C
// 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;
|
|
}
|