summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp')
-rw-r--r--gdb/testsuite/gdb.hp/gdb.defects/bs14602.exp110
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 "