re PR middle-end/36445 (ICE in expand_expr_real_1 with -O1 with vector registers)
2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com> PR middle-end/36445 * g++.dg/torture/pr36445.C: New test. From-SVN: r139947
This commit is contained in:
parent
c0ab1df3bb
commit
e8f97b70cb
2 changed files with 27 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||
|
||||
PR middle-end/36445
|
||||
* g++.dg/torture/pr36445.C: New test.
|
||||
|
||||
2008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||
|
||||
PR middle-end/37293
|
||||
|
|
22
gcc/testsuite/g++.dg/torture/pr36445.C
Normal file
22
gcc/testsuite/g++.dg/torture/pr36445.C
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* { dg-do compile } */
|
||||
// This used to fail as we would try to expand a VCE where one side had
|
||||
// a mode of BLKmode and the other side was a vector mode.
|
||||
#define vector __attribute__((vector_size(16) ))
|
||||
struct struct1 {
|
||||
union { float a[3]; } vmx;
|
||||
struct struct2 {
|
||||
struct2(const struct2& r) {}
|
||||
} w;
|
||||
} __attribute__((aligned(16)));
|
||||
struct struct3 {
|
||||
vector float vmx;
|
||||
operator const struct1& () const{
|
||||
return *reinterpret_cast<const struct1*>(this);
|
||||
}
|
||||
};
|
||||
struct3 func3( struct3 V1);
|
||||
struct3 func2( void );
|
||||
void func1( ) {
|
||||
struct1 vVec = func2() ;
|
||||
func3 ( (struct3&)vVec );
|
||||
}
|
Loading…
Add table
Reference in a new issue