gcc-dg.exp (dg-require-profiling): New function.

* lib/gcc-dg.exp (dg-require-profiling): New function.
	* lib/target-supports.exp (check_profiling_available): Likewise.
	* g++.dg/bprob/bprob.exp: Use check_profiling_available.
	* g77.dg/bprob/bprob.exp: Likewise.
	* gcc.misc-tests/bprob.exp: Likewise.
	* g++.old-deja/g++.law/profile1.C: Use dg-require-profiling.
	* gcc.dg/20021014-1.c: Likewise.
	* gcc.dg/nest.c: Likewise.

From-SVN: r74995
This commit is contained in:
Mark Mitchell 2003-12-23 23:55:06 +00:00 committed by Mark Mitchell
parent 7bd35dac24
commit b8ee7f0279
9 changed files with 53 additions and 18 deletions

View File

@ -1,3 +1,14 @@
2003-12-23 Mark Mitchell <mark@codesourcery.com>
* lib/gcc-dg.exp (dg-require-profiling): New function.
* lib/target-supports.exp (check_profiling_available): Likewise.
* g++.dg/bprob/bprob.exp: Use check_profiling_available.
* g77.dg/bprob/bprob.exp: Likewise.
* gcc.misc-tests/bprob.exp: Likewise.
* g++.old-deja/g++.law/profile1.C: Use dg-require-profiling.
* gcc.dg/20021014-1.c: Likewise.
* gcc.dg/nest.c: Likewise.
2003-12-23 Mark Mitchell <mark@codesourcery.com>
* g++.dg/lookup/java1.C: Use -fdollars-in-identifiers when

View File

@ -19,11 +19,7 @@
# Some targets don't have any implementation of __bb_init_func or are
# missing other needed machinery.
if { [istarget mmix-*-*]
|| [istarget arm*-*-elf]
|| [istarget strongarm*-*-elf]
|| [istarget xscale*-*-elf]
|| [istarget cris-*-*] } {
if { ![check_profiling_available] } {
return
}

View File

@ -1,4 +1,5 @@
// { dg-do run { xfail m68k-motorola-sysv m88k-motorola-sysv3 mips*-*-* i[3456]86-*-sco3.2v5* } }
// { dg-require-profiling "" }
// { dg-options "-pg" }
// { dg-options "-pg -static" { target hppa*-*-hpux* } }
// GROUPS passed profiling

View File

@ -19,11 +19,7 @@
# Some targets don't have any implementation of __bb_init_func or are
# missing other needed machinery.
if { [istarget mmix-*-*]
|| [istarget arm*-*-elf]
|| [istarget strongarm*-*-elf]
|| [istarget xscale*-*-elf]
|| [istarget cris-*-*] } {
if { ![check_profiling_available] } {
return
}

View File

@ -1,7 +1,8 @@
/* { dg-do run } */
/* { dg-require-profiling "" } */
/* { dg-options "-O2 -p" } */
/* { dg-options "-O2 -p -static" { target hppa*-*-hpux* } } */
/* { dg-error "profiler" "No profiler support" { target mmix-*-* xstormy16-*-* *-*-windiss } 0 } */
/* { dg-error "profiler" "No profiler support" { target xstormy16-*-* } 0 } */
/* { dg-error "" "consider using `-pg' instead of `-p' with gprof(1)" { target *-*-freebsd* } 0 } */
/* Support for -p on solaris2 relies on mcrt1.o which comes with the
vendor compiler. We cannot reiably predict the directory where the

View File

@ -1,8 +1,9 @@
/* PR 5967, PR 7114 */
/* { dg-do run } */
/* { dg-require-profiling "" } */
/* { dg-options "-O2 -pg" } */
/* { dg-options "-O2 -pg -static" { target hppa*-*-hpux* } } */
/* { dg-error "profiler" "No profiler support" { target mmix-*-* xstormy16-*-* *-*-windiss } 0 } */
/* { dg-error "profiler" "No profiler support" { target xstormy16-*-* } 0 } */
/* Support for -pg on irix relies on gcrt1.o which doesn't exist yet.
See: http://gcc.gnu.org/ml/gcc/2002-10/msg00169.html */
/* { dg-error "gcrt1.o" "Profiler support missing" { target mips*-*-irix* } 0 } */

View File

@ -19,12 +19,7 @@
# Some targets don't have any implementation of __bb_init_func or are
# missing other needed machinery.
if { [istarget mmix-*-*]
|| [istarget arm*-*-elf]
|| [istarget strongarm*-*-elf]
|| [istarget xscale*-*-elf]
|| [istarget cris-*-*]
|| [istarget h8300-*-*] } {
if { ![check_profiling_available] } {
return
}

View File

@ -321,6 +321,16 @@ proc dg-require-gc-sections { args } {
}
}
# If this target does not support profiling, skip this test.
proc dg-require-profiling { args } {
if { ![ check_profiling_available ] } {
upvar dg-do-what dg-do-what
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
return
}
}
# If this target does not support DLL attributes skip this test.
proc dg-require-dll { args } {

View File

@ -161,3 +161,27 @@ proc check_gc_sections_available { } {
}
return $gc_sections_available_saved
}
# Return true if profiling is supported on the target.
proc check_profiling_available { } {
global profiling_available_saved
if {![info exists profiling_available_saved]} {
# Some targets don't have any implementation of __bb_init_func or are
# missing other needed machinery.
if { [istarget mmix-*-*]
|| [istarget arm*-*-elf]
|| [istarget strongarm*-*-elf]
|| [istarget xscale*-*-elf]
|| [istarget cris-*-*]
|| [istarget h8300-*-*]
|| [istarget *-*-windiss] } {
set profiling_available_saved 0
} else {
set profiling_available_saved 1
}
}
return $profiling_available_saved
}