mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
9704b8b4bc
It is not necessary to call get_compiler_info before calling test_compiler_info, and, after recent commits that removed setting up the gcc_compiled, true, and false globals from get_compiler_info, there is now no longer any need for any test script to call get_compiler_info directly. As a result every call to get_compiler_info outside of lib/gdb.exp is redundant, and this commit removes them all. There should be no change in what is tested after this commit.
259 lines
9.6 KiB
Plaintext
259 lines
9.6 KiB
Plaintext
# Copyright 1997-2022 Free Software Foundation, Inc.
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
# written by Elena Zannoni (elz@apollo.hp.com)
|
|
#
|
|
# This file is part of the gdb testsuite
|
|
#
|
|
# tests for const variables
|
|
# const pointers to vars
|
|
# pointers to const variables
|
|
# const pointers to const vars
|
|
# with mixed types
|
|
|
|
#
|
|
# test running programs
|
|
#
|
|
|
|
standard_testfile .c
|
|
|
|
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable debug ] != "" } {
|
|
untested "failed to compile"
|
|
return -1
|
|
}
|
|
|
|
clean_restart ${binfile}
|
|
|
|
|
|
#
|
|
# set it up at a breakpoint so we can play with the variable values
|
|
#
|
|
if ![runto_main] then {
|
|
perror "couldn't run to breakpoint"
|
|
return
|
|
}
|
|
|
|
get_debug_format
|
|
|
|
# Many tests xfail with gcc 2 -gstabs+.
|
|
# TODO: check out the hp side of this.
|
|
|
|
proc local_compiler_xfail_check { } {
|
|
if { [test_compiler_info gcc-2-*] } then {
|
|
if { ![test_debug_format "HP"] \
|
|
&& ![test_debug_format "DWARF \[0-9\]"] } then {
|
|
setup_xfail "*-*-*"
|
|
}
|
|
}
|
|
}
|
|
|
|
# A few tests still xfail with gcc 3 -gstabs+ and gcc 4 -gstabs+.
|
|
|
|
proc local_compiler_xfail_check_2 { } {
|
|
if { [test_compiler_info gcc-3-*] || [test_compiler_info gcc-4-*] } {
|
|
if { [test_debug_format "stabs" ] } {
|
|
setup_xfail "*-*-*"
|
|
}
|
|
}
|
|
}
|
|
|
|
gdb_test "break marker1" "Breakpoint $decimal at .*"
|
|
|
|
gdb_test_multiple "cont" "up from marker1" {
|
|
-re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
|
|
pass "continue to marker1"
|
|
gdb_test "up" " main .*" "up from marker1"
|
|
}
|
|
-re "Break.* marker1__.* \\(\\) at .*:$decimal.*$gdb_prompt $" {
|
|
fail "continue to marker1 (demangling)"
|
|
gdb_test "up" " main .*" "up from marker1"
|
|
}
|
|
}
|
|
|
|
# test function parameters
|
|
|
|
local_compiler_xfail_check
|
|
local_compiler_xfail_check_2
|
|
|
|
gdb_test "ptype qux1" \
|
|
"type = int \\(const char, const char, const char \\*, char \\* const\\).*"
|
|
|
|
# test vars and pointers
|
|
|
|
proc do_constvar_tests {} {
|
|
gdb_test "print lave" " = 66 'B'"
|
|
gdb_test "ptype lave" "type = char"
|
|
gdb_test "print lavish" " = 10 '\\\\n'"
|
|
gdb_test "ptype lavish" "type = unsigned char"
|
|
gdb_test "print lax" " = 20"
|
|
gdb_test "ptype lax" "type = short.*"
|
|
gdb_test "print lecherous" " = 30"
|
|
gdb_test "ptype lecherous" "type = (unsigned short|short unsigned)( int)?"
|
|
gdb_test "print lechery" " = 40"
|
|
gdb_test "ptype lechery" "type = long.*"
|
|
gdb_test "print lectern" " = 50"
|
|
gdb_test "ptype lectern" "type = (unsigned long|long unsigned)( int)?"
|
|
gdb_test "print leeway" " = 60"
|
|
gdb_test "ptype leeway" "type = float"
|
|
gdb_test "print legacy" " = 70"
|
|
gdb_test "ptype legacy" "type = double"
|
|
gdb_test "print laconic" " = 65 'A'"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype laconic" "type = const char"
|
|
gdb_test "print laggard" " = 1 '.001'"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype laggard" "type = const unsigned char"
|
|
gdb_test "print lagoon" " = 2"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lagoon" "type = const short( int)?"
|
|
gdb_test "print laity" " = 3"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype laity" "type = const (unsigned short|short unsigned)( int)?"
|
|
gdb_test "print lambent" " = 4"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lambent" "type = const long( int)?"
|
|
gdb_test "print laminated" " = 5"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype laminated" "type = const (unsigned long|long unsigned)( int)?"
|
|
gdb_test "print lampoon" " = 6"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lampoon" "type = const float"
|
|
gdb_test "print languid" " = 7"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype languid" "type = const double"
|
|
gdb_test "print *legend" " = 66 'B'"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype legend" "type = const char \\*"
|
|
gdb_test "print *legerdemain" " = 10 '\\\\n'"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype legerdemain" "type = const unsigned char \\*"
|
|
gdb_test "print *leniency" " = 20"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype leniency" "type = const short( int)? \\*"
|
|
gdb_test "print *leonine" " = 30"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype leonine" "type = const (unsigned short|short unsigned)( int)? \\*"
|
|
gdb_test "print *lesion" " = 40"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lesion" "type = const long( int)? \\*"
|
|
gdb_test "print *lethal" " = 50"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lethal" "type = const (unsigned long|long unsigned)( int)? \\*"
|
|
gdb_test "print *lethargic" " = 60"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lethargic" "type = const float \\*"
|
|
gdb_test "print *levity" " = 70"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype levity" "type = const double \\*"
|
|
gdb_test "print *lewd" " = 65 'A'"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lewd" "type = const char \\* const"
|
|
gdb_test "print *lexicographer" " = 1 '.001'"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lexicographer" "type = const unsigned char \\* const"
|
|
gdb_test "print *lexicon" " = 2"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lexicon" "type = const short( int)? \\* const"
|
|
gdb_test "print *liaison" " = 3"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype liaison" "type = const (unsigned short|short unsigned)( int)? \\* const"
|
|
gdb_test "print *libation" " = 4"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype libation" "type = const long( int)? \\* const"
|
|
gdb_test "print *libelous" " = 5"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype libelous" "type = const (unsigned long|long unsigned)( int)? \\* const"
|
|
gdb_test "print *libertine" " = 6"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype libertine" "type = const float \\* const"
|
|
gdb_test "print *libidinous" " = 7"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype libidinous" "type = const double \\* const"
|
|
gdb_test "print *languish" " = 65 'A'"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype languish" "type = const char \\*"
|
|
gdb_test "print *languor" " = 1 '.001'"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype languor" "type = const unsigned char \\*"
|
|
gdb_test "print *lank" " = 2"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lank" "type = const short( int)? \\*"
|
|
gdb_test "print *lapidary" " = 3"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lapidary" "type = const (unsigned short|short unsigned)( int)? \\*"
|
|
gdb_test "print *larceny" " = 4"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype larceny" "type = const long( int)? \\*"
|
|
gdb_test "print *largess" " = 5"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype largess" "type = const (unsigned long|long unsigned)( int)? \\*"
|
|
gdb_test "print *lascivious" " = 6"
|
|
local_compiler_xfail_check
|
|
|
|
gdb_test "ptype lascivious" "type = const float \\*"
|
|
gdb_test "print *lassitude" " = 7"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lassitude" "type = const double \\*"
|
|
gdb_test "print *lamprey" " = 66 'B'"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lamprey" "type = char \\* const"
|
|
gdb_test "print *lariat" " = 10 '\\\\n'"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lariat" "type = unsigned char \\* const"
|
|
gdb_test "print *laudanum" " = 20"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype laudanum" "type = short( int)? \\* const"
|
|
gdb_test "print *lecithin" " = 30"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lecithin" "type = (unsigned short|short unsigned)( int)? \\* const"
|
|
gdb_test "print *leviathan" " = 40"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype leviathan" "type = long( int)? \\* const"
|
|
gdb_test "print *libretto" " = 50"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype libretto" "type = (unsigned long|long unsigned)( int)? \\* const"
|
|
gdb_test "print *lissome" " = 60"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lissome" "type = float \\* const"
|
|
gdb_test "print *locust" " = 70"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype locust" "type = double \\* const"
|
|
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype logical" "type = const char \\\[2\\\]"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lugged" "type = const unsigned char \\\[2\\\]"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype luck" "type = const short( int)? \\\[2\\\]"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lunar" "type = const (unsigned short|short unsigned)( int)? \\\[2\\\]"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lumen" "type = const long( int)? \\\[2\\\]"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lurk" "type = const (unsigned long|long unsigned)( int)? \\\[2\\\]"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lush" "type = const float \\\[2\\\]"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype lynx" "type = const double \\\[2\\\]"
|
|
|
|
local_compiler_xfail_check
|
|
local_compiler_xfail_check_2
|
|
gdb_test "ptype crass" "type = struct crass \{\[\r\n\]+\[\ \t\]+char \\* const ptr;\[\r\n\]+\}"
|
|
local_compiler_xfail_check
|
|
gdb_test "ptype crisp" "type = struct crisp \{\[\r\n\]+\[\ \t\]+char \\* const \\*ptr;\[\r\n\]+\}"
|
|
}
|
|
|
|
do_constvar_tests
|