gdb/testsuite/dwarf: simplify line number program syntax

By calling `uplevel $body` in the program proc (a pattern we use at many
places), we can get rid of curly braces around each line number program
directive.  That seems like a nice small improvement to me.

Change-Id: Ib327edcbffbd4c23a08614adee56c12ea25ebc0b
This commit is contained in:
Simon Marchi
2022-04-06 21:51:55 -04:00
parent ae58413816
commit d4c4a2298c
26 changed files with 616 additions and 618 deletions

View File

@ -135,35 +135,35 @@ Dwarf::assemble $asm_file {
# of adding some !is_stmt at the end of a loop line, making until # of adding some !is_stmt at the end of a loop line, making until
# not work properly. # not work properly.
program { program {
{DW_LNE_set_address $main_start} DW_LNE_set_address $main_start
{line [gdb_get_line_number "TAG: main prologue"]} line [gdb_get_line_number "TAG: main prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address loop_start} DW_LNE_set_address loop_start
{line [gdb_get_line_number "TAG: loop line"]} line [gdb_get_line_number "TAG: loop line"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address loop_condition} DW_LNE_set_address loop_condition
{line [gdb_get_line_number "TAG: loop line"]} line [gdb_get_line_number "TAG: loop line"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address loop_code} DW_LNE_set_address loop_code
{line [gdb_get_line_number "TAG: loop code"]} line [gdb_get_line_number "TAG: loop code"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address loop_increment} DW_LNE_set_address loop_increment
{line [gdb_get_line_number "TAG: loop line"]} line [gdb_get_line_number "TAG: loop line"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address loop_jump} DW_LNE_set_address loop_jump
{line [gdb_get_line_number "TAG: loop line"]} line [gdb_get_line_number "TAG: loop line"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_return} DW_LNE_set_address main_return
{line [gdb_get_line_number "TAG: main return"]} line [gdb_get_line_number "TAG: main return"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $main_end} DW_LNE_set_address $main_end
{line [expr [gdb_get_line_number "TAG: main return"] + 1]} line [expr [gdb_get_line_number "TAG: main return"] + 1]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }

View File

@ -127,13 +127,13 @@ Dwarf::assemble $asm_file {
# Line data doens't need to be correct, just present. # Line data doens't need to be correct, just present.
program { program {
{DW_LNE_set_address [lindex $main_result 0]} DW_LNE_set_address [lindex $main_result 0]
{DW_LNS_advance_line 10} DW_LNS_advance_line 10
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_pc [lindex $main_result 1]} DW_LNS_advance_pc [lindex $main_result 1]
{DW_LNS_advance_line 19} DW_LNS_advance_line 19
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
@ -143,13 +143,13 @@ Dwarf::assemble $asm_file {
# Line data doens't need to be correct, just present. # Line data doens't need to be correct, just present.
program { program {
{DW_LNE_set_address some_func} DW_LNE_set_address some_func
{DW_LNS_advance_line 5} DW_LNS_advance_line 5
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_pc 64} DW_LNS_advance_pc 64
{DW_LNS_advance_line 8} DW_LNS_advance_line 8
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -68,34 +68,34 @@ Dwarf::assemble $asm_file {
file_name "$srcfile3" 1 file_name "$srcfile3" 1
program { program {
{DW_LNE_set_address $main_start} DW_LNE_set_address $main_start
{DW_LNS_advance_line 15} DW_LNS_advance_line 15
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_2} DW_LNE_set_address line_label_2
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_3} DW_LNE_set_address line_label_3
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_4} DW_LNE_set_address line_label_4
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_5} DW_LNE_set_address line_label_5
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_6} DW_LNE_set_address line_label_6
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $main_end} DW_LNE_set_address $main_end
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -119,41 +119,41 @@ proc do_test { start_label func_name tag } {
file_name "$srcfile4" 1 file_name "$srcfile4" 1
program { program {
{DW_LNE_set_address line_label_1} DW_LNE_set_address line_label_1
{DW_LNS_advance_line 15} DW_LNS_advance_line 15
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_2} DW_LNE_set_address line_label_2
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_set_file 2} DW_LNS_set_file 2
{DW_LNE_set_address line_label_3} DW_LNE_set_address line_label_3
{DW_LNS_advance_line 4} DW_LNS_advance_line 4
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_4} DW_LNE_set_address line_label_4
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_line -4} DW_LNS_advance_line -4
{DW_LNS_set_file 1} DW_LNS_set_file 1
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_set_file 2} DW_LNS_set_file 2
{DW_LNE_set_address line_label_5} DW_LNE_set_address line_label_5
{DW_LNS_advance_line 5} DW_LNS_advance_line 5
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_set_file 1} DW_LNS_set_file 1
{DW_LNE_set_address line_label_6} DW_LNE_set_address line_label_6
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_7} DW_LNE_set_address line_label_7
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -109,39 +109,39 @@ Dwarf::assemble $asm_file {
file_name "$srcfile4" 1 file_name "$srcfile4" 1
program { program {
{DW_LNE_set_address line_label_1} DW_LNE_set_address line_label_1
{DW_LNS_advance_line 15} DW_LNS_advance_line 15
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_2} DW_LNE_set_address line_label_2
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_set_file 2} DW_LNS_set_file 2
{DW_LNE_set_address line_label_3} DW_LNE_set_address line_label_3
{DW_LNS_advance_line 4} DW_LNS_advance_line 4
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_4} DW_LNE_set_address line_label_4
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_line -4} DW_LNS_advance_line -4
{DW_LNS_set_file 1} DW_LNS_set_file 1
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_5} DW_LNE_set_address line_label_5
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_6} DW_LNE_set_address line_label_6
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_7} DW_LNE_set_address line_label_7
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -98,39 +98,39 @@ Dwarf::assemble $asm_file {
file_name "$srcfile4" 1 file_name "$srcfile4" 1
program { program {
{DW_LNE_set_address line_label_1} DW_LNE_set_address line_label_1
{DW_LNS_advance_line 15} DW_LNS_advance_line 15
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_2} DW_LNE_set_address line_label_2
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_set_file 2} DW_LNS_set_file 2
{DW_LNE_set_address line_label_3} DW_LNE_set_address line_label_3
{DW_LNS_advance_line 4} DW_LNS_advance_line 4
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_4} DW_LNE_set_address line_label_4
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_line -4} DW_LNS_advance_line -4
{DW_LNS_set_file 1} DW_LNS_set_file 1
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_5} DW_LNE_set_address line_label_5
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_6} DW_LNE_set_address line_label_6
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_7} DW_LNE_set_address line_label_7
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -187,95 +187,95 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address $main_start} DW_LNE_set_address $main_start
{line [gdb_get_line_number "main prologue"]} line [gdb_get_line_number "main prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label} DW_LNE_set_address main_label
{line [gdb_get_line_number "main set global_var"]} line [gdb_get_line_number "main set global_var"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label2} DW_LNE_set_address main_label2
{line [gdb_get_line_number "main call aaa"]} line [gdb_get_line_number "main call aaa"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label2} DW_LNE_set_address main_label2
{line [gdb_get_line_number "aaa return"]} line [gdb_get_line_number "aaa return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label2} DW_LNE_set_address main_label2
{line [gdb_get_line_number "bbb return"]} line [gdb_get_line_number "bbb return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label2} DW_LNE_set_address main_label2
{line [gdb_get_line_number "ccc return"]} line [gdb_get_line_number "ccc return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label3} DW_LNE_set_address main_label3
{line [gdb_get_line_number "main end"]} line [gdb_get_line_number "main end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $main_end} DW_LNE_set_address $main_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $ddd_start} DW_LNE_set_address $ddd_start
{line [gdb_get_line_number "ddd prologue"]} line [gdb_get_line_number "ddd prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address ddd_label} DW_LNE_set_address ddd_label
{line [gdb_get_line_number "ddd return"]} line [gdb_get_line_number "ddd return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address ddd_label2} DW_LNE_set_address ddd_label2
{line [gdb_get_line_number "ddd end"]} line [gdb_get_line_number "ddd end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $ddd_end} DW_LNE_set_address $ddd_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $eee_start} DW_LNE_set_address $eee_start
{line [gdb_get_line_number "eee prologue"]} line [gdb_get_line_number "eee prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address eee_label} DW_LNE_set_address eee_label
{line [gdb_get_line_number "eee return"]} line [gdb_get_line_number "eee return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address eee_label2} DW_LNE_set_address eee_label2
{line [gdb_get_line_number "eee end"]} line [gdb_get_line_number "eee end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $eee_end} DW_LNE_set_address $eee_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $fff_start} DW_LNE_set_address $fff_start
{line [gdb_get_line_number "fff prologue"]} line [gdb_get_line_number "fff prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address fff_label} DW_LNE_set_address fff_label
{line [gdb_get_line_number "fff return"]} line [gdb_get_line_number "fff return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address fff_label} DW_LNE_set_address fff_label
{line [gdb_get_line_number "ggg return"]} line [gdb_get_line_number "ggg return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address fff_label} DW_LNE_set_address fff_label
{line [gdb_get_line_number "hhh return"]} line [gdb_get_line_number "hhh return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address fff_label} DW_LNE_set_address fff_label
{line [gdb_get_line_number "iii return"]} line [gdb_get_line_number "iii return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address fff_label2} DW_LNE_set_address fff_label2
{line [gdb_get_line_number "fff end"]} line [gdb_get_line_number "fff end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $fff_end} DW_LNE_set_address $fff_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $jjj_start} DW_LNE_set_address $jjj_start
{line [gdb_get_line_number "jjj prologue"]} line [gdb_get_line_number "jjj prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address jjj_label} DW_LNE_set_address jjj_label
{line [gdb_get_line_number "jjj return"]} line [gdb_get_line_number "jjj return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address jjj_label2} DW_LNE_set_address jjj_label2
{line [gdb_get_line_number "jjj end"]} line [gdb_get_line_number "jjj end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $jjj_end} DW_LNE_set_address $jjj_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $kkk_start} DW_LNE_set_address $kkk_start
{line [gdb_get_line_number "kkk prologue"]} line [gdb_get_line_number "kkk prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address kkk_label} DW_LNE_set_address kkk_label
{line [gdb_get_line_number "kkk return"]} line [gdb_get_line_number "kkk return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $kkk_end} DW_LNE_set_address $kkk_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }

View File

@ -94,28 +94,28 @@ Dwarf::assemble $asm_file {
set f2_l1 [gdb_get_line_number "callee: body" $srcfile4] set f2_l1 [gdb_get_line_number "callee: body" $srcfile4]
program { program {
{DW_LNE_set_address line_label_1} DW_LNE_set_address line_label_1
{line $f1_l1} line $f1_l1
{DW_LNS_copy} DW_LNS_copy
{line ${f1_l2}} line ${f1_l2}
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_set_file 2} DW_LNS_set_file 2
{line ${f2_l1}} line ${f2_l1}
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_set_file 1} DW_LNS_set_file 1
{DW_LNE_set_address line_label_2} DW_LNE_set_address line_label_2
{line ${f1_l3}} line ${f1_l3}
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_3} DW_LNE_set_address line_label_3
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -94,29 +94,29 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address $main_start} DW_LNE_set_address $main_start
{line [gdb_get_line_number "main prologue"]} line [gdb_get_line_number "main prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label} DW_LNE_set_address main_label
{line [gdb_get_line_number "main set global_var"]} line [gdb_get_line_number "main set global_var"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label2} DW_LNE_set_address main_label2
{line [gdb_get_line_number "main call foo"]} line [gdb_get_line_number "main call foo"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label2} DW_LNE_set_address main_label2
{line [gdb_get_line_number "foo call bar"]} line [gdb_get_line_number "foo call bar"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $main_end} DW_LNE_set_address $main_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $bar_start} DW_LNE_set_address $bar_start
{line [gdb_get_line_number "bar prologue"]} line [gdb_get_line_number "bar prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar_label} DW_LNE_set_address bar_label
{line [gdb_get_line_number "bar return global_var"]} line [gdb_get_line_number "bar return global_var"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $bar_end} DW_LNE_set_address $bar_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }

View File

@ -110,20 +110,20 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address $main_start} DW_LNE_set_address $main_start
{line [gdb_get_line_number "main prologue"]} line [gdb_get_line_number "main prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label} DW_LNE_set_address main_label
{line [gdb_get_line_number "func call"]} line [gdb_get_line_number "func call"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label} DW_LNE_set_address main_label
{line [gdb_get_line_number "func end"]} line [gdb_get_line_number "func end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label2} DW_LNE_set_address main_label2
{line [gdb_get_line_number "main end"]} line [gdb_get_line_number "main end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $main_end} DW_LNE_set_address $main_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -68,84 +68,84 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address main} DW_LNE_set_address main
{line [gdb_get_line_number "main prologue"]} line [gdb_get_line_number "main prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_0} DW_LNE_set_address line_label_0
{line [gdb_get_line_number "main start"]} line [gdb_get_line_number "main start"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_1} DW_LNE_set_address line_label_1
{line [gdb_get_line_number "Line 1"]} line [gdb_get_line_number "Line 1"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_2} DW_LNE_set_address line_label_2
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_3} DW_LNE_set_address line_label_3
{line [gdb_get_line_number "Line 2"]} line [gdb_get_line_number "Line 2"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_4} DW_LNE_set_address line_label_4
{line [gdb_get_line_number "Line 1"]} line [gdb_get_line_number "Line 1"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_5} DW_LNE_set_address line_label_5
{line [gdb_get_line_number "Line 3"]} line [gdb_get_line_number "Line 3"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_6} DW_LNE_set_address line_label_6
{line [gdb_get_line_number "Line 4"]} line [gdb_get_line_number "Line 4"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_7} DW_LNE_set_address line_label_7
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_8} DW_LNE_set_address line_label_8
{line [gdb_get_line_number "Line 2"]} line [gdb_get_line_number "Line 2"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_9} DW_LNE_set_address line_label_9
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_10} DW_LNE_set_address line_label_10
{line [gdb_get_line_number "Line 3"]} line [gdb_get_line_number "Line 3"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_11} DW_LNE_set_address line_label_11
{line [gdb_get_line_number "Line 5"]} line [gdb_get_line_number "Line 5"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_12} DW_LNE_set_address line_label_12
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_13} DW_LNE_set_address line_label_13
{line [gdb_get_line_number "Line 3"]} line [gdb_get_line_number "Line 3"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_14} DW_LNE_set_address line_label_14
{line [gdb_get_line_number "Line 4"]} line [gdb_get_line_number "Line 4"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_15} DW_LNE_set_address line_label_15
{line [gdb_get_line_number "Line 5"]} line [gdb_get_line_number "Line 5"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_16} DW_LNE_set_address line_label_16
{line [gdb_get_line_number "main end"]} line [gdb_get_line_number "main end"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address ${main_end}} DW_LNE_set_address ${main_end}
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -68,35 +68,35 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address main} DW_LNE_set_address main
{line [gdb_get_line_number "main prologue"]} line [gdb_get_line_number "main prologue"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_1} DW_LNE_set_address line_label_1
{line [gdb_get_line_number "main, set var to 99"]} line [gdb_get_line_number "main, set var to 99"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_2} DW_LNE_set_address line_label_2
{line [gdb_get_line_number "main, set var to 0"]} line [gdb_get_line_number "main, set var to 0"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_3} DW_LNE_set_address line_label_3
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_4} DW_LNE_set_address line_label_4
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_5} DW_LNE_set_address line_label_5
{line [gdb_get_line_number "main end"]} line [gdb_get_line_number "main end"]
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address ${main_end}} DW_LNE_set_address ${main_end}
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -62,46 +62,46 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address bar1_label} DW_LNE_set_address bar1_label
{line 27} line 27
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar1_label_2} DW_LNE_set_address bar1_label_2
{line 29} line 29
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar1_label_3} DW_LNE_set_address bar1_label_3
{line 0} line 0
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar1_label_4} DW_LNE_set_address bar1_label_4
{line 33} line 33
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar1_label_5} DW_LNE_set_address bar1_label_5
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address bar2_label} DW_LNE_set_address bar2_label
{line 41} line 41
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar2_label_2} DW_LNE_set_address bar2_label_2
{line 43} line 43
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar2_label_3} DW_LNE_set_address bar2_label_3
{line 0} line 0
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNE_set_address bar2_label_4} DW_LNE_set_address bar2_label_4
{line 47} line 47
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar2_label_5} DW_LNE_set_address bar2_label_5
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -83,24 +83,24 @@ proc test_1 { _cv _cdw64 _lv _ldw64 {_string_form ""}} {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address bar_label} DW_LNE_set_address bar_label
{line [line_for bar_label]} line [line_for bar_label]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar_label_2} DW_LNE_set_address bar_label_2
{line [line_for bar_label_2]} line [line_for bar_label_2]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar_label_3} DW_LNE_set_address bar_label_3
{line [line_for bar_label_3]} line [line_for bar_label_3]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar_label_4} DW_LNE_set_address bar_label_4
{line [line_for bar_label_4]} line [line_for bar_label_4]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar_label_5} DW_LNE_set_address bar_label_5
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -58,19 +58,19 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address main_label} DW_LNE_set_address main_label
{line 1} line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_pc 1} DW_LNS_advance_pc 1
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address 0} DW_LNE_set_address 0
{line 2} line 2
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_pc 1} DW_LNS_advance_pc 1
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -52,28 +52,28 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address $main_start} DW_LNE_set_address $main_start
{line [gdb_get_line_number "main prologue"]} line [gdb_get_line_number "main prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label} DW_LNE_set_address main_label
{line [gdb_get_line_number "main assign m"]} line [gdb_get_line_number "main assign m"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_assign_n} DW_LNE_set_address main_assign_n
{line [gdb_get_line_number "main assign n"]} line [gdb_get_line_number "main assign n"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_end_prologue} DW_LNE_set_address main_end_prologue
{line [gdb_get_line_number "main assign o"]} line [gdb_get_line_number "main assign o"]
{DW_LNS_set_prologue_end} DW_LNS_set_prologue_end
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_end} DW_LNE_set_address main_end
{line [gdb_get_line_number "main end"]} line [gdb_get_line_number "main end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -84,29 +84,29 @@ Dwarf::assemble $asm_file {
# table data associated with it. We do make use of the fake # table data associated with it. We do make use of the fake
# line numbers that we pick here in the tests below. # line numbers that we pick here in the tests below.
program { program {
{DW_LNE_set_address [lindex $main_func 0]} DW_LNE_set_address [lindex $main_func 0]
{DW_LNS_advance_line 10} DW_LNS_advance_line 10
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_pc [lindex $main_func 1]} DW_LNS_advance_pc [lindex $main_func 1]
{DW_LNS_advance_line 19} DW_LNS_advance_line 19
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address [lindex $frame2_func 0]} DW_LNE_set_address [lindex $frame2_func 0]
{DW_LNS_advance_line 20} DW_LNS_advance_line 20
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_pc [lindex $frame2_func 1]} DW_LNS_advance_pc [lindex $frame2_func 1]
{DW_LNS_advance_line 29} DW_LNS_advance_line 29
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address [lindex $frame3_func 0]} DW_LNE_set_address [lindex $frame3_func 0]
{DW_LNS_advance_line 30} DW_LNS_advance_line 30
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_pc [lindex $frame3_func 1]} DW_LNS_advance_pc [lindex $frame3_func 1]
{DW_LNS_advance_line 39} DW_LNS_advance_line 39
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }

