diff options
Diffstat (limited to 'gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp')
-rw-r--r-- | gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp b/gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp new file mode 100644 index 00000000000..24b7537916a --- /dev/null +++ b/gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp @@ -0,0 +1,110 @@ +# This file was written by Sue Kimura. (sue_kimura@hp.com) +# +# Test for CLLbs14602 -- problem with recognizing long double on 10.20. +# +# Source file: bs14602.c + +if $tracelevel { + strace $tracelevel +} + +if { [skip_hp_tests] } { continue } + +# +# test running programs +# +set prms_id 0 +set bug_id 0 + + +# set up appropriate compile option to recognize long double +set ansi_option "" +if [istarget "hppa*-*-*"] { + set ansi_option "-Ae" +} + +set testfile bs14602 +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} + +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "$binfile" executable "debug {additional_flags=${ansi_option}}"] != "" } { + perror "Couldn't compile ${srcfile}" + return -1 +} + + +# Start with a fresh gdb. + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load $binfile + + +# get to end of main so we can check out some stuff +if ![runto main] { + perror "couldn't run to breakpoint main" + continue +} + +gdb_test "txbreak" \ + "Breakpoint $decimal at $hex: file .*bs14602.c, line 9." \ + "set breakpoint at end of main" + +gdb_test "continue" \ + "Continuing.\r\n$hex in main* \\(\\) at .*bs14602.c:9\r\n.*" \ + "continue to end of main" + +# test some simple things about long double +gdb_test "whatis v_long_double" \ + "type = long double" \ + "whatis v_long_double" + +gdb_test "ptype v_long_double" \ + "type = long double" \ + "ptype v_long_double" + +gdb_test "print sizeof \(long double\)" \ + " = 16" \ + "print sizeof long double" + +gdb_test "print sizeof \(v_long_double\)" \ + " = 16" \ + "print sizeof v_long_double" + +gdb_test "print v_long_double" \ + " = 12345.67890000000079453457146883011" \ + "print v_long_double - 1" + +gdb_test "set variable v_long_double = 98765.43210" \ + "" \ + "set variable v_long_double to constant value" + +gdb_test "print v_long_double" \ + " = 98765.43210000000544823706150054932" \ + "print v_long_double - 2" + +gdb_test "set variable v_double = v_long_double" \ + "" \ + " set variable v_double with v_long_double" + +gdb_test "print v_double" \ + " = 98765.432100000005" \ + " print v_double" + +#reset v_long_double +gdb_test "set variable v_long_double = 0" \ + "" \ + "reset v_long_double to 0" + +gdb_test "print v_long_double" \ + " = 0" \ + "print v_long_double - 3" + +gdb_test "set variable v_long_double = v_double" \ + "" \ + " set variable v_long_double with v_long_double" + +gdb_test "print v_long_double" \ + " = 98765.43210000000544823706150054932" \ + "print v_long_double - 4 " |