Fix C++ template function matching in cooked index
[binutils-gdb.git] / gdb / testsuite / gdb.base / fission-macro.exp
blob9e5d5c0a0d5aebdb67c1db82a2b7023e9cc0de0b
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 } {
22     set opts {}
23     lappend opts debug
24     lappend opts quiet
25     lappend opts additional_flags=-gsplit-dwarf
26     lappend opts macros
28     if { $dwarf_bits == 64 } {
29         lappend opts additional_flags=-gdwarf64
30     }
32     if { $strict_dwarf } {
33         lappend opts additional_flags=-gstrict-dwarf
34     }
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] } {
42         return -1
43     }
45     clean_restart
47     gdb_load_no_complaints $::binfile-$id
49     if {![runto_main]} {
50         return 0
51     }
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"
59     gdb_breakpoint foo
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.
72         continue
73     }
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
77         }
78     }