diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-12-16 19:31:14 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-12-16 19:31:14 +0000 |
commit | 25b009a9d2a79929112d3c28c7dd1730bf5246c8 (patch) | |
tree | dc2108ccb1983383eb86a78e2b333c41dd0eced4 /test/Sema/array-bounds-ptr-arith.c | |
parent | 08d6e032a2a0a8656d12b3b7b93942987bb12eb7 (diff) |
PR11594: Don't blindly build a UnaryOperator UO_Minus on an expression which
might not be an rvalue when checking array accesses. Instead, pass through a
flag indicating the array index is negated.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146753 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Sema/array-bounds-ptr-arith.c')
-rw-r--r-- | test/Sema/array-bounds-ptr-arith.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/test/Sema/array-bounds-ptr-arith.c b/test/Sema/array-bounds-ptr-arith.c index c0e0d0ea78..022335bd37 100644 --- a/test/Sema/array-bounds-ptr-arith.c +++ b/test/Sema/array-bounds-ptr-arith.c @@ -12,3 +12,10 @@ 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; +} |