}
set bp_location1 {main.T.Foo}
-set bp_location2 {(*main.T).Bar}
-set bp_location2_regexp {\(*main.T\).Bar}
+set bp_location2 {main.(*T).Bar}
+set bp_location2_regexp {main.\(\*T\).Bar}
if { [go_runto_main] < 0 } {
untested "could not run to main"
return -1
}
-if { [gdb_breakpoint ${bp_location1}] } {
- pass "setting breakpoint 1"
+set found_wrong_foo 0
+set found_wrong_bar 0
+gdb_test_multiple "maintenance print symbols" "" {
+ -re "^\r\n void main.Foo.N6_main.T\[^\r\n\]*(?=\r\n)" {
+ set found_wrong_foo 1
+ exp_continue
+ }
+ -re "^\r\n void main.Bar.pN6_main.T\[^\r\n\]*(?=\r\n)" {
+ set found_wrong_bar 1
+ exp_continue
+ }
+ -re "^\r\n void main.T.Bar\[^\r\n\]*(?=\r\n)" {
+ set found_wrong_bar 2
+ exp_continue
+ }
+ -re "\r\n$gdb_prompt $" {
+ pass $gdb_test_name
+ }
+ -re "\r\n\[^\r\n\]*(?=\r\n)" {
+ exp_continue
+ }
}
-setup_xfail "*-*-*" ;# mangling issues IIRC
-gdb_test "cont" "Breakpoint .*:${bp_location1}.*" "going to first breakpoint"
-if { [gdb_breakpoint ${bp_location2}] } {
- pass "setting breakpoint 2"
+if { $found_wrong_foo } {
+ # We have with gccgo-6/7:
+ # <1><553>: Abbrev Number: 21 (DW_TAG_subprogram)
+ # <554> DW_AT_name : main.Foo.N6_main.T
+ setup_xfail "*-*-*"
+} else {
+ # We have with gccgo-8/9/10:
+ # <1><1e24>: Abbrev Number: 40 (DW_TAG_subprogram)
+ # <1e25> DW_AT_name : main.Foo.main.T
+ # <1e2c> DW_AT_linkage_name: main.T.Foo
+
+ # For reference: with go1.11.13:
+ # <1><6c46b>: Abbrev Number: 2 (DW_TAG_subprogram)
+ # <6c46c> DW_AT_name : main.T.Foo
+}
+
+if { [gdb_breakpoint ${bp_location1} message]} {
+ gdb_test "cont" "Breakpoint .*, ${bp_location1}.*" \
+ "going to first breakpoint"
+}
+
+if { $found_wrong_bar == 1 } {
+ # We have with gccgo-6/7:
+ # <1><528>: Abbrev Number: 19 (DW_TAG_subprogram)
+ # <529> DW_AT_name : main.Bar.pN6_main.T
+ setup_xfail "*-*-*"
+} elseif { $found_wrong_bar == 2 } {
+ # We have with gccgo-8/9/10:
+ # <1><6e4>: Abbrev Number: 24 (DW_TAG_subprogram)
+ # <6e5> DW_AT_name : main.Bar..1main.T
+ # <6ec> DW_AT_linkage_name: main.T.Bar
+ # xfail for GCC PR93866
+ setup_xfail "*-*-*"
+} else {
+ # For reference: with go1.11.13:
+ # <1><6c49a>: Abbrev Number: 2 (DW_TAG_subprogram)
+ # <6c49b> DW_AT_name : main.(*T).Bar
+ }
+
+if { [gdb_breakpoint ${bp_location2} message] } {
+ gdb_test "cont" "Breakpoint .*, ${bp_location2_regexp}.*" \
+ "going to second breakpoint"
}
-setup_xfail "*-*-*" ;# mangling issues IIRC
-gdb_test "cont" "Breakpoint .*:${bp_location2_regexp}.*" "going to second breakpoint"