Hi! Richard noticed 3 misplaced tests - C++ tests don't belong into gcc.target/ which tests just C.
I've bootstrapped/regtested this on x86_64-linux and i686-linux and committed to trunk as obvious. 2016-11-07 Jakub Jelinek <ja...@redhat.com> PR middle-end/71529 * gcc.target/i386/pr71529.C: Moved to ... * g++.dg/opt/pr71529.C: ... here. New test. Guard for i?86/x86_64. PR target/64411 * gcc.target/i386/pr64411.C: Moved to ... * g++.dg/opt/pr64411.C: ... here. New test. Guard for i?86/x86_64 lp64. PR target/65105 * gcc.target/i386/pr65105-4.C: Moved to ... * g++.dg/opt/pr65105-4.C: ... here. New test. Guard for i?86/x86_64. Run into compile test rather than execute test. --- gcc/testsuite/gcc.target/i386/pr71529.C.jj 2016-06-15 19:09:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/pr71529.C 2016-11-07 10:56:21.835713206 +0100 @@ -1,22 +0,0 @@ -/* PR71529 */ -/* { dg-do compile { target { ! x32 } } } */ -/* { dg-options "-fcheck-pointer-bounds -mmpx -O2" } */ - -class c1 -{ - public: - virtual ~c1 (); -}; - -class c2 -{ - public: - virtual ~c2 (); -}; - -class c3 : c1, c2 { }; - -int main (int, char **) -{ - c3 obj; -} --- gcc/testsuite/gcc.target/i386/pr64411.C.jj 2016-03-15 17:10:18.000000000 +0100 +++ gcc/testsuite/gcc.target/i386/pr64411.C 2016-11-07 10:54:34.485101960 +0100 @@ -1,27 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-Os -mcmodel=medium -fPIC -fschedule-insns -fselective-scheduling" } */ - -typedef __SIZE_TYPE__ size_t; - -extern "C" long strtol () - { return 0; } - -static struct { - void *sp[2]; -} info; - -union S813 -{ - void * c[5]; -} -s813; - -S813 a813[5]; -S813 check813 (S813, S813 *, S813); - -void checkx813 () -{ - __builtin_memset (&s813, '\0', sizeof (s813)); - __builtin_memset (&info, '\0', sizeof (info)); - check813 (s813, &a813[1], a813[2]); -} --- gcc/testsuite/gcc.target/i386/pr65105-4.C.jj 2015-10-11 19:11:14.214767354 +0200 +++ gcc/testsuite/gcc.target/i386/pr65105-4.C 2016-11-07 10:51:05.333808029 +0100 @@ -1,19 +0,0 @@ -/* PR target/pr65105 */ -/* { dg-do run { target { ia32 } } } */ -/* { dg-options "-O2 -march=slm" } */ - -struct s { - long long l1, l2, l3, l4, l5; -} *a; -long long b; -long long fn1() -{ - try - { - b = (a->l1 | a->l2 | a->l3 | a->l4 | a->l5); - return a->l1; - } - catch (int) - { - } -} --- gcc/testsuite/g++.dg/opt/pr71529.C.jj 2016-11-07 10:55:34.151330081 +0100 +++ gcc/testsuite/g++.dg/opt/pr71529.C 2016-11-07 10:56:13.319823373 +0100 @@ -0,0 +1,22 @@ +// PR middle-end/71529 +// { dg-do compile { target { { i?86-*-* x86_64-*-* } && { ! x32 } } } } +// { dg-options "-fcheck-pointer-bounds -mmpx -O2" } + +class c1 +{ + public: + virtual ~c1 (); +}; + +class c2 +{ + public: + virtual ~c2 (); +}; + +class c3 : c1, c2 { }; + +int main (int, char **) +{ + c3 obj; +} --- gcc/testsuite/g++.dg/opt/pr64411.C.jj 2016-11-07 10:51:38.557378145 +0100 +++ gcc/testsuite/g++.dg/opt/pr64411.C 2016-11-07 10:54:13.115378412 +0100 @@ -0,0 +1,28 @@ +// PR target/64411 +// { dg-do compile { target { { i?86-*-* x86_64-*-* } && lp64 } } } +// { dg-options "-Os -mcmodel=medium -fPIC -fschedule-insns -fselective-scheduling" } + +typedef __SIZE_TYPE__ size_t; + +extern "C" long strtol () + { return 0; } + +static struct { + void *sp[2]; +} info; + +union S813 +{ + void * c[5]; +} +s813; + +S813 a813[5]; +S813 check813 (S813, S813 *, S813); + +void checkx813 () +{ + __builtin_memset (&s813, '\0', sizeof (s813)); + __builtin_memset (&info, '\0', sizeof (info)); + check813 (s813, &a813[1], a813[2]); +} --- gcc/testsuite/g++.dg/opt/pr65105-4.C.jj 2016-11-07 10:48:58.587448018 +0100 +++ gcc/testsuite/g++.dg/opt/pr65105-4.C 2016-11-07 10:50:52.066979690 +0100 @@ -0,0 +1,19 @@ +// PR target/65105 +// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } } +// { dg-options "-O2 -march=slm" } + +struct s { + long long l1, l2, l3, l4, l5; +} *a; +long long b; +long long fn1() +{ + try + { + b = (a->l1 | a->l2 | a->l3 | a->l4 | a->l5); + return a->l1; + } + catch (int) + { + } +} Jakub