22 lines
560 B
C
22 lines
560 B
C
|
// RUN: %clang_cc1 -verify -Warray-bounds-pointer-arithmetic %s
|
||
|
|
||
|
// Test case from PR10615
|
||
|
struct ext2_super_block{
|
||
|
unsigned char s_uuid[8]; // expected-note {{declared here}}
|
||
|
};
|
||
|
void* ext2_statfs (struct ext2_super_block *es,int a)
|
||
|
{
|
||
|
return (void *)es->s_uuid + sizeof(int); // no-warning
|
||
|
}
|
||
|
void* broken (struct ext2_super_block *es,int a)
|
||
|
{
|
||
|
return (void *)es->s_uuid + 80; // expected-warning {{refers past the end of the array}}
|
||
|
}
|
||
|
|
||
|
// Test case reduced from PR11594
|
||
|
struct S { int n; };
|
||
|
void pr11594(struct S *s) {
|
||
|
int a[10];
|
||
|
int *p = a - s->n;
|
||
|
}
|