* Move test with enums and partial symbols from gdb.t02/ptype.exp

to gdb.stabs/wierd.exp since GCC has worked around the bug.
	gdb.stabs/wierd.{exp,def}: Many new tests.
This commit is contained in:
Jim Kingdon 1993-05-26 20:04:50 +00:00
parent 3d4cf72099
commit 12a0960387
3 changed files with 149 additions and 2 deletions

View file

@ -1,5 +1,9 @@
Wed May 26 09:57:19 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* Move test with enums and partial symbols from gdb.t02/ptype.exp
to gdb.stabs/wierd.exp since GCC has worked around the bug.
gdb.stabs/wierd.{exp,def}: Many new tests.
* gdb.t00/default.exp: update info line for new message.
* gdb.t02/{whatis.exp,gdbme.c}:

View file

@ -1,3 +1,5 @@
/* Hey emacs, this is -*- C -*- mode. */
/* We'll need an integer type. */
STAB("inttype:t1=bu4;0;32;",N_LSYM,0)
@ -235,9 +237,33 @@ STAB("type126:t126=~ !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\
STAB("attr32:G@ !#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;1",N_GSYM,attr32)
STAB("attr33:G@! !#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;1",N_GSYM,attr33)
STAB("attr35:G@# !#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;1",N_GSYM,attr35)
STAB("primary:G200=ered:0,green:1,blue:2,;", N_GSYM, primary)
STAB("attr36:G@$ !#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;1",N_GSYM,attr36)
VAR(primary)
STAB("attr37:G@% !#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;1",N_GSYM,attr37)
/* Test 'e' constant on non-enum type. */
STAB ("const69:c=e1,69", N_LSYM, 0)
/* Test constant with the type embedded. */
STAB ("const70:c=e190=bs2;0;16;,70", N_LSYM, 0)
STAB("attr38:G@& !#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;1",N_GSYM,attr38)
/* Unrecognized negative type number. */
STAB ("bad_neg0type:t201=s8field0:1,0,32;field2:-534,32,64;field3:-1,96,32;;",
N_LSYM, 0)
STAB ("bad_neg0:G201", N_GSYM, bad_neg0)
/* First .long is 42. */
VAR (bad_neg0)
.long 43, 44, 45
STAB("attr39:G@' !#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;1",N_GSYM,attr39)
STAB("attr41:G@) !#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;1",N_GSYM,attr41)
STAB("attr42:G@* !#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;1",N_GSYM,attr42)
@ -343,6 +369,66 @@ VAR(attr81)
VAR(attr82)
VAR(attr83)
VAR(attr84)
/* Unrecognized floating point code. */
STAB ("float72type:t202=R87;9;", N_LSYM, 0)
/* 256-bit integer. The point is obviously not that GDB should have a
special case for this size, but that an integer of any size should
work (at least for printing in hex, not necessarily for arithmetic. */
STAB ("int256var:G203=bu32;0;256;", N_GSYM, int256var)
/* The value is palindromic, so it works whether words are big or little
endian. */
VAR (int256var)
.long 0x2b, 0x2c, 0x2d, 0x2d, 0x2c, 0x2b, 0x2a
/* Huge value in constant should at least get the type right. */
/* This value is just big enough not to fit in 32 bits. */
STAB ("consth:c=e1,4294967296", N_LSYM, 0)
STAB ("consth2:c=e1,-734723985732642758928475678987234563284937456", N_LSYM, 0)
/* Test a struct constant using S. */
STAB ("bad_neg0const:c=S201,128,128,11222211343434345656565677888877",
N_LSYM, 0)
/* Bad filenumbers. */
/* This one is totally bogus. */
STAB ("bad_type0:t(-3,7)", N_LSYM, 0)
/* This one probably gets interpreted as a forward reference. */
STAB ("bad_type1:t(42,6)", N_LSYM, 0)
/* Arrays indexed by wierd things. */
STAB ("array_index0:t205=r1;0;5;", N_LSYM, 0)
STAB ("array0:G206=a205;1", N_GSYM, array0)
VAR (array0)
.long 43, 44, 45, 46, 47
STAB ("array_index1:t207=", N_LSYM, 0)
STAB ("array1:G208=aeai1_red:0,ai1_green:1,ai1_blue:2,;;1", N_GSYM, array1)
VAR (array1)
.long 43, 44
/* See if GDB can deal with it if the compiler gets smarter about saying
which variables were defined with which types. */
STAB ("inttype_one:t209=1", N_LSYM, 0)
STAB ("inttype_two:t210=1", N_LSYM, 0)
STAB ("one_var:G209", N_GSYM, one_var)
VAR (one_var)
STAB ("two_var:G210", N_GSYM, two_var)
VAR (two_var)
/* And see if the caddr_t hack can deal with the same thing. *.
STAB ("intp:t211=*1", N_LSYM, 0)
/* If it weren't for this variable, we'd need to ignore the intp name. */
STAB ("pointer_to_int_var:G212=*1", N_LSYM, 0)
STAB ("intp_var:G211", N_LSYM, intp_var)
VAR (intp_var)
/* Unrecognized constant code. */
STAB ("unrecog_const:c=xjksdflskd33,4;473;", N_LSYM, 0)
VAR(attr85)
VAR(attr86)
VAR(attr87)

View file

@ -35,6 +35,13 @@ expect {
eof { fail "(eof) cannot read wierd.o" }
}
# Do this first because the bug only exhibits itself before partial
# symbols have been expanded.
setup_xfail "*-*-*"
# xcoffread.c doesn't (yet) use partial symbol tables.
clear_xfail "rs*-*-aix*"
gdb_test "ptype red" "type = enum \{red, green, blue\}" "ptype unnamed enum"
proc print_wierd_var { var } {
global prompt
@ -155,8 +162,58 @@ print_wierd_var attr124
print_wierd_var attr125
print_wierd_var attr126
# One last test, while we're at it.
gdb_test "ptype inttype\n" "type = (unsigned int|inttype)" "ptype on inttype"
gdb_test "p const69" " = 69" "'e' constant on non-enum type"
gdb_test "whatis const69" "type = (unsigned int|inttype)" "whatis const69"
# Haven't investigated
setup_xfail "*-*-*"
gdb_test "p sizeof (const70)" " = 2" "'e' constant with embedded type"
# field3 is printing out a bogus value; haven't investigated
setup_xfail "*-*-*"
gdb_test "p bad_neg0" " = \{field0 = 42, field2 =.*field3 = 45\}" "p bad_neg0"
# test that it at least gets field0 right
gdb_test "p bad_neg0" " = \{field0 = 42, field2 =" "p bad_neg0, test 2"
gdb_test "ptype inttype" "type = (unsigned int|inttype)" "ptype on inttype"
gdb_test "p sizeof (float72type)" " = 9" "unrecognized floating point type"
# Haven't investigated
setup_xfail "*-*-*"
gdb_test "p/x int256var" " = 0x0000002a0000002b0000002c0000002d\
0000002d0000002c0000002b0000002a" "print very big integer"
gdb_test "whatis consth" "type = inttype" "whatis consth"
gdb_test "whatis consth2" "type = inttype" "whatis consth2"
# GDB does not yet understand S constants
setup_xfail "*-*-*"
gdb_test "p/x bad_neg0const" " = \{field0 = 0x11222211, field2 =.*\
field3 = 0x77888877\}" "print struct constant"
gdb_test "ptype bad_type0" "type = " "print bad_type0"
gdb_test "ptype bad_type1" "type = " "print bad_type1"
# GDB does not yet support arrays indexed by anything at all unusual
setup_xfail "*-*-*"
gdb_test "p array0" " = \{42, 43, 44, 45, 46, 47\}" "array0 with strange index"
setup_xfail "*-*-*"
gdb_test "p array1" " = \{42, 43, 44\}" "array1 with strange index"
# GDB does not yet support this feature
setup_xfail "*-*-*"
gdb_test "whatis one_var" "type = inttype_one" "whatis one_var"
# But do make sure that it prints as something reasonable
gdb_test "whatis one_var" "type = inttype(|_one)" "whatis one_var test 2"
setup_xfail "*-*-*"
gdb_test "whatis two_var" "type = inttype_two" "whatis two_var"
gdb_test "whatis two_var" "type = inttype(|_two)" "whatis two_var test 2"
setup_xfail "*-*-*"
gdb_test "whatis pointer_to_int_var" "type = int \*" "whatis p t i v"
setup_xfail "*-*-*"
gdb_test "whatis intp_var" "type = intp" "whatis intp_var"
#Prevent some failures in default.exp, which are probably GDB bugs
# (but trivial ones).