# 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 testfile bs14602 set srcfile ${testfile}.c set binfile ${objdir}/${subdir}/${testfile} # Create and source the file that provides information about the compiler # used to compile the test case. if [get_compiler_info ${binfile}] { return -1; } # set up appropriate compile option to recognize long double if {$hp_aCC_compiler || $hp_cc_compiler} { set ansi_option "-Ae" } else { set ansi_option "" } 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 "