View File

@ -133,66 +133,66 @@ proc do_test {suffix} {
# Generate a line table program. An attempt was made to make it # Generate a line table program. An attempt was made to make it
# reasonably accurate as it made debugging the test case easier. # reasonably accurate as it made debugging the test case easier.
program { program {
{DW_LNE_set_address $main_start} DW_LNE_set_address $main_start
{line [gdb_get_line_number "main prologue"]} line [gdb_get_line_number "main prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label} DW_LNE_set_address main_label
{line [gdb_get_line_number "main foo call"]} line [gdb_get_line_number "main foo call"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label2} DW_LNE_set_address main_label2
{line [gdb_get_line_number "main return"]} line [gdb_get_line_number "main return"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $main_end} DW_LNE_set_address $main_end
{line [expr [gdb_get_line_number "main end"] + 1]} line [expr [gdb_get_line_number "main end"] + 1]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $foo_start} DW_LNE_set_address $foo_start
{line [gdb_get_line_number "foo prologue"]} line [gdb_get_line_number "foo prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address foo_label} DW_LNE_set_address foo_label
{line [gdb_get_line_number "foo bar call"]} line [gdb_get_line_number "foo bar call"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address foo_label2} DW_LNE_set_address foo_label2
{line [gdb_get_line_number "foo foo_cold call"]} line [gdb_get_line_number "foo foo_cold call"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address foo_label3} DW_LNE_set_address foo_label3
{line [gdb_get_line_number "foo end"]} line [gdb_get_line_number "foo end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $foo_end} DW_LNE_set_address $foo_end
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $bar_start} DW_LNE_set_address $bar_start
{line [gdb_get_line_number "bar end"]} line [gdb_get_line_number "bar end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_pc $bar_len} DW_LNS_advance_pc $bar_len
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $baz_start} DW_LNE_set_address $baz_start
{line [gdb_get_line_number "baz end"]} line [gdb_get_line_number "baz end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_pc $baz_len} DW_LNS_advance_pc $baz_len
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $foo_cold_start} DW_LNE_set_address $foo_cold_start
{line [gdb_get_line_number "foo_cold prologue"]} line [gdb_get_line_number "foo_cold prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address foo_cold_label} DW_LNE_set_address foo_cold_label
{line [gdb_get_line_number "foo_cold baz call"]} line [gdb_get_line_number "foo_cold baz call"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address foo_cold_label2} DW_LNE_set_address foo_cold_label2
{line [gdb_get_line_number "foo_cold end"]} line [gdb_get_line_number "foo_cold end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $foo_cold_end} DW_LNE_set_address $foo_cold_end
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }

View File

@ -79,29 +79,29 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address bar_label} DW_LNE_set_address bar_label
{line 26} line 26
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $bar_end} DW_LNE_set_address $bar_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address main_label} DW_LNE_set_address main_label
{line 32} line 32
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label_2} DW_LNE_set_address main_label_2
{line 36} line 36
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNE_set_address main_label_3} DW_LNE_set_address main_label_3
{line 36} line 36
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $main_end} DW_LNE_set_address $main_end
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -77,7 +77,7 @@ Dwarf::assemble $asm_file {
include_dir "${srcdir}/${subdir}" include_dir "${srcdir}/${subdir}"
file_name "dw2-symtab-includes.h" 1 file_name "dw2-symtab-includes.h" 1
program { program {
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
} }
} }
} }

