Add check_effective_target_rdynamic and use it in g++.dg/lto/pr69589_0.C.

gcc/
	* doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
	Document rdynamic.

gcc/testsuite/

	* g++.dg/lto/pr69589_0.C: Add dg-require-effective-target for
	rdynamic.  Remove dg-skip-if for targets which don't support -rdynamic.
	* lib/target-supports.exp (check_effective_target_rdynamic):
	New proc.

From-SVN: r246004
This commit is contained in:
Toma Tabacu 2017-03-09 15:04:31 +00:00 committed by Toma Tabacu
parent 9125b9fc80
commit 1f1fd3e272
5 changed files with 24 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
* doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
Document rdynamic.
2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/79949

View File

@ -2068,6 +2068,9 @@ Target supports @option{-mpe-aligned-commons}.
@item pie
Target supports @option{-pie}, @option{-fpie} and @option{-fPIE}.
@item rdynamic
Target supports @option{-rdynamic}.
@item section_anchors
Target supports section anchors.

View File

@ -1,3 +1,10 @@
2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
* g++.dg/lto/pr69589_0.C: Add dg-require-effective-target for
rdynamic. Remove dg-skip-if for targets which don't support -rdynamic.
* lib/target-supports.exp (check_effective_target_rdynamic):
New proc.
2017-03-09 Richard Biener <rguenther@suse.de>
PR middle-end/79971

View File

@ -1,7 +1,7 @@
// { dg-lto-do link }
// { dg-lto-options "-O2 -rdynamic" }
// { dg-extra-ld-options "-r -nostdlib" }
// { dg-skip-if "Skip targets without -rdynamic support" { arm*-none-eabi aarch64*-*-elf nios2-*-elf } { "*" } { "" } }
// { dg-require-effective-target rdynamic }
#pragma GCC visibility push(hidden)
struct A { int &operator[] (long); };

View File

@ -1489,6 +1489,14 @@ proc check_effective_target_static_libgfortran { } {
} "-static"]
}
# Return 1 if we can use the -rdynamic option, 0 otherwise.
proc check_effective_target_rdynamic { } {
return [check_no_compiler_messages rdynamic executable {
int main() { return 0; }
} "-rdynamic"]
}
# Return 1 if cilk-plus is supported by the target, 0 otherwise.
proc check_effective_target_cilkplus { } {