.byte 0x1 /* DW_AT_language */
.ascii "dw2-abs-hi-pc-hello.c\0" /* DW_AT_name */
.ascii "/tmp\0" /* DW_AT_comp_dir */
- .4byte .hello_start /* DW_AT_low_pc */
- .4byte .hello_end /* DW_AT_high_pc */
+ .4byte HELLO_START /* DW_AT_low_pc */
+ .4byte HELLO_END /* DW_AT_high_pc */
.4byte .Ldebug_line0 /* DW_AT_stmt_list */
.uleb128 0x2 /* (DIE (0x2d) DW_TAG_subprogram) */
.byte 0x1 /* DW_AT_external */
.byte 0x1 /* DW_AT_decl_file (hello.c) */
.byte 0x13 /* DW_AT_decl_line */
.byte 0x1 /* DW_AT_prototyped */
- .4byte .hello_start /* DW_AT_low_pc */
- .4byte .hello_end /* DW_AT_high_pc */
+ .4byte HELLO_START /* DW_AT_low_pc */
+ .4byte HELLO_END /* DW_AT_high_pc */
.byte 0 /* end of children of DIE 0xb */
.Ledebug_info0:
.byte 0 /* set address to .hello_start */
.uleb128 0x5
.byte 0x2
- .4byte .hello_start
+ .4byte HELLO_START
.byte 0x3 /* DW_LNS_advance_line */
.sleb128 22 /* ... to 23 */
.byte 0x5 /* column 0 */
.byte 0 /* set address to .hello_end */
.uleb128 0x5
.byte 0x2
- .4byte .hello_end
+ .4byte HELLO_END
.byte 0 /* end sequence */
.uleb128 0x1
.byte 0x1
extern int v;
-asm (".hello_start: .globl .hello_start\n");
void
hello (void)
{
+asm ("hello_label: .globl hello_label\n");
asm (".hello0: .globl .hello0\n");
v++;
asm (".hello1: .globl .hello1\n");
}
-asm (".hello_end: .globl .hello_end\n");
.byte 0x1 /* DW_AT_language */
.ascii "dw2-abs-hi-pc-world.c\0" /* DW_AT_name */
.ascii "/tmp\0" /* DW_AT_comp_dir */
- .4byte .world_start /* DW_AT_low_pc */
- .4byte .world_end /* DW_AT_high_pc */
+ .4byte WORLD_START /* DW_AT_low_pc */
+ .4byte WORLD_END /* DW_AT_high_pc */
.4byte .Ldebug_line0 /* DW_AT_stmt_list */
.uleb128 0x2 /* (DIE (0x2d) DW_TAG_subprogram) */
.byte 0x1 /* DW_AT_external */
.byte 0x1 /* DW_AT_decl_file (world.c) */
.byte 0x13 /* DW_AT_decl_line */
.byte 0x1 /* DW_AT_prototyped */
- .4byte .world_start /* DW_AT_low_pc */
- .4byte .world_end /* DW_AT_high_pc */
+ .4byte WORLD_START /* DW_AT_low_pc */
+ .4byte WORLD_END /* DW_AT_high_pc */
.byte 0 /* end of children of DIE 0xb */
.Ledebug_info0:
.byte 0 /* set address to .world_start */
.uleb128 0x5
.byte 0x2
- .4byte .world_start
+ .4byte WORLD_START
.byte 0x3 /* DW_LNS_advance_line */
.sleb128 22 /* ... to 23 */
.byte 0x5 /* column 0 */
.byte 0 /* set address to .world_end */
.uleb128 0x5
.byte 0x2
- .4byte .world_end
+ .4byte WORLD_END
.byte 0 /* end sequence */
.uleb128 0x1
.byte 0x1
extern int v;
-asm (".world_start: .globl .world_start\n");
void
world (void)
{
+asm ("world_label: .globl world_label\n");
asm (".world0: .globl .world0\n");
v++;
asm (".world1: .globl .world1\n");
}
-asm (".world_end: .globl .world_end\n");
}
standard_testfile
-set executable ${testfile}
-if {[build_executable ${testfile}.exp ${executable} "${testfile}.c ${testfile}-hello-dbg.S ${testfile}-hello.c ${testfile}-world-dbg.S ${testfile}-world.c" "nodebug"] == -1} {
+set sources \
+ [list \
+ ${testfile}.c \
+ ${testfile}-hello.c \
+ ${testfile}-world.c]
+set sources [lmap i $sources { string cat "${srcdir}/${subdir}/" $i }]
+lassign [function_range hello $sources] \
+ hello_start hello_len
+lassign [function_range world $sources] \
+ world_start world_len
+
+set sources \
+ [list \
+ ${testfile}.c \
+ ${testfile}-hello-dbg.S \
+ ${testfile}-hello.c \
+ ${testfile}-world-dbg.S \
+ ${testfile}-world.c]
+set flags \
+ [list \
+ "nodebug" \
+ "additional_flags=\"-DHELLO_START=$hello_start\"" \
+ "additional_flags=\"-DHELLO_END=$hello_start + $hello_len\"" \
+ "additional_flags=\"-DWORLD_START=$world_start\"" \
+ "additional_flags=\"-DWORLD_END=$world_start + $world_len\""]
+set executable ${testfile}
+if {[build_executable ${testfile}.exp ${executable} $sources $flags] == -1} {
return -1
}