mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 20:28:28 +08:00
Clean up testsuite compiler_info support.
gdb/testsuite/ChangeLog: * gdb.base/watchpoint.exp (test_complex_watchpoint): Remove compiler_info references. * gdb.cp/temargs.exp: Ditto. * lib/gdb.exp: Unset compiler_info instead of setting to "unknown". (get_compiler_info): Early exit if already computed. Set compiler_info to "unknown" if there was a problem. (test_compiler_info): Add function comment. Call get_compiler_info.
This commit is contained in:
@ -1,3 +1,13 @@
|
|||||||
|
2015-07-24 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
|
* gdb.base/watchpoint.exp (test_complex_watchpoint): Remove
|
||||||
|
compiler_info references.
|
||||||
|
* gdb.cp/temargs.exp: Ditto.
|
||||||
|
* lib/gdb.exp: Unset compiler_info instead of setting to "unknown".
|
||||||
|
(get_compiler_info): Early exit if already computed. Set compiler_info
|
||||||
|
to "unknown" if there was a problem.
|
||||||
|
(test_compiler_info): Add function comment. Call get_compiler_info.
|
||||||
|
|
||||||
2015-07-24 Doug Evans <dje@google.com>
|
2015-07-24 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
* Makefile.in (check/%.exp): Pass directory for GDB_PARALLEL.
|
* Makefile.in (check/%.exp): Pass directory for GDB_PARALLEL.
|
||||||
|
@ -464,12 +464,11 @@ proc test_complex_watchpoint {} {
|
|||||||
pass $test
|
pass $test
|
||||||
}
|
}
|
||||||
-re "can't compute CFA for this frame.*\r\n$gdb_prompt $" {
|
-re "can't compute CFA for this frame.*\r\n$gdb_prompt $" {
|
||||||
global compiler_info no_hw
|
global no_hw
|
||||||
|
|
||||||
# GCC < 4.5.0 does not get LOCATIONS_VALID set by dwarf2read.c.
|
# GCC < 4.5.0 does not get LOCATIONS_VALID set by dwarf2read.c.
|
||||||
# Therefore epilogue unwinder gets applied which is
|
# Therefore epilogue unwinder gets applied which is
|
||||||
# incompatible with dwarf2_frame_cfa.
|
# incompatible with dwarf2_frame_cfa.
|
||||||
verbose -log "compiler_info: $compiler_info"
|
|
||||||
if {$no_hw && ([test_compiler_info {gcc-[0-3]-*}]
|
if {$no_hw && ([test_compiler_info {gcc-[0-3]-*}]
|
||||||
|| [test_compiler_info {gcc-4-[0-4]-*}])} {
|
|| [test_compiler_info {gcc-4-[0-4]-*}])} {
|
||||||
xfail "$test (old GCC has broken watchpoints in epilogues)"
|
xfail "$test (old GCC has broken watchpoints in epilogues)"
|
||||||
|
@ -34,7 +34,6 @@ if {![runto_main]} {
|
|||||||
# NOTE: prepare_for_testing calls get_compiler_info, which we need
|
# NOTE: prepare_for_testing calls get_compiler_info, which we need
|
||||||
# for the test_compiler_info calls.
|
# for the test_compiler_info calls.
|
||||||
# gcc 4.4 and earlier don't emit enough info for some of our template tests.
|
# gcc 4.4 and earlier don't emit enough info for some of our template tests.
|
||||||
verbose -log "compiler_info: $compiler_info"
|
|
||||||
set have_older_template_gcc 0
|
set have_older_template_gcc 0
|
||||||
set have_pr_41736_fixed 1
|
set have_pr_41736_fixed 1
|
||||||
set have_pr_45024_fixed 1
|
set have_pr_45024_fixed 1
|
||||||
|
@ -2788,12 +2788,20 @@ gdb_caching_proc target_is_gdbserver {
|
|||||||
return $is_gdbserver
|
return $is_gdbserver
|
||||||
}
|
}
|
||||||
|
|
||||||
set compiler_info "unknown"
|
# N.B. compiler_info is intended to be local to this file.
|
||||||
|
# Call test_compiler_info with no arguments to fetch its value.
|
||||||
|
# Yes, this is counterintuitive when there's get_compiler_info,
|
||||||
|
# but that's the current API.
|
||||||
|
if [info exists compiler_info] {
|
||||||
|
unset compiler_info
|
||||||
|
}
|
||||||
|
|
||||||
set gcc_compiled 0
|
set gcc_compiled 0
|
||||||
set hp_cc_compiler 0
|
set hp_cc_compiler 0
|
||||||
set hp_aCC_compiler 0
|
set hp_aCC_compiler 0
|
||||||
|
|
||||||
# Figure out what compiler I am using.
|
# Figure out what compiler I am using.
|
||||||
|
# The result is cached so only the first invocation runs the compiler.
|
||||||
#
|
#
|
||||||
# ARG can be empty or "C++". If empty, "C" is assumed.
|
# ARG can be empty or "C++". If empty, "C" is assumed.
|
||||||
#
|
#
|
||||||
@ -2860,6 +2868,11 @@ proc get_compiler_info {{arg ""}} {
|
|||||||
global hp_cc_compiler
|
global hp_cc_compiler
|
||||||
global hp_aCC_compiler
|
global hp_aCC_compiler
|
||||||
|
|
||||||
|
if [info exists compiler_info] {
|
||||||
|
# Already computed.
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
# Choose which file to preprocess.
|
# Choose which file to preprocess.
|
||||||
set ifile "${srcdir}/lib/compiler.c"
|
set ifile "${srcdir}/lib/compiler.c"
|
||||||
if { $arg == "c++" } {
|
if { $arg == "c++" } {
|
||||||
@ -2901,8 +2914,14 @@ proc get_compiler_info {{arg ""}} {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset to unknown compiler if any diagnostics happened.
|
# Set to unknown if for some reason compiler_info didn't get defined.
|
||||||
|
if ![info exists compiler_info] {
|
||||||
|
verbose -log "get_compiler_info: compiler_info not provided"
|
||||||
|
set compiler_info "unknown"
|
||||||
|
}
|
||||||
|
# Also set to unknown compiler if any diagnostics happened.
|
||||||
if { $unknown } {
|
if { $unknown } {
|
||||||
|
verbose -log "get_compiler_info: got unexpected diagnostics"
|
||||||
set compiler_info "unknown"
|
set compiler_info "unknown"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2936,18 +2955,18 @@ proc get_compiler_info {{arg ""}} {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Return the compiler_info string if no arg is provided.
|
||||||
|
# Otherwise the argument is a glob-style expression to match against
|
||||||
|
# compiler_info.
|
||||||
|
|
||||||
proc test_compiler_info { {compiler ""} } {
|
proc test_compiler_info { {compiler ""} } {
|
||||||
global compiler_info
|
global compiler_info
|
||||||
|
get_compiler_info
|
||||||
|
|
||||||
# if no arg, return the compiler_info string
|
# If no arg, return the compiler_info string.
|
||||||
|
if [string match "" $compiler] {
|
||||||
if [string match "" $compiler] {
|
return $compiler_info
|
||||||
if [info exists compiler_info] {
|
}
|
||||||
return $compiler_info
|
|
||||||
} else {
|
|
||||||
perror "No compiler info found."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return [string match $compiler $compiler_info]
|
return [string match $compiler $compiler_info]
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user