View File

@ -51,7 +51,7 @@ Dwarf::assemble $asm_file {
include_dir "${srcdir}/${subdir}" include_dir "${srcdir}/${subdir}"
file_name "dw2-symtab-includes.h" 1 file_name "dw2-symtab-includes.h" 1
program { program {
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
} }
} }
} }

View File

@ -57,14 +57,14 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address main_label} DW_LNE_set_address main_label
{line 27} line 27
{DW_LNE_user 1 $DW_LNE_lo_usr} DW_LNE_user 1 $DW_LNE_lo_usr
{DW_LNE_user 2 $DW_LNE_hi_usr} DW_LNE_user 2 $DW_LNE_hi_usr
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address main_label_2} DW_LNE_set_address main_label_2
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -88,18 +88,18 @@ Dwarf::assemble $asm_file_1 {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address $func_start} DW_LNE_set_address $func_start
{DW_LNS_advance_line 24} DW_LNS_advance_line 24
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_4} DW_LNE_set_address line_label_4
{DW_LNS_advance_line 3} DW_LNS_advance_line 3
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $func_end} DW_LNE_set_address $func_end
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
@ -164,26 +164,26 @@ Dwarf::assemble $asm_file_2 {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address $main_start} DW_LNE_set_address $main_start
{DW_LNS_advance_line 32} DW_LNS_advance_line 32
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_1} DW_LNE_set_address line_label_1
{DW_LNS_advance_line 3} DW_LNS_advance_line 3
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_2} DW_LNE_set_address line_label_2
{DW_LNS_advance_line 2} DW_LNS_advance_line 2
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_3} DW_LNE_set_address line_label_3
{DW_LNS_advance_line 2} DW_LNS_advance_line 2
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $main_end} DW_LNE_set_address $main_end
{DW_LNS_advance_line 2} DW_LNS_advance_line 2
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }

