[ARM/FDPIC,v5,18/21,ARM,testsuite] FDPIC: Enable tests on pie_enabled targets

Message ID 20190515124006.25840-19-christophe.lyon@st.com
State Superseded
Headers show
Series
  • FDPIC ABI for ARM
Related show

Commit Message

Christophe Lyon May 15, 2019, 12:39 p.m.
Some tests have the "nonpic" guard, but pass on
arm*-*-uclinuxfdpiceabi because it is in PIE mode by default. Rather
than adding this target to all these tests, add the "pie_enabled"
effective target.

2019-XX-XX  Christophe Lyon  <christophe.lyon@st.com>

	gcc/testsuite/
	* g++.dg/cpp0x/noexcept03.C: Add pie_enabled.
	* g++.dg/ipa/devirt-c-7.C: Likewise.
	* g++.dg/ipa/ivinline-1.C: Likewise.
	* g++.dg/ipa/ivinline-2.C: Likewise.
	* g++.dg/ipa/ivinline-3.C: Likewise.
	* g++.dg/ipa/ivinline-4.C: Likewise.
	* g++.dg/ipa/ivinline-5.C: Likewise.
	* g++.dg/ipa/ivinline-7.C: Likewise.
	* g++.dg/ipa/ivinline-8.C: Likewise.
	* g++.dg/ipa/ivinline-9.C: Likewise.
	* g++.dg/tls/pr79288.C: Likewise.
	* gcc.dg/addr_equal-1.c: Likewise.
	* gcc.dg/const-1.c: Likewise.
	* gcc.dg/ipa/pure-const-1.c: Likewise.
	* gcc.dg/noreturn-8.c: Likewise.
	* gcc.dg/pr33826.c: Likewise.
	* gcc.dg/torture/ipa-pta-1.c: Likewise.
	* gcc.dg/tree-ssa/alias-2.c: Likewise.
	* gcc.dg/tree-ssa/ipa-split-5.c: Likewise.
	* gcc.dg/tree-ssa/loadpre6.c: Likewise.
	* gcc.dg/uninit-19.c: Likewise.

Change-Id: I1a0d836b892c23891f739fccdc467d0f354ab82c

-- 
2.6.3

Comments

Kyrill Tkachov July 19, 2019, 8:57 a.m. | #1
On 5/15/19 1:39 PM, Christophe Lyon wrote:
> Some tests have the "nonpic" guard, but pass on

> arm*-*-uclinuxfdpiceabi because it is in PIE mode by default. Rather

> than adding this target to all these tests, add the "pie_enabled"

> effective target.

>

> 2019-XX-XX  Christophe Lyon  <christophe.lyon@st.com>

>

>         gcc/testsuite/

>         * g++.dg/cpp0x/noexcept03.C: Add pie_enabled.

>         * g++.dg/ipa/devirt-c-7.C: Likewise.

>         * g++.dg/ipa/ivinline-1.C: Likewise.

>         * g++.dg/ipa/ivinline-2.C: Likewise.

>         * g++.dg/ipa/ivinline-3.C: Likewise.

>         * g++.dg/ipa/ivinline-4.C: Likewise.

>         * g++.dg/ipa/ivinline-5.C: Likewise.

>         * g++.dg/ipa/ivinline-7.C: Likewise.

>         * g++.dg/ipa/ivinline-8.C: Likewise.

>         * g++.dg/ipa/ivinline-9.C: Likewise.

>         * g++.dg/tls/pr79288.C: Likewise.

>         * gcc.dg/addr_equal-1.c: Likewise.

>         * gcc.dg/const-1.c: Likewise.

>         * gcc.dg/ipa/pure-const-1.c: Likewise.

>         * gcc.dg/noreturn-8.c: Likewise.

>         * gcc.dg/pr33826.c: Likewise.

>         * gcc.dg/torture/ipa-pta-1.c: Likewise.

>         * gcc.dg/tree-ssa/alias-2.c: Likewise.

>         * gcc.dg/tree-ssa/ipa-split-5.c: Likewise.

>         * gcc.dg/tree-ssa/loadpre6.c: Likewise.

>         * gcc.dg/uninit-19.c: Likewise.

>

Looks sensible, but this is not an arm-specific patch.

CC'ing testsuite maintainers.

Thanks,

Kyrill


> Change-Id: I1a0d836b892c23891f739fccdc467d0f354ab82c

>

> diff --git a/gcc/testsuite/g++.dg/cpp0x/noexcept03.C 

> b/gcc/testsuite/g++.dg/cpp0x/noexcept03.C

> index 2d37867..906a44d 100644

> --- a/gcc/testsuite/g++.dg/cpp0x/noexcept03.C

> +++ b/gcc/testsuite/g++.dg/cpp0x/noexcept03.C

> @@ -1,6 +1,6 @@

>  // Runtime test for noexcept-specification.

>  // { dg-options "-Wnoexcept" }

> -// { dg-do run { target nonpic } }

> +// { dg-do run { target { nonpic || pie_enabled } } }

