diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-04-23 07:28:16 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-04-23 07:28:16 +0200 |
commit | d6c1a7a7c779f4f3f4786c6dcbfed62e7347011a (patch) | |
tree | 4eaa1e2fc65bc4f623e8ae74f252407c980358e6 /gcc | |
parent | 0e94da57dc1e5712c60a876545a0c09a4d672002 (diff) | |
download | gcc-d6c1a7a7c779f4f3f4786c6dcbfed62e7347011a.zip gcc-d6c1a7a7c779f4f3f4786c6dcbfed62e7347011a.tar.gz gcc-d6c1a7a7c779f4f3f4786c6dcbfed62e7347011a.tar.bz2 |
re PR sanitizer/70712 (False positive from AddressSanitizer with use of 'alignas')
PR sanitizer/70712
* cfgexpand.c (expand_stack_vars): Fix typo.
* c-c++-common/asan/pr70712.c: New test.
From-SVN: r235384
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfgexpand.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/asan/pr70712.c | 32 |
4 files changed, 43 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ff68ee8..d2e1555 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-04-23 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/70712 + * cfgexpand.c (expand_stack_vars): Fix typo. + 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com> * system.h (list, map, set, vector): Include conditionally. diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 3ed2270..21f21c9 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -1137,7 +1137,7 @@ expand_stack_vars (bool (*pred) (size_t), struct stack_vars_data *data) HOST_WIDE_INT prev_offset = align_base (frame_offset, MAX (alignb, ASAN_RED_ZONE_SIZE), - FRAME_GROWS_DOWNWARD); + !FRAME_GROWS_DOWNWARD); tree repr_decl = NULL_TREE; offset = alloc_stack_frame_space (stack_vars[i].size diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6ffb14e..82e814a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-04-23 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/70712 + * c-c++-common/asan/pr70712.c: New test. + 2016-04-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * .gitattributes: New file. diff --git a/gcc/testsuite/c-c++-common/asan/pr70712.c b/gcc/testsuite/c-c++-common/asan/pr70712.c new file mode 100644 index 0000000..74a6a75 --- /dev/null +++ b/gcc/testsuite/c-c++-common/asan/pr70712.c @@ -0,0 +1,32 @@ +/* PR sanitizer/70712 */ +/* { dg-do run } */ + +struct __attribute__((aligned (64))) S +{ + char s[4]; +}; + +struct T +{ + char t[8]; + char u[480]; + +}; + +__attribute__((noinline, noclone)) void +foo (struct T *p, struct S *q) +{ + __builtin_memset (p->t, '\0', sizeof (p->t)); + __builtin_memset (p->u, '\0', sizeof (p->u)); + __builtin_memset (q->s, '\0', sizeof (q->s)); +} + +int +main () +{ + struct S s; + struct T t; + foo (&t, &s); + asm volatile ("" : : "r" (&t), "r" (&s) : "memory"); + return 0; +} |