diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-04-27 12:23:50 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-04-27 12:23:50 +0000 |
commit | 1d81597a0ceeb16c779da8dd7464bb3830fe5403 (patch) | |
tree | 0c44da9bab21f5f0370013f456754897427d3fe7 | |
parent | ebe504eee5181b43494bcd06d2f0683ba5f1eb8c (diff) |
Backported from mainline
2016-04-23 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/70712
* cfgexpand.c (expand_stack_vars): Fix typo.
* c-c++-common/asan/pr70712.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@235490 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfgexpand.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/asan/pr70712.c | 32 |
4 files changed, 46 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fd14b2bddcf..61cc7fdf6df 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,11 @@ 2016-04-27 Jakub Jelinek <jakub@redhat.com> Backported from mainline + 2016-04-23 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/70712 + * cfgexpand.c (expand_stack_vars): Fix typo. + 2016-04-19 Jakub Jelinek <jakub@redhat.com> PR middle-end/70680 diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 1341c14ce2b..b612293b1a7 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 0097ff61b4d..046f052b299 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2016-04-27 Jakub Jelinek <jakub@redhat.com> + + Backported from mainline + 2016-04-23 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/70712 + * c-c++-common/asan/pr70712.c: New test. + 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com> PR target/70728 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 00000000000..74a6a75f20c --- /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; +} |