>  // { dg-require-effective-target c++11 }

>

>  #include <exception>

> diff --git a/gcc/testsuite/g++.dg/ipa/devirt-c-7.C 

> b/gcc/testsuite/g++.dg/ipa/devirt-c-7.C

> index 2e76cbe..efb65c2 100644

> --- a/gcc/testsuite/g++.dg/ipa/devirt-c-7.C

> +++ b/gcc/testsuite/g++.dg/ipa/devirt-c-7.C

> @@ -1,7 +1,6 @@

>  /* Verify that ipa-cp will not get confused by placement new 

> constructing an

>     object within another one when looking for dynamic type change .  */

> -/* { dg-do run } */

> -/* { dg-require-effective-target nonpic } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -Wno-attributes"  } */

>

>  extern "C" void abort (void);

> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-1.C 

> b/gcc/testsuite/g++.dg/ipa/ivinline-1.C

> index 9b10d20..2d988bc 100644

> --- a/gcc/testsuite/g++.dg/ipa/ivinline-1.C

> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-1.C

> @@ -1,6 +1,6 @@

>  /* Verify that simple virtual calls are inlined even without early

>     inlining.  */

> -/* { dg-do run { target nonpic } } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining 

> -fno-ipa-cp"  } */

>

>  extern "C" void abort (void);

> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-2.C 

> b/gcc/testsuite/g++.dg/ipa/ivinline-2.C

> index 21cd46f..d978638 100644

> --- a/gcc/testsuite/g++.dg/ipa/ivinline-2.C

> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-2.C

> @@ -1,6 +1,6 @@

>  /* Verify that simple virtual calls using this pointer are inlined

>     even without early inlining..  */

> -/* { dg-do run { target nonpic } } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining 

> -fno-ipa-cp"  } */

>

>  extern "C" void abort (void);

> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-3.C 

> b/gcc/testsuite/g++.dg/ipa/ivinline-3.C

> index 1e24644..f756a16 100644

> --- a/gcc/testsuite/g++.dg/ipa/ivinline-3.C

> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-3.C

> @@ -1,6 +1,6 @@

>  /* Verify that simple virtual calls on an object refrence are inlined

>     even without early inlining.  */

> -/* { dg-do run { target nonpic } } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining 

> -fno-ipa-cp"  } */

>

>  extern "C" void abort (void);

> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-4.C 

> b/gcc/testsuite/g++.dg/ipa/ivinline-4.C

> index cf0d980..5fbd3ef 100644

> --- a/gcc/testsuite/g++.dg/ipa/ivinline-4.C

> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-4.C

> @@ -1,7 +1,7 @@

>  /* Verify that simple virtual calls are inlined even without early

>     inlining, even when a typecast to an ancestor is involved along the

>     way.  */

> -/* { dg-do run { target nonpic } } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining 

> -fno-ipa-cp"  } */

>

>  extern "C" void abort (void);

> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-5.C 

> b/gcc/testsuite/g++.dg/ipa/ivinline-5.C

> index f15ebf2..6c19907 100644

> --- a/gcc/testsuite/g++.dg/ipa/ivinline-5.C

> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-5.C

> @@ -1,6 +1,6 @@

>  /* Verify that virtual call inlining does not pick a wrong method when

>     there is a user defined ancestor in an object.  */

> -/* { dg-do run { target nonpic } } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining 

> -fno-ipa-cp"  } */

>

>  extern "C" void abort (void);

> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-7.C 

> b/gcc/testsuite/g++.dg/ipa/ivinline-7.C

> index a7b41e7..fd6aba6 100644

> --- a/gcc/testsuite/g++.dg/ipa/ivinline-7.C

> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-7.C

> @@ -1,7 +1,7 @@

>  /* Verify that simple virtual calls are inlined even without early

>     inlining, even when a typecast to an ancestor is involved along the

>     way and that ancestor is not the first one with virtual functions.  */

> -/* { dg-do run { target nonpic } } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining 

> -fno-ipa-cp"  } */

>

>  extern "C" void abort (void);

> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-8.C 

> b/gcc/testsuite/g++.dg/ipa/ivinline-8.C

> index 5c3299f..bc81abf 100644

> --- a/gcc/testsuite/g++.dg/ipa/ivinline-8.C

> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-8.C

> @@ -1,6 +1,6 @@

>  /* Verify that virtual calls are inlined (ithout early inlining) even

>     when their caller is itself indirectly inlined.  */

> -/* { dg-do run { target nonpic } } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining 

> -fno-ipa-cp"  } */

>

>  extern "C" void abort (void);

> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-9.C 

> b/gcc/testsuite/g++.dg/ipa/ivinline-9.C

> index 41b2381..0917f15 100644

> --- a/gcc/testsuite/g++.dg/ipa/ivinline-9.C

> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-9.C

> @@ -2,7 +2,7 @@

>     inlining, even when a typecast to an ancestor is involved along the

>     way and that ancestor itself has an ancestor wich is not the

>     primary base class.  */

