re PR tree-optimization/78558 (Incorrect loop optimization leads to crash)
PR tree-optimization/78558 * gcc.dg/vect/pr78558.c: New test. From-SVN: r253661
This commit is contained in:
parent
1d5b9dd5c6
commit
69c328ec60
2 changed files with 47 additions and 0 deletions
|
@ -1,5 +1,8 @@
|
|||
2017-10-11 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/78558
|
||||
* gcc.dg/vect/pr78558.c: New test.
|
||||
|
||||
PR c++/82414
|
||||
* g++.dg/lto/pr82414_0.C: New test.
|
||||
|
||||
|
|
44
gcc/testsuite/gcc.dg/vect/pr78558.c
Normal file
44
gcc/testsuite/gcc.dg/vect/pr78558.c
Normal file
|
@ -0,0 +1,44 @@
|
|||
/* PR tree-optimization/78558 */
|
||||
|
||||
#include "tree-vect.h"
|
||||
|
||||
struct S
|
||||
{
|
||||
char p[48];
|
||||
unsigned long long q, r, s;
|
||||
} s[50];
|
||||
|
||||
struct D
|
||||
{
|
||||
unsigned long long q, r;
|
||||
} d[50];
|
||||
|
||||
void
|
||||
foo (void)
|
||||
{
|
||||
unsigned long i;
|
||||
for (i = 0; i < 50; ++i)
|
||||
{
|
||||
d[i].q = s[i].q;
|
||||
d[i].r = s[i].r;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
check_vect ();
|
||||
unsigned long i;
|
||||
for (i = 0; i < 50; ++i)
|
||||
{
|
||||
s[i].q = i;
|
||||
s[i].r = 50 * i;
|
||||
}
|
||||
asm volatile ("" : : "g" (s), "g" (d) : "memory");
|
||||
foo ();
|
||||
asm volatile ("" : : "g" (s), "g" (d) : "memory");
|
||||
for (i = 0; i < 50; ++i)
|
||||
if (d[i].q != i || d[i].r != 50 * i)
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Reference in a new issue