View File

@ -83,37 +83,37 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1 file_name "$srcfile" 1
program { program {
{DW_LNE_set_address line_label_1} DW_LNE_set_address line_label_1
{DW_LNS_advance_line 15} DW_LNS_advance_line 15
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_2} DW_LNE_set_address line_label_2
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_3} DW_LNE_set_address line_label_3
{DW_LNS_advance_line 4} DW_LNS_advance_line 4
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_4} DW_LNE_set_address line_label_4
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNS_advance_line -4} DW_LNS_advance_line -4
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_5} DW_LNE_set_address line_label_5
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_6} DW_LNE_set_address line_label_6
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_negate_stmt} DW_LNS_negate_stmt
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address line_label_7} DW_LNE_set_address line_label_7
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }
} }

View File

@ -267,31 +267,31 @@ Dwarf::assemble ${asm_file} {
# Generate a line table program. # Generate a line table program.
program { program {
{DW_LNE_set_address $foo_start} DW_LNE_set_address $foo_start
{line [gdb_get_line_number "foo prologue"]} line [gdb_get_line_number "foo prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address foo_label} DW_LNE_set_address foo_label
{line [gdb_get_line_number "foo return"]} line [gdb_get_line_number "foo return"]
{DW_LNS_copy} DW_LNS_copy
{line [gdb_get_line_number "foo end"]} line [gdb_get_line_number "foo end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $foo_end} DW_LNE_set_address $foo_end
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
{DW_LNE_set_address $bar_start} DW_LNE_set_address $bar_start
{line [gdb_get_line_number "bar prologue"]} line [gdb_get_line_number "bar prologue"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address bar_label} DW_LNE_set_address bar_label
{line [gdb_get_line_number "bar return"]} line [gdb_get_line_number "bar return"]
{DW_LNS_copy} DW_LNS_copy
{line [gdb_get_line_number "bar end"]} line [gdb_get_line_number "bar end"]
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_set_address $bar_end} DW_LNE_set_address $bar_end
{DW_LNS_advance_line 1} DW_LNS_advance_line 1
{DW_LNS_copy} DW_LNS_copy
{DW_LNE_end_sequence} DW_LNE_end_sequence
} }
} }

View File

@ -2410,7 +2410,7 @@ namespace eval Dwarf {
define_label $_line_header_end_label define_label $_line_header_end_label
} }
proc program {statements} { proc program { body } {
variable _line_header_end_label variable _line_header_end_label
variable _line variable _line
@ -2502,9 +2502,7 @@ namespace eval Dwarf {
_op .sleb128 ${num} _op .sleb128 ${num}
} }
foreach statement $statements { uplevel $body
uplevel 1 $statement
}
} }
uplevel $body uplevel $body