> -/* { dg-do run { target nonpic } } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining 

> -fno-ipa-cp"  } */

>

>  extern "C" void abort (void);

> diff --git a/gcc/testsuite/g++.dg/tls/pr79288.C 

> b/gcc/testsuite/g++.dg/tls/pr79288.C

> index 9f488df..da6751f 100644

> --- a/gcc/testsuite/g++.dg/tls/pr79288.C

> +++ b/gcc/testsuite/g++.dg/tls/pr79288.C

> @@ -1,5 +1,5 @@

>  // PR c++/79288

> -// { dg-do compile { target nonpic } }

> +// { dg-do compile { target { nonpic || pie_enabled } } }

>  // { dg-require-effective-target tls }

>  // { dg-options "-O2" }

>  // { dg-final { scan-assembler-not "@tpoff" { target i?86-*-* 

> x86_64-*-* } } }

> diff --git a/gcc/testsuite/gcc.dg/addr_equal-1.c 

> b/gcc/testsuite/gcc.dg/addr_equal-1.c

> index 18b0dc9..35fa010 100644

> --- a/gcc/testsuite/gcc.dg/addr_equal-1.c

> +++ b/gcc/testsuite/gcc.dg/addr_equal-1.c

> @@ -1,5 +1,4 @@

> -/* { dg-do run } */

> -/* { dg-require-effective-target nonpic } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-require-weak "" } */

>  /* { dg-require-alias "" } */

>  /* { dg-options "-O2 -fdelete-null-pointer-checks" } */

> diff --git a/gcc/testsuite/gcc.dg/const-1.c 

> b/gcc/testsuite/gcc.dg/const-1.c

> index a5b2b16..aa20aad 100644

> --- a/gcc/testsuite/gcc.dg/const-1.c

> +++ b/gcc/testsuite/gcc.dg/const-1.c

> @@ -1,4 +1,4 @@

> -/* { dg-do compile { target nonpic } } */

> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O2 -Wsuggest-attribute=const" } */

>

>  extern int extern_const(int a) __attribute__ ((const));

> diff --git a/gcc/testsuite/gcc.dg/ipa/pure-const-1.c 

> b/gcc/testsuite/gcc.dg/ipa/pure-const-1.c

> index 06b415e..dd58457 100644

> --- a/gcc/testsuite/gcc.dg/ipa/pure-const-1.c

> +++ b/gcc/testsuite/gcc.dg/ipa/pure-const-1.c

> @@ -1,4 +1,4 @@

> -/* { dg-do compile { target nonpic } } */

> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -fdump-tree-local-pure-const1 

> -fdump-ipa-pure-const -fdump-tree-optimized -fno-early-inlining 

> -fgnu89-inline" } */

>  void abort (void);

>  int error_code;

> diff --git a/gcc/testsuite/gcc.dg/noreturn-8.c 

> b/gcc/testsuite/gcc.dg/noreturn-8.c

> index 294800b..ce41cab 100644

> --- a/gcc/testsuite/gcc.dg/noreturn-8.c

> +++ b/gcc/testsuite/gcc.dg/noreturn-8.c

> @@ -1,4 +1,4 @@

> -/* { dg-do run { target nonpic } } */

> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O2" } */

>  void exit (int);

>  void noreturn_autodetection_failed ();

> diff --git a/gcc/testsuite/gcc.dg/pr33826.c 

> b/gcc/testsuite/gcc.dg/pr33826.c

> index df83915..d222774 100644

> --- a/gcc/testsuite/gcc.dg/pr33826.c

> +++ b/gcc/testsuite/gcc.dg/pr33826.c

> @@ -1,8 +1,7 @@

>  /* Regression test for PR middle-end/33826 */

>  /* Verify that recursive functions cannot be pure or const.  */

>

> -/* { dg-do compile } */

> -/* { dg-require-effective-target nonpic } */

> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O1 -fdump-tree-local-pure-const1 

> -fdump-ipa-pure-const" } */

>

>  int recurse1 (int);

> diff --git a/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c 

> b/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c

> index 1bf4997..30156a3 100644

> --- a/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c

> +++ b/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c

> @@ -1,4 +1,4 @@

> -/* { dg-do compile { target { nonpic } } } */

> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-fipa-pta -fdump-ipa-pta2 -fno-ipa-icf" } */

>  /* { dg-skip-if "" { *-*-* } { "-O0" "-fno-fat-lto-objects" } { "" } } */

>

> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c 

> b/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c

> index e10a25d..f9d2dd4 100644

> --- a/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c

> +++ b/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c

> @@ -1,4 +1,4 @@

> -/* { dg-do compile { target { nonpic } } } */

> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O2 -fdump-tree-optimized" } */

>  static int a;

>  int f;

> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c 

> b/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c

> index 2d713d6..3b5a94f 100644

> --- a/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c

> +++ b/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c

> @@ -1,4 +1,4 @@

> -/* { dg-do compile { target nonpic } } */

> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O3 -fdump-tree-fnsplit -fdump-tree-optimized 

> --param=builtin-expect-probability=100" } */

>

>  struct a {int a,b;};

> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c 

> b/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c

> index 028becd..b4e9296 100644

> --- a/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c

> +++ b/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c

> @@ -1,4 +1,4 @@

> -/* { dg-do compile { target nonpic } } */

> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>  /* { dg-options "-O2 -fdump-tree-pre-stats -fdump-tree-fre1" } */

>  #include <stddef.h>

>

> -- 

> 2.6.3

>
Mike Stump July 22, 2019, 7:37 p.m. | #2
On Jul 19, 2019, at 1:57 AM, Kyrill Tkachov <kyrylo.tkachov@foss.arm.com> wrote:
> 

> On 5/15/19 1:39 PM, Christophe Lyon wrote:

>> Some tests have the "nonpic" guard, but pass on

>> arm*-*-uclinuxfdpiceabi because it is in PIE mode by default. Rather

>> than adding this target to all these tests, add the "pie_enabled"

>> effective target.

>> 

>> 2019-XX-XX  Christophe Lyon  <christophe.lyon@st.com>

>> 

>>         gcc/testsuite/

>>         * g++.dg/cpp0x/noexcept03.C: Add pie_enabled.

>>         * g++.dg/ipa/devirt-c-7.C: Likewise.

>>         * g++.dg/ipa/ivinline-1.C: Likewise.

>>         * g++.dg/ipa/ivinline-2.C: Likewise.

>>         * g++.dg/ipa/ivinline-3.C: Likewise.

>>         * g++.dg/ipa/ivinline-4.C: Likewise.

>>         * g++.dg/ipa/ivinline-5.C: Likewise.

>>         * g++.dg/ipa/ivinline-7.C: Likewise.

>>         * g++.dg/ipa/ivinline-8.C: Likewise.

>>         * g++.dg/ipa/ivinline-9.C: Likewise.

>>         * g++.dg/tls/pr79288.C: Likewise.

>>         * gcc.dg/addr_equal-1.c: Likewise.

>>         * gcc.dg/const-1.c: Likewise.

>>         * gcc.dg/ipa/pure-const-1.c: Likewise.

>>         * gcc.dg/noreturn-8.c: Likewise.

>>         * gcc.dg/pr33826.c: Likewise.

>>         * gcc.dg/torture/ipa-pta-1.c: Likewise.

>>         * gcc.dg/tree-ssa/alias-2.c: Likewise.

>>         * gcc.dg/tree-ssa/ipa-split-5.c: Likewise.

>>         * gcc.dg/tree-ssa/loadpre6.c: Likewise.

>>         * gcc.dg/uninit-19.c: Likewise.

>> 

> Looks sensible, but this is not an arm-specific patch.

> 

> CC'ing testsuite maintainers.


Seem sensible to me as well.  Darwin is a pie by default sort of platform as I recall, and as long as it doesn't trip up there (you can just watch for darwin fallout), should be fine.

Patch is approved.  Do watch for darwin fallout, and if there is some, we'd have to think a little more about it.  I'm not expecting any fall out (but I haven't tested).

>> Change-Id: I1a0d836b892c23891f739fccdc467d0f354ab82c

>> 

>> diff --git a/gcc/testsuite/g++.dg/cpp0x/noexcept03.C b/gcc/testsuite/g++.dg/cpp0x/noexcept03.C

>> index 2d37867..906a44d 100644

>> --- a/gcc/testsuite/g++.dg/cpp0x/noexcept03.C

>> +++ b/gcc/testsuite/g++.dg/cpp0x/noexcept03.C

>> @@ -1,6 +1,6 @@

>>  // Runtime test for noexcept-specification.

>>  // { dg-options "-Wnoexcept" }

>> -// { dg-do run { target nonpic } }

>> +// { dg-do run { target { nonpic || pie_enabled } } }

>>  // { dg-require-effective-target c++11 }

>> 

>>  #include <exception>

>> diff --git a/gcc/testsuite/g++.dg/ipa/devirt-c-7.C b/gcc/testsuite/g++.dg/ipa/devirt-c-7.C

>> index 2e76cbe..efb65c2 100644

>> --- a/gcc/testsuite/g++.dg/ipa/devirt-c-7.C

>> +++ b/gcc/testsuite/g++.dg/ipa/devirt-c-7.C

>> @@ -1,7 +1,6 @@

>>  /* Verify that ipa-cp will not get confused by placement new constructing an

>>     object within another one when looking for dynamic type change .  */

>> -/* { dg-do run } */

>> -/* { dg-require-effective-target nonpic } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -Wno-attributes"  } */

>> 

>>  extern "C" void abort (void);

>> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-1.C b/gcc/testsuite/g++.dg/ipa/ivinline-1.C

>> index 9b10d20..2d988bc 100644

>> --- a/gcc/testsuite/g++.dg/ipa/ivinline-1.C

>> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-1.C

>> @@ -1,6 +1,6 @@

>>  /* Verify that simple virtual calls are inlined even without early

>>     inlining.  */

>> -/* { dg-do run { target nonpic } } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */

>> 

>>  extern "C" void abort (void);

>> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-2.C b/gcc/testsuite/g++.dg/ipa/ivinline-2.C

>> index 21cd46f..d978638 100644

>> --- a/gcc/testsuite/g++.dg/ipa/ivinline-2.C

>> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-2.C

>> @@ -1,6 +1,6 @@

>>  /* Verify that simple virtual calls using this pointer are inlined

>>     even without early inlining..  */

>> -/* { dg-do run { target nonpic } } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */

>> 

>>  extern "C" void abort (void);

>> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-3.C b/gcc/testsuite/g++.dg/ipa/ivinline-3.C

>> index 1e24644..f756a16 100644

>> --- a/gcc/testsuite/g++.dg/ipa/ivinline-3.C

>> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-3.C

>> @@ -1,6 +1,6 @@

>>  /* Verify that simple virtual calls on an object refrence are inlined

>>     even without early inlining.  */

>> -/* { dg-do run { target nonpic } } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */

>> 

>>  extern "C" void abort (void);

>> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-4.C b/gcc/testsuite/g++.dg/ipa/ivinline-4.C

>> index cf0d980..5fbd3ef 100644

>> --- a/gcc/testsuite/g++.dg/ipa/ivinline-4.C

>> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-4.C

>> @@ -1,7 +1,7 @@

>>  /* Verify that simple virtual calls are inlined even without early

>>     inlining, even when a typecast to an ancestor is involved along the

>>     way.  */

>> -/* { dg-do run { target nonpic } } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */

>> 

>>  extern "C" void abort (void);

>> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-5.C b/gcc/testsuite/g++.dg/ipa/ivinline-5.C

>> index f15ebf2..6c19907 100644

>> --- a/gcc/testsuite/g++.dg/ipa/ivinline-5.C

>> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-5.C

>> @@ -1,6 +1,6 @@

>>  /* Verify that virtual call inlining does not pick a wrong method when

>>     there is a user defined ancestor in an object.  */

>> -/* { dg-do run { target nonpic } } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */

>> 

>>  extern "C" void abort (void);

>> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-7.C b/gcc/testsuite/g++.dg/ipa/ivinline-7.C

>> index a7b41e7..fd6aba6 100644

>> --- a/gcc/testsuite/g++.dg/ipa/ivinline-7.C

>> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-7.C

>> @@ -1,7 +1,7 @@

>>  /* Verify that simple virtual calls are inlined even without early

>>     inlining, even when a typecast to an ancestor is involved along the

>>     way and that ancestor is not the first one with virtual functions.  */

>> -/* { dg-do run { target nonpic } } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */

>> 

>>  extern "C" void abort (void);

>> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-8.C b/gcc/testsuite/g++.dg/ipa/ivinline-8.C

>> index 5c3299f..bc81abf 100644

>> --- a/gcc/testsuite/g++.dg/ipa/ivinline-8.C

>> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-8.C

>> @@ -1,6 +1,6 @@

>>  /* Verify that virtual calls are inlined (ithout early inlining) even

>>     when their caller is itself indirectly inlined.  */

>> -/* { dg-do run { target nonpic } } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */

>> 

>>  extern "C" void abort (void);

>> diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-9.C b/gcc/testsuite/g++.dg/ipa/ivinline-9.C

>> index 41b2381..0917f15 100644

>> --- a/gcc/testsuite/g++.dg/ipa/ivinline-9.C

>> +++ b/gcc/testsuite/g++.dg/ipa/ivinline-9.C

>> @@ -2,7 +2,7 @@

>>     inlining, even when a typecast to an ancestor is involved along the

>>     way and that ancestor itself has an ancestor wich is not the

>>     primary base class.  */

>> -/* { dg-do run { target nonpic } } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */

>> 

>>  extern "C" void abort (void);

>> diff --git a/gcc/testsuite/g++.dg/tls/pr79288.C b/gcc/testsuite/g++.dg/tls/pr79288.C

>> index 9f488df..da6751f 100644

>> --- a/gcc/testsuite/g++.dg/tls/pr79288.C

>> +++ b/gcc/testsuite/g++.dg/tls/pr79288.C

>> @@ -1,5 +1,5 @@

>>  // PR c++/79288

>> -// { dg-do compile { target nonpic } }

>> +// { dg-do compile { target { nonpic || pie_enabled } } }

>>  // { dg-require-effective-target tls }

>>  // { dg-options "-O2" }

>>  // { dg-final { scan-assembler-not "@tpoff" { target i?86-*-* x86_64-*-* } } }

>> diff --git a/gcc/testsuite/gcc.dg/addr_equal-1.c b/gcc/testsuite/gcc.dg/addr_equal-1.c

>> index 18b0dc9..35fa010 100644

>> --- a/gcc/testsuite/gcc.dg/addr_equal-1.c

>> +++ b/gcc/testsuite/gcc.dg/addr_equal-1.c

>> @@ -1,5 +1,4 @@

>> -/* { dg-do run } */

>> -/* { dg-require-effective-target nonpic } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-require-weak "" } */

>>  /* { dg-require-alias "" } */

>>  /* { dg-options "-O2 -fdelete-null-pointer-checks" } */

>> diff --git a/gcc/testsuite/gcc.dg/const-1.c b/gcc/testsuite/gcc.dg/const-1.c

>> index a5b2b16..aa20aad 100644

>> --- a/gcc/testsuite/gcc.dg/const-1.c

>> +++ b/gcc/testsuite/gcc.dg/const-1.c

>> @@ -1,4 +1,4 @@

>> -/* { dg-do compile { target nonpic } } */

>> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O2 -Wsuggest-attribute=const" } */

>> 

>>  extern int extern_const(int a) __attribute__ ((const));

>> diff --git a/gcc/testsuite/gcc.dg/ipa/pure-const-1.c b/gcc/testsuite/gcc.dg/ipa/pure-const-1.c

>> index 06b415e..dd58457 100644

>> --- a/gcc/testsuite/gcc.dg/ipa/pure-const-1.c

>> +++ b/gcc/testsuite/gcc.dg/ipa/pure-const-1.c

>> @@ -1,4 +1,4 @@

>> -/* { dg-do compile { target nonpic } } */

>> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -fdump-tree-local-pure-const1 -fdump-ipa-pure-const -fdump-tree-optimized -fno-early-inlining -fgnu89-inline" } */

>>  void abort (void);

>>  int error_code;

>> diff --git a/gcc/testsuite/gcc.dg/noreturn-8.c b/gcc/testsuite/gcc.dg/noreturn-8.c

>> index 294800b..ce41cab 100644

>> --- a/gcc/testsuite/gcc.dg/noreturn-8.c

>> +++ b/gcc/testsuite/gcc.dg/noreturn-8.c

>> @@ -1,4 +1,4 @@

>> -/* { dg-do run { target nonpic } } */

>> +/* { dg-do run { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O2" } */

>>  void exit (int);

>>  void noreturn_autodetection_failed ();

>> diff --git a/gcc/testsuite/gcc.dg/pr33826.c b/gcc/testsuite/gcc.dg/pr33826.c

>> index df83915..d222774 100644

>> --- a/gcc/testsuite/gcc.dg/pr33826.c

>> +++ b/gcc/testsuite/gcc.dg/pr33826.c

>> @@ -1,8 +1,7 @@

>>  /* Regression test for PR middle-end/33826 */

>>  /* Verify that recursive functions cannot be pure or const.  */

>> 

>> -/* { dg-do compile } */

>> -/* { dg-require-effective-target nonpic } */

>> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O1 -fdump-tree-local-pure-const1 -fdump-ipa-pure-const" } */

>> 

>>  int recurse1 (int);

>> diff --git a/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c b/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c

>> index 1bf4997..30156a3 100644

>> --- a/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c

>> +++ b/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c

>> @@ -1,4 +1,4 @@

>> -/* { dg-do compile { target { nonpic } } } */

>> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-fipa-pta -fdump-ipa-pta2 -fno-ipa-icf" } */

>>  /* { dg-skip-if "" { *-*-* } { "-O0" "-fno-fat-lto-objects" } { "" } } */

>> 

>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c b/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c

>> index e10a25d..f9d2dd4 100644

>> --- a/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c

>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c

>> @@ -1,4 +1,4 @@

>> -/* { dg-do compile { target { nonpic } } } */

>> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O2 -fdump-tree-optimized" } */

>>  static int a;

>>  int f;

>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c b/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c

>> index 2d713d6..3b5a94f 100644

>> --- a/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c

>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c

>> @@ -1,4 +1,4 @@

>> -/* { dg-do compile { target nonpic } } */

>> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O3 -fdump-tree-fnsplit -fdump-tree-optimized --param=builtin-expect-probability=100" } */

>> 

>>  struct a {int a,b;};

>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c b/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c

>> index 028becd..b4e9296 100644

>> --- a/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c

>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c

>> @@ -1,4 +1,4 @@

>> -/* { dg-do compile { target nonpic } } */

>> +/* { dg-do compile { target { nonpic || pie_enabled } } } */

>>  /* { dg-options "-O2 -fdump-tree-pre-stats -fdump-tree-fre1" } */

>>  #include <stddef.h>

>> 

>> -- 

>> 2.6.3

>>

Patch

diff --git a/gcc/testsuite/g++.dg/cpp0x/noexcept03.C b/gcc/testsuite/g++.dg/cpp0x/noexcept03.C
index 2d37867..906a44d 100644
--- a/gcc/testsuite/g++.dg/cpp0x/noexcept03.C
+++ b/gcc/testsuite/g++.dg/cpp0x/noexcept03.C
@@ -1,6 +1,6 @@ 
 // Runtime test for noexcept-specification.
 // { dg-options "-Wnoexcept" }
-// { dg-do run { target nonpic } }
+// { dg-do run { target { nonpic || pie_enabled } } }
 // { dg-require-effective-target c++11 }
 
 #include <exception>
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-c-7.C b/gcc/testsuite/g++.dg/ipa/devirt-c-7.C
index 2e76cbe..efb65c2 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-c-7.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-c-7.C
@@ -1,7 +1,6 @@ 
 /* Verify that ipa-cp will not get confused by placement new constructing an
    object within another one when looking for dynamic type change .  */
-/* { dg-do run } */
-/* { dg-require-effective-target nonpic } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -Wno-attributes"  } */
 
 extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-1.C b/gcc/testsuite/g++.dg/ipa/ivinline-1.C
index 9b10d20..2d988bc 100644
--- a/gcc/testsuite/g++.dg/ipa/ivinline-1.C
+++ b/gcc/testsuite/g++.dg/ipa/ivinline-1.C
@@ -1,6 +1,6 @@ 
 /* Verify that simple virtual calls are inlined even without early
    inlining.  */
-/* { dg-do run { target nonpic } } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */
 
 extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-2.C b/gcc/testsuite/g++.dg/ipa/ivinline-2.C
index 21cd46f..d978638 100644
--- a/gcc/testsuite/g++.dg/ipa/ivinline-2.C
+++ b/gcc/testsuite/g++.dg/ipa/ivinline-2.C
@@ -1,6 +1,6 @@ 
 /* Verify that simple virtual calls using this pointer are inlined
    even without early inlining..  */
-/* { dg-do run { target nonpic } } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */
 
 extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-3.C b/gcc/testsuite/g++.dg/ipa/ivinline-3.C
index 1e24644..f756a16 100644
--- a/gcc/testsuite/g++.dg/ipa/ivinline-3.C
+++ b/gcc/testsuite/g++.dg/ipa/ivinline-3.C
@@ -1,6 +1,6 @@ 
 /* Verify that simple virtual calls on an object refrence are inlined
    even without early inlining.  */
-/* { dg-do run { target nonpic } } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */
 
 extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-4.C b/gcc/testsuite/g++.dg/ipa/ivinline-4.C
index cf0d980..5fbd3ef 100644
--- a/gcc/testsuite/g++.dg/ipa/ivinline-4.C
+++ b/gcc/testsuite/g++.dg/ipa/ivinline-4.C
@@ -1,7 +1,7 @@ 
 /* Verify that simple virtual calls are inlined even without early
    inlining, even when a typecast to an ancestor is involved along the
    way.  */
-/* { dg-do run { target nonpic } } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */
 
 extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-5.C b/gcc/testsuite/g++.dg/ipa/ivinline-5.C
index f15ebf2..6c19907 100644
--- a/gcc/testsuite/g++.dg/ipa/ivinline-5.C
+++ b/gcc/testsuite/g++.dg/ipa/ivinline-5.C
@@ -1,6 +1,6 @@ 
 /* Verify that virtual call inlining does not pick a wrong method when
    there is a user defined ancestor in an object.  */
-/* { dg-do run { target nonpic } } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */
 
 extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-7.C b/gcc/testsuite/g++.dg/ipa/ivinline-7.C
index a7b41e7..fd6aba6 100644
--- a/gcc/testsuite/g++.dg/ipa/ivinline-7.C
+++ b/gcc/testsuite/g++.dg/ipa/ivinline-7.C
@@ -1,7 +1,7 @@ 
 /* Verify that simple virtual calls are inlined even without early
    inlining, even when a typecast to an ancestor is involved along the
    way and that ancestor is not the first one with virtual functions.  */
-/* { dg-do run { target nonpic } } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */
 
 extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-8.C b/gcc/testsuite/g++.dg/ipa/ivinline-8.C
index 5c3299f..bc81abf 100644
--- a/gcc/testsuite/g++.dg/ipa/ivinline-8.C
+++ b/gcc/testsuite/g++.dg/ipa/ivinline-8.C
@@ -1,6 +1,6 @@ 
 /* Verify that virtual calls are inlined (ithout early inlining) even
    when their caller is itself indirectly inlined.  */
-/* { dg-do run { target nonpic } } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */
 
 extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/ipa/ivinline-9.C b/gcc/testsuite/g++.dg/ipa/ivinline-9.C
index 41b2381..0917f15 100644
--- a/gcc/testsuite/g++.dg/ipa/ivinline-9.C
+++ b/gcc/testsuite/g++.dg/ipa/ivinline-9.C
@@ -2,7 +2,7 @@ 
    inlining, even when a typecast to an ancestor is involved along the
    way and that ancestor itself has an ancestor wich is not the
    primary base class.  */
-/* { dg-do run { target nonpic } } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-cp"  } */
 
 extern "C" void abort (void);
diff --git a/gcc/testsuite/g++.dg/tls/pr79288.C b/gcc/testsuite/g++.dg/tls/pr79288.C
index 9f488df..da6751f 100644
--- a/gcc/testsuite/g++.dg/tls/pr79288.C
+++ b/gcc/testsuite/g++.dg/tls/pr79288.C
@@ -1,5 +1,5 @@ 
 // PR c++/79288
-// { dg-do compile { target nonpic } }
+// { dg-do compile { target { nonpic || pie_enabled } } }
 // { dg-require-effective-target tls }
 // { dg-options "-O2" }
 // { dg-final { scan-assembler-not "@tpoff" { target i?86-*-* x86_64-*-* } } }
diff --git a/gcc/testsuite/gcc.dg/addr_equal-1.c b/gcc/testsuite/gcc.dg/addr_equal-1.c
index 18b0dc9..35fa010 100644
--- a/gcc/testsuite/gcc.dg/addr_equal-1.c
+++ b/gcc/testsuite/gcc.dg/addr_equal-1.c
@@ -1,5 +1,4 @@ 
-/* { dg-do run } */
-/* { dg-require-effective-target nonpic } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-require-weak "" } */
 /* { dg-require-alias "" } */
 /* { dg-options "-O2 -fdelete-null-pointer-checks" } */
diff --git a/gcc/testsuite/gcc.dg/const-1.c b/gcc/testsuite/gcc.dg/const-1.c
index a5b2b16..aa20aad 100644
--- a/gcc/testsuite/gcc.dg/const-1.c
+++ b/gcc/testsuite/gcc.dg/const-1.c
@@ -1,4 +1,4 @@ 
-/* { dg-do compile { target nonpic } } */
+/* { dg-do compile { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O2 -Wsuggest-attribute=const" } */
 
 extern int extern_const(int a) __attribute__ ((const));
diff --git a/gcc/testsuite/gcc.dg/ipa/pure-const-1.c b/gcc/testsuite/gcc.dg/ipa/pure-const-1.c
index 06b415e..dd58457 100644
--- a/gcc/testsuite/gcc.dg/ipa/pure-const-1.c
+++ b/gcc/testsuite/gcc.dg/ipa/pure-const-1.c
@@ -1,4 +1,4 @@ 
-/* { dg-do compile { target nonpic } } */
+/* { dg-do compile { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -fdump-tree-local-pure-const1 -fdump-ipa-pure-const -fdump-tree-optimized -fno-early-inlining -fgnu89-inline" } */
 void abort (void);
 int error_code;
diff --git a/gcc/testsuite/gcc.dg/noreturn-8.c b/gcc/testsuite/gcc.dg/noreturn-8.c
index 294800b..ce41cab 100644
--- a/gcc/testsuite/gcc.dg/noreturn-8.c
+++ b/gcc/testsuite/gcc.dg/noreturn-8.c
@@ -1,4 +1,4 @@ 
-/* { dg-do run { target nonpic } } */
+/* { dg-do run { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O2" } */
 void exit (int);
 void noreturn_autodetection_failed ();
diff --git a/gcc/testsuite/gcc.dg/pr33826.c b/gcc/testsuite/gcc.dg/pr33826.c
index df83915..d222774 100644
--- a/gcc/testsuite/gcc.dg/pr33826.c
+++ b/gcc/testsuite/gcc.dg/pr33826.c
@@ -1,8 +1,7 @@ 
 /* Regression test for PR middle-end/33826 */
 /* Verify that recursive functions cannot be pure or const.  */
 
-/* { dg-do compile } */
-/* { dg-require-effective-target nonpic } */
+/* { dg-do compile { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O1 -fdump-tree-local-pure-const1 -fdump-ipa-pure-const" } */
 
 int recurse1 (int);
diff --git a/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c b/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c
index 1bf4997..30156a3 100644
--- a/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c
+++ b/gcc/testsuite/gcc.dg/torture/ipa-pta-1.c
@@ -1,4 +1,4 @@ 
-/* { dg-do compile { target { nonpic } } } */
+/* { dg-do compile { target { nonpic || pie_enabled } } } */
 /* { dg-options "-fipa-pta -fdump-ipa-pta2 -fno-ipa-icf" } */
 /* { dg-skip-if "" { *-*-* } { "-O0" "-fno-fat-lto-objects" } { "" } } */
 
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c b/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c
index e10a25d..f9d2dd4 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c
@@ -1,4 +1,4 @@ 
-/* { dg-do compile { target { nonpic } } } */
+/* { dg-do compile { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O2 -fdump-tree-optimized" } */
 static int a;
 int f;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c b/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c
index 2d713d6..3b5a94f 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ipa-split-5.c
@@ -1,4 +1,4 @@ 
-/* { dg-do compile { target nonpic } } */
+/* { dg-do compile { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O3 -fdump-tree-fnsplit -fdump-tree-optimized --param=builtin-expect-probability=100" } */
 
 struct a {int a,b;};
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c b/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c
index 028becd..b4e9296 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c
@@ -1,4 +1,4 @@ 
-/* { dg-do compile { target nonpic } } */
+/* { dg-do compile { target { nonpic || pie_enabled } } } */
 /* { dg-options "-O2 -fdump-tree-pre-stats -fdump-tree-fre1" } */
 #include <stddef.h>