Commit | Line | Data |
---|---|---|
b811d2c2 | 1 | # Copyright 2010-2020 Free Software Foundation, Inc. |
ce4b0682 SDJ |
2 | |
3 | # This program is free software; you can redistribute it and/or modify | |
4 | # it under the terms of the GNU General Public License as published by | |
0ecee54c | 5 | # the Free Software Foundation; either version 3 of the License, or |
ce4b0682 SDJ |
6 | # (at your option) any later version. |
7 | # | |
8 | # This program is distributed in the hope that it will be useful, | |
9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | # GNU General Public License for more details. | |
12 | # | |
13 | # You should have received a copy of the GNU General Public License | |
1cc75e92 | 14 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
ce4b0682 SDJ |
15 | |
16 | # This file was written by Jan Kratochvil <jan.kratochvil@redhat.com>. | |
17 | ||
cf09b3e4 | 18 | standard_testfile .f90 |
ce4b0682 | 19 | |
5b362f04 | 20 | if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90 quiet}]} { |
ce4b0682 SDJ |
21 | return -1 |
22 | } | |
23 | ||
24 | if { ![runto MAIN__] } { | |
25 | perror "Could not run to breakpoint `MAIN__'." | |
26 | continue | |
27 | } | |
28 | ||
29 | gdb_breakpoint [gdb_get_line_number "stop-here"] | |
30 | gdb_continue_to_breakpoint "stop-here" ".*stop-here.*" | |
31 | gdb_test "p l" " = \\.TRUE\\." | |
32 | gdb_test "p l1" " = \\.TRUE\\." | |
33 | gdb_test "p l2" " = \\.TRUE\\." | |
34 | gdb_test "p l4" " = \\.TRUE\\." | |
35 | gdb_test "p l8" " = \\.TRUE\\." | |
5e5d66b6 AB |
36 | |
37 | # Different Fortran compilers use different values for logical true. | |
38 | # Check how GDB handles this by modifying the underlying value for our | |
39 | # logical variables and check they still print as true. | |
40 | foreach_with_prefix var { l l1 l2 l4 l8 } { | |
41 | set len [get_integer_valueof "sizeof (${var})" "get sizeof ${var}"] | |
42 | set addr [get_hexadecimal_valueof "&l" "get address of ${var}"] | |
43 | ||
44 | for { set i 0 } { $i < $len } { incr i } { | |
45 | with_test_prefix "byte $i" { | |
44f41bb7 | 46 | gdb_test_no_output "set *((character *) ${addr}) = 0xff" \ |
5e5d66b6 AB |
47 | "set contents of byte at offset $i" |
48 | gdb_test "p l" " = \\.TRUE\\." | |
49 | incr addr | |
50 | set addr [format "0x%x" $addr] | |
51 | } | |
52 | } | |
53 | } |