1 # Copyright 2024 Free Software Foundation, Inc.
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
5 # the Free Software Foundation; either version 3 of the License, or
6 # (at your option) any later version.
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.
13 # You should have received a copy of the GNU General Public License
14 # along with this program. If not, see <http://www.gnu.org/licenses/>. */
16 # Gcc 14 is the first release containing the fix for PR debug/111409.
17 require {expr [gcc_major_version] >= 14}
19 standard_testfile .c -2.c
21 proc do_tests { dwarf_version dwarf_bits strict_dwarf } {
25 lappend opts additional_flags=-gsplit-dwarf
28 if { $dwarf_bits == 64 } {
29 lappend opts additional_flags=-gdwarf64
32 if { $strict_dwarf } {
33 lappend opts additional_flags=-gstrict-dwarf
36 lappend opts additional_flags=-gdwarf-$dwarf_version
38 set id v$dwarf_version-b$dwarf_bits-s$strict_dwarf
40 set srcfiles [list $::srcfile $::srcfile2]
41 if { [build_executable "failed to prepare" $::testfile-$id $srcfiles $opts] } {
47 gdb_load_no_complaints $::binfile-$id
53 gdb_test "p FIRST" " = 1"
54 gdb_test "p SECOND" " = 2"
56 gdb_test "info macro FIRST" "#define FIRST 1"
57 gdb_test "info macro SECOND" "#define SECOND 2"
60 gdb_continue_to_breakpoint "foo"
62 gdb_test "p THIRD" " = 3"
63 gdb_test "p FOURTH" " = 4"
65 gdb_test "info macro THIRD" "#define THIRD 3"
66 gdb_test "info macro FOURTH" "#define FOURTH 4"
69 foreach_with_prefix dwarf_version {4 5} {
70 if { $dwarf_version == 4 && [gcc_major_version] < 15 } {
71 # Gcc does not contain fix for PR debug/115066.
74 foreach_with_prefix dwarf_bits {32 64} {
75 foreach_with_prefix strict_dwarf {0 1} {
76 do_tests $dwarf_version $dwarf_bits $strict_dwarf