2012-03-07 Luis Machado * ax-gdb.c (gen_fetch): Fail gracefully and use error instead of internal error for unknown/unsupported types. Revert: 2012-03-03 Jan Kratochvil Implement testsuite workaround for PR breakpoints/13781. * gdb.cp/mb-templates.exp: New loop with variable $workaround. (set breakpoint condition-evaluation host): New conditional command. Index: HEAD-git/gdb/ax-gdb.c =================================================================== --- HEAD-git.orig/gdb/ax-gdb.c 2012-03-07 10:07:48.186611086 -0300 +++ HEAD-git/gdb/ax-gdb.c 2012-03-07 14:16:23.846145476 -0300 @@ -557,8 +557,8 @@ gen_fetch (struct agent_expr *ax, struct pointer (other code's fault), or we're not implementing something we should be (this code's fault). In any case, it's a bug the user shouldn't see. */ - internal_error (__FILE__, __LINE__, - _("gen_fetch: bad type code")); + error (_("gen_fetch: Unsupported type code `%s'."), + TYPE_NAME (type)); } } Index: HEAD-git/gdb/testsuite/gdb.cp/mb-templates.exp =================================================================== --- HEAD-git.orig/gdb/testsuite/gdb.cp/mb-templates.exp 2012-03-07 10:08:11.218610354 -0300 +++ HEAD-git/gdb/testsuite/gdb.cp/mb-templates.exp 2012-03-07 14:11:03.734155471 -0300 @@ -38,35 +38,24 @@ if { [gdb_compile "${srcdir}/${subdir}/ return -1 } -# If GDB crashes try it again workarounding PR breakpoints/13781. +clean_restart ${executable} -foreach workaround [list "" " (workaround)"] { - clean_restart ${executable} +set bp_location [gdb_get_line_number "set breakpoint here"] - if {${workaround} != ""} { - gdb_test_no_output "set breakpoint condition-evaluation host" - } - - set bp_location [gdb_get_line_number "set breakpoint here"] +# Set a breakpoint with multiple locations +# and a condition. - # Set a breakpoint with multiple locations - # and a condition. +gdb_test "break $srcfile:$bp_location if i==1" \ + "Breakpoint.*at.*: $srcfile:$bp_location. \\(2 locations\\).*" \ + "initial condition: set breakpoint" - gdb_test "break $srcfile:$bp_location if i==1" \ - "Breakpoint.*at.*: $srcfile:$bp_location. \\(2 locations\\).*" \ - "initial condition: set breakpoint$workaround" +gdb_run_cmd - gdb_run_cmd - - if {${workaround} == "" && [is_remote target]} { - setup_kfail breakpoints/13781 "*-*-*" - } - set test "initial condition: run to breakpoint$workaround" - gdb_test_multiple "" $test { - -re "Breakpoint \[0-9\]+,.*foo \\(i=1\\).*$gdb_prompt $" { - pass $test - break - } +set test "initial condition: run to breakpoint" +gdb_test_multiple "" $test { + -re "Breakpoint \[0-9\]+,.*foo \\(i=1\\).*$gdb_prompt $" { + pass $test + break } }