diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2012-01-05 22:21:29 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-01-05 22:21:29 +0000 |
commit | c3e686a350915a66b0761fa825fc162ef0010c3e (patch) | |
tree | f50f930639a48ee9746a24d75d4a228ef9bf935a /gcc/testsuite | |
parent | 2d130b315dfc09b83b40d41447d5eb4a617843c6 (diff) | |
download | gcc-c3e686a350915a66b0761fa825fc162ef0010c3e.zip gcc-c3e686a350915a66b0761fa825fc162ef0010c3e.tar.gz gcc-c3e686a350915a66b0761fa825fc162ef0010c3e.tar.bz2 |
re PR tree-optimization/51315 (unaligned memory accesses generated with -ftree-sra)
PR tree-optimization/51315
* tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
(build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
From-SVN: r182932
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20120105-1.c | 24 |
2 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3821d7c..5fdcd11 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ + +2012-01-05 Eric Botcazou <ebotcazou@adacore.com> + + * gcc.c-torture/execute/20120104-1.c: New test. + 2012-01-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/PR48946 diff --git a/gcc/testsuite/gcc.c-torture/execute/20120105-1.c b/gcc/testsuite/gcc.c-torture/execute/20120105-1.c new file mode 100644 index 0000000..115ba15 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20120105-1.c @@ -0,0 +1,24 @@ +struct __attribute__((packed)) S +{ + int a, b, c; +}; + +static int __attribute__ ((noinline,noclone)) +extract(const char *p) +{ + struct S s; + __builtin_memcpy (&s, p, sizeof(struct S)); + return s.a; +} + +volatile int i; + +int main (void) +{ + char p[sizeof(struct S) + 1]; + + __builtin_memset (p, 0, sizeof(struct S) + 1); + i = extract (p + 1); + + return 0; +} |