1; RUN: llc -mcpu=core2 -mtriple=i686-pc-win32 -O0 < %s | FileCheck --check-prefix=X86 %s 2; RUN: llc -mcpu=core2 -mtriple=i686-pc-win32 -o - -O0 < %s | llvm-mc -triple=i686-pc-win32 -filetype=obj | llvm-readobj -s -sr -codeview -section-symbols | FileCheck --check-prefix=OBJ32 %s 3; RUN: llc -mcpu=core2 -mtriple=x86_64-pc-win32 -O0 < %s | FileCheck --check-prefix=X64 %s 4; RUN: llc -mcpu=core2 -mtriple=x86_64-pc-win32 -o - -O0 < %s | llvm-mc -triple=x86_64-pc-win32 -filetype=obj | llvm-readobj -s -sr -codeview -section-symbols | FileCheck --check-prefix=OBJ64 %s 5 6; This LL file was generated by running clang on the following code: 7; D:\source.c: 8; 1 void z(void); 9; 2 10; 3 void x(void) { 11; 4 z(); 12; 5 } 13; 6 14; 7 void y(void) { 15; 8 z(); 16; 9 } 17; 10 18; 11 void f(void) { 19; 12 x(); 20; 13 y(); 21; 14 z(); 22; 15 } 23 24 25; X86-LABEL: _x: 26; X86: # %bb. 27; X86: .cv_file 1 "D:\\source.c" 28; X86: .cv_loc 0 1 4 42 is_stmt 0 # source.c:4:42 29; X86: calll _z 30; X86: .cv_loc 0 1 5 43 # source.c:5:43 31; X86: ret 32; X86: [[END_OF_X:.?Lfunc_end.*]]: 33; 34; X86-LABEL: _y: 35; X86: # %bb. 36; X86: .cv_loc 1 1 8 52 # source.c:8:52 37; X86: calll _z 38; X86: .cv_loc 1 1 9 53 # source.c:9:53 39; X86: ret 40; X86: [[END_OF_Y:.?Lfunc_end.*]]: 41; 42; X86-LABEL: _f: 43; X86: # %bb. 44; X86: .cv_loc 2 1 12 62 # source.c:12:62 45; X86: calll _x 46; X86: .cv_loc 2 1 13 63 # source.c:13:63 47; X86: calll _y 48; X86: .cv_loc 2 1 14 72 # source.c:14:72 49; X86: calll _z 50; X86: .cv_loc 2 1 15 73 # source.c:15:73 51; X86: ret 52; X86: [[END_OF_F:.?Lfunc_end.*]]: 53; 54; X86-LABEL: .section .debug$S,"dr" 55; X86-NEXT: .p2align 2 56; X86-NEXT: .long 4 57; X86-NEXT: .long 241 58; X86-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] # 59; Compiler information record 60; X86-NEXT: [[COMPILE_START]]: 61; X86-NEXT: .short [[C1_END:.*]]-[[C1_START:.*]] # 62; X86: [[COMPILE_END]]: 63; X86-NEXT: .p2align 2 64; X86-NEXT: .cv_fpo_data _x 65; Symbol subsection for x 66; X86-NEXT: .long 241 67; X86-NEXT: .long [[F1_END:.*]]-[[F1_START:.*]] # 68; X86-NEXT: [[F1_START]]: 69; X86-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] # 70; X86-NEXT: [[PROC_SEGMENT_START]]: 71; X86-NEXT: .short 4422 72; X86-NEXT: .long 0 73; X86-NEXT: .long 0 74; X86-NEXT: .long 0 75; X86-NEXT: .long [[END_OF_X]]-_x 76; X86-NEXT: .long 0 77; X86-NEXT: .long 0 78; X86-NEXT: .long 4098 79; X86-NEXT: .secrel32 _x 80; X86-NEXT: .secidx _x 81; X86-NEXT: .byte 0 82; X86-NEXT: .asciz "x" 83; X86-NEXT: [[PROC_SEGMENT_END]]: 84; X86-NEXT: .short 2 85; X86-NEXT: .short 4431 86; X86-NEXT: [[F1_END]]: 87; X86-NEXT: .p2align 2 88; Line table subsection for x 89; X86: .cv_linetable 0, _x, [[END_OF_X]] 90; Symbol subsection for y 91; X86-NEXT: .cv_fpo_data _y 92; X86-NEXT: .long 241 93; X86-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] # 94; X86-NEXT: [[COMPILE_START]]: 95; X86-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] # 96; X86-NEXT: [[PROC_SEGMENT_START]]: 97; X86-NEXT: .short 4423 98; X86-NEXT: .long 0 99; X86-NEXT: .long 0 100; X86-NEXT: .long 0 101; X86-NEXT: .long [[END_OF_Y]]-_y 102; X86-NEXT: .long 0 103; X86-NEXT: .long 0 104; X86-NEXT: .long 4099 105; X86-NEXT: .secrel32 _y 106; X86-NEXT: .secidx _y 107; X86-NEXT: .byte 0 108; X86-NEXT: .asciz "y" 109; X86-NEXT: [[PROC_SEGMENT_END]]: 110; X86-NEXT: .short 2 111; X86-NEXT: .short 4431 112; X86-NEXT: [[COMPILE_END]]: 113; X86-NEXT: .p2align 2 114; Line table subsection for y 115; X86: .cv_linetable 1, _y, [[END_OF_Y]] 116; Symbol subsection for f 117; X86-NEXT: .cv_fpo_data _f 118; X86-NEXT: .long 241 119; X86-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] # 120; X86-NEXT: [[COMPILE_START]]: 121; X86-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] # 122; X86-NEXT: [[PROC_SEGMENT_START]]: 123; X86-NEXT: .short 4423 124; X86-NEXT: .long 0 125; X86-NEXT: .long 0 126; X86-NEXT: .long 0 127; X86-NEXT: .long [[END_OF_F]]-_f 128; X86-NEXT: .long 0 129; X86-NEXT: .long 0 130; X86-NEXT: .long 4100 131; X86-NEXT: .secrel32 _f 132; X86-NEXT: .secidx _f 133; X86-NEXT: .byte 0 134; X86-NEXT: .asciz "f" 135; X86-NEXT: [[PROC_SEGMENT_END]]: 136; X86-NEXT: .short 2 137; X86-NEXT: .short 4431 138; X86-NEXT: [[COMPILE_END]]: 139; X86-NEXT: .p2align 2 140; Line table subsection for f 141; X86: .cv_linetable 2, _f, [[END_OF_F]] 142; X86: .cv_filechecksums 143; X86: .cv_stringtable 144 145; OBJ32: Section { 146; OBJ32: Name: .debug$S (2E 64 65 62 75 67 24 53) 147; OBJ32: Characteristics [ (0x42300040) 148; OBJ32: ] 149; OBJ32: Subsection [ 150; OBJ32-NEXT: SubSectionType: Symbols (0xF1) 151; OBJ32: Compile3Sym 152; OBJ32: ] 153; OBJ32: Subsection [ 154; OBJ32-NEXT: SubSectionType: FrameData (0xF5) 155; OBJ32: ] 156; OBJ32: Subsection [ 157; OBJ32-NEXT: SubSectionType: Symbols (0xF1) 158; OBJ32: {{.*}}Proc{{.*}}Sym { 159; OBJ32: Kind: S_LPROC32_ID (0x1146) 160; OBJ32: CodeSize: 0x6 161; OBJ32: DisplayName: x 162; OBJ32: LinkageName: _x 163; OBJ32: } 164; OBJ32: ProcEnd { 165; OBJ32: } 166; OBJ32-NEXT: ] 167; OBJ32: Subsection [ 168; OBJ32-NEXT: SubSectionType: Lines (0xF2) 169; OBJ32: ] 170; OBJ32: Subsection [ 171; OBJ32-NEXT: SubSectionType: FrameData (0xF5) 172; OBJ32: ] 173; OBJ32: Subsection [ 174; OBJ32-NEXT: SubSectionType: Symbols (0xF1) 175; OBJ32: {{.*}}Proc{{.*}}Sym { 176; OBJ32: Kind: S_GPROC32_ID (0x1147) 177; OBJ32: CodeSize: 0x6 178; OBJ32: DisplayName: y 179; OBJ32: LinkageName: _y 180; OBJ32: } 181; OBJ32: ProcEnd { 182; OBJ32: } 183; OBJ32-NEXT: ] 184; OBJ32: Subsection [ 185; OBJ32-NEXT: SubSectionType: Lines (0xF2) 186; OBJ32: ] 187; OBJ32: Subsection [ 188; OBJ32-NEXT: SubSectionType: FrameData (0xF5) 189; OBJ32: ] 190; OBJ32: Subsection [ 191; OBJ32-NEXT: SubSectionType: Symbols (0xF1) 192; OBJ32: {{.*}}Proc{{.*}}Sym { 193; OBJ32: Kind: S_GPROC32_ID (0x1147) 194; OBJ32: CodeSize: 0x10 195; OBJ32: DisplayName: f 196; OBJ32: LinkageName: _f 197; OBJ32: } 198; OBJ32: ProcEnd { 199; OBJ32: } 200; OBJ32-NEXT: ] 201; OBJ32: Subsection [ 202; OBJ32-NEXT: SubSectionType: Lines (0xF2) 203; OBJ32: ] 204; OBJ32: FunctionLineTable [ 205; OBJ32-NEXT: Name: _x 206; OBJ32-NEXT: Flags: 0x1 207; OBJ32-NEXT: CodeSize: 0x6 208; OBJ32-NEXT: FilenameSegment [ 209; OBJ32-NEXT: Filename: D:\source.c 210; OBJ32-NEXT: +0x0 [ 211; OBJ32-NEXT: LineNumberStart: 4 212; OBJ32-NEXT: LineNumberEndDelta: 0 213; OBJ32-NEXT: IsStatement: No 214; OBJ32-NEXT: ColStart: 42 215; OBJ32-NEXT: ColEnd: 0 216; OBJ32-NEXT: ] 217; OBJ32-NEXT: +0x5 [ 218; OBJ32-NEXT: LineNumberStart: 5 219; OBJ32-NEXT: LineNumberEndDelta: 0 220; OBJ32-NEXT: IsStatement: No 221; OBJ32-NEXT: ColStart: 43 222; OBJ32-NEXT: ColEnd: 0 223; OBJ32-NEXT: ] 224; OBJ32-NEXT: ] 225; OBJ32-NEXT: ] 226; OBJ32-NEXT: FunctionLineTable [ 227; OBJ32-NEXT: LinkageName: _y 228; OBJ32-NEXT: Flags: 0x1 229; OBJ32-NEXT: CodeSize: 0x6 230; OBJ32-NEXT: FilenameSegment [ 231; OBJ32-NEXT: Filename: D:\source.c 232; OBJ32-NEXT: +0x0 [ 233; OBJ32-NEXT: LineNumberStart: 8 234; OBJ32-NEXT: LineNumberEndDelta: 0 235; OBJ32-NEXT: IsStatement: No 236; OBJ32-NEXT: ColStart: 52 237; OBJ32-NEXT: ColEnd: 0 238; OBJ32-NEXT: ] 239; OBJ32-NEXT: +0x5 [ 240; OBJ32-NEXT: LineNumberStart: 9 241; OBJ32-NEXT: LineNumberEndDelta: 0 242; OBJ32-NEXT: IsStatement: No 243; OBJ32-NEXT: ColStart: 53 244; OBJ32-NEXT: ColEnd: 0 245; OBJ32-NEXT: ] 246; OBJ32-NEXT: ] 247; OBJ32-NEXT: ] 248; OBJ32-NEXT: FunctionLineTable [ 249; OBJ32-NEXT: LinkageName: _f 250; OBJ32-NEXT: Flags: 0x1 251; OBJ32-NEXT: CodeSize: 0x10 252; OBJ32-NEXT: FilenameSegment [ 253; OBJ32-NEXT: Filename: D:\source.c 254; OBJ32-NEXT: +0x0 [ 255; OBJ32-NEXT: LineNumberStart: 12 256; OBJ32-NEXT: LineNumberEndDelta: 0 257; OBJ32-NEXT: IsStatement: No 258; OBJ32-NEXT: ColStart: 62 259; OBJ32-NEXT: ColEnd: 0 260; OBJ32-NEXT: ] 261; OBJ32-NEXT: +0x5 [ 262; OBJ32-NEXT: LineNumberStart: 13 263; OBJ32-NEXT: LineNumberEndDelta: 0 264; OBJ32-NEXT: IsStatement: No 265; OBJ32-NEXT: ColStart: 63 266; OBJ32-NEXT: ColEnd: 0 267; OBJ32-NEXT: ] 268; OBJ32-NEXT: +0xA [ 269; OBJ32-NEXT: LineNumberStart: 14 270; OBJ32-NEXT: LineNumberEndDelta: 0 271; OBJ32-NEXT: IsStatement: No 272; OBJ32-NEXT: ColStart: 72 273; OBJ32-NEXT: ColEnd: 0 274; OBJ32-NEXT: ] 275; OBJ32-NEXT: +0xF [ 276; OBJ32-NEXT: LineNumberStart: 15 277; OBJ32-NEXT: LineNumberEndDelta: 0 278; OBJ32-NEXT: IsStatement: No 279; OBJ32-NEXT: ColStart: 73 280; OBJ32-NEXT: ColEnd: 0 281; OBJ32-NEXT: ] 282; OBJ32-NEXT: ] 283; OBJ32-NEXT: ] 284 285 286; X64-LABEL: x: 287; X64-NEXT: .L{{.*}}: 288; X64: .cv_file 1 "D:\\source.c" 289; X64: .cv_loc 0 1 3 0 is_stmt 0 # source.c:3:0 290; X64: # %bb. 291; X64: subq $40, %rsp 292; X64: .cv_loc 0 1 4 42 # source.c:4:42 293; X64-NEXT: callq z 294; X64: .cv_loc 0 1 5 43 # source.c:5:43 295; X64: addq $40, %rsp 296; X64-NEXT: ret 297; X64: [[END_OF_X:.?Lfunc_end.*]]: 298; 299; X64-LABEL: y: 300; X64-NEXT: .L{{.*}}: 301; X64: .cv_loc 1 1 7 0 # source.c:7:0 302; X64: # %bb. 303; X64: subq $40, %rsp 304; X64: .cv_loc 1 1 8 52 # source.c:8:52 305; X64-NEXT: callq z 306; X64: .cv_loc 1 1 9 53 # source.c:9:53 307; X64: addq $40, %rsp 308; X64-NEXT: ret 309; X64: [[END_OF_Y:.?Lfunc_end.*]]: 310; 311; X64-LABEL: f: 312; X64-NEXT: .L{{.*}}: 313; X64: .cv_loc 2 1 11 0 # source.c:11:0 314; X64: # %bb. 315; X64: subq $40, %rsp 316; X64: .cv_loc 2 1 12 62 # source.c:12:62 317; X64-NEXT: callq x 318; X64: .cv_loc 2 1 13 63 # source.c:13:63 319; X64: callq y 320; X64: .cv_loc 2 1 14 72 # source.c:14:72 321; X64: callq z 322; X64: .cv_loc 2 1 15 73 # source.c:15:73 323; X64: addq $40, %rsp 324; X64-NEXT: ret 325; X64: [[END_OF_F:.?Lfunc_end.*]]: 326; 327 328; X64-LABEL: .section .debug$S,"dr" 329; X64-NEXT: .p2align 2 330; X64-NEXT: .long 4 331; X64-NEXT: .long 241 332; X64-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] # 333; Compiler information record 334; X64-NEXT: [[COMPILE_START]]: 335; X64-NEXT: .short [[C1_END:.*]]-[[C1_START:.*]] # 336; X64: [[COMPILE_END]]: 337; X64-NEXT: .p2align 2 338; Symbol subsection for x 339; X64-NEXT: .long 241 340; X64-NEXT: .long [[F1_END:.*]]-[[F1_START:.*]] # 341; X64-NEXT: [[F1_START]]: 342; X64-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] # 343; X64-NEXT: [[PROC_SEGMENT_START]]: 344; X64-NEXT: .short 4422 345; X64-NEXT: .long 0 346; X64-NEXT: .long 0 347; X64-NEXT: .long 0 348; X64-NEXT: .long [[END_OF_X]]-x 349; X64-NEXT: .long 0 350; X64-NEXT: .long 0 351; X64-NEXT: .long 4098 352; X64-NEXT: .secrel32 x 353; X64-NEXT: .secidx x 354; X64-NEXT: .byte 0 355; X64-NEXT: .asciz "x" 356; X64-NEXT: [[PROC_SEGMENT_END]]: 357; X64-NEXT: .short 2 358; X64-NEXT: .short 4431 359; X64-NEXT: [[F1_END]]: 360; X64-NEXT: .p2align 2 361; Line table subsection for x 362; X64: .cv_linetable 0, x, [[END_OF_X]] 363; Symbol subsection for y 364; X64-NEXT: .long 241 365; X64-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] # 366; X64-NEXT: [[COMPILE_START]]: 367; X64-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] # 368; X64-NEXT: [[PROC_SEGMENT_START]]: 369; X64-NEXT: .short 4423 370; X64-NEXT: .long 0 371; X64-NEXT: .long 0 372; X64-NEXT: .long 0 373; X64-NEXT: .long [[END_OF_Y]]-y 374; X64-NEXT: .long 0 375; X64-NEXT: .long 0 376; X64-NEXT: .long 4099 377; X64-NEXT: .secrel32 y 378; X64-NEXT: .secidx y 379; X64-NEXT: .byte 0 380; X64-NEXT: .asciz "y" 381; X64-NEXT: [[PROC_SEGMENT_END]]: 382; X64-NEXT: .short 2 383; X64-NEXT: .short 4431 384; X64-NEXT: [[COMPILE_END]]: 385; X64-NEXT: .p2align 2 386; Line table subsection for y 387; X64: .cv_linetable 1, y, [[END_OF_Y]] 388; Symbol subsection for f 389; X64-NEXT: .long 241 390; X64-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] # 391; X64: [[COMPILE_START]]: 392; X64-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] # 393; X64-NEXT: [[PROC_SEGMENT_START]]: 394; X64-NEXT: .short 4423 395; X64-NEXT: .long 0 396; X64-NEXT: .long 0 397; X64-NEXT: .long 0 398; X64-NEXT: .long [[END_OF_F]]-f 399; X64-NEXT: .long 0 400; X64-NEXT: .long 0 401; X64-NEXT: .long 4100 402; X64-NEXT: .secrel32 f 403; X64-NEXT: .secidx f 404; X64-NEXT: .byte 0 405; X64-NEXT: .asciz "f" 406; X64-NEXT: [[PROC_SEGMENT_END]]: 407; X64-NEXT: .short 2 408; X64-NEXT: .short 4431 409; X64-NEXT: [[COMPILE_END]]: 410; X64-NEXT: .p2align 2 411; Line table subsection for f 412; X64: .cv_linetable 2, f, [[END_OF_F]] 413; File index to string table offset subsection 414; X64: .cv_filechecksums 415; String table 416; X64: .cv_stringtable 417 418; OBJ64: Section { 419; OBJ64: Name: .debug$S (2E 64 65 62 75 67 24 53) 420; OBJ64: Characteristics [ (0x42300040) 421; OBJ64: ] 422; OBJ64: Relocations [ 423; OBJ64-NEXT: 0x64 IMAGE_REL_AMD64_SECREL x 424; OBJ64-NEXT: 0x68 IMAGE_REL_AMD64_SECTION x 425; OBJ64-NEXT: 0x7C IMAGE_REL_AMD64_SECREL x 426; OBJ64-NEXT: 0x80 IMAGE_REL_AMD64_SECTION x 427; OBJ64-NEXT: 0xE0 IMAGE_REL_AMD64_SECREL y 428; OBJ64-NEXT: 0xE4 IMAGE_REL_AMD64_SECTION y 429; OBJ64-NEXT: 0xF8 IMAGE_REL_AMD64_SECREL y 430; OBJ64-NEXT: 0xFC IMAGE_REL_AMD64_SECTION y 431; OBJ64-NEXT: 0x15C IMAGE_REL_AMD64_SECREL f 432; OBJ64-NEXT: 0x160 IMAGE_REL_AMD64_SECTION f 433; OBJ64-NEXT: 0x174 IMAGE_REL_AMD64_SECREL f 434; OBJ64-NEXT: 0x178 IMAGE_REL_AMD64_SECTION f 435; OBJ64-NEXT: ] 436; OBJ64: Subsection [ 437; OBJ64-NEXT: SubSectionType: Symbols (0xF1) 438; OBJ64: {{.*}}Proc{{.*}}Sym { 439; OBJ64: Kind: S_LPROC32_ID (0x1146) 440; OBJ64: CodeSize: 0xE 441; OBJ64: DisplayName: x 442; OBJ64: LinkageName: x 443; OBJ64: } 444; OBJ64: ProcEnd { 445; OBJ64: } 446; OBJ64-NEXT: ] 447; OBJ64: Subsection [ 448; OBJ64-NEXT: SubSectionType: Lines (0xF2) 449; OBJ64: ] 450; OBJ64: Subsection [ 451; OBJ64-NEXT: SubSectionType: Symbols (0xF1) 452; OBJ64: {{.*}}Proc{{.*}}Sym { 453; OBJ64: Kind: S_GPROC32_ID (0x1147) 454; OBJ64: CodeSize: 0xE 455; OBJ64: DisplayName: y 456; OBJ64: LinkageName: y 457; OBJ64: } 458; OBJ64: ProcEnd { 459; OBJ64: } 460; OBJ64-NEXT: ] 461; OBJ64: Subsection [ 462; OBJ64-NEXT: SubSectionType: Lines (0xF2) 463; OBJ64: ] 464; OBJ64: Subsection [ 465; OBJ64-NEXT: SubSectionType: Symbols (0xF1) 466; OBJ64: {{.*}}Proc{{.*}}Sym { 467; OBJ64: Kind: S_GPROC32_ID (0x1147) 468; OBJ64: CodeSize: 0x18 469; OBJ64: DisplayName: f 470; OBJ64: LinkageName: f 471; OBJ64: } 472; OBJ64: ProcEnd { 473; OBJ64: } 474; OBJ64-NEXT: ] 475; OBJ64: Subsection [ 476; OBJ64-NEXT: SubSectionType: Lines (0xF2) 477; OBJ64: ] 478; OBJ64: FunctionLineTable [ 479; OBJ64-NEXT: LinkageName: x 480; OBJ64-NEXT: Flags: 0x1 481; OBJ64-NEXT: CodeSize: 0xE 482; OBJ64-NEXT: FilenameSegment [ 483; OBJ64-NEXT: Filename: D:\source.c 484; OBJ64-NEXT: +0x0 [ 485; OBJ64-NEXT: LineNumberStart: 3 486; OBJ64-NEXT: LineNumberEndDelta: 0 487; OBJ64-NEXT: IsStatement: No 488; OBJ64-NEXT: ColStart: 0 489; OBJ64-NEXT: ColEnd: 0 490; OBJ64-NEXT: ] 491; OBJ64-NEXT: +0x4 [ 492; OBJ64-NEXT: LineNumberStart: 4 493; OBJ64-NEXT: LineNumberEndDelta: 0 494; OBJ64-NEXT: IsStatement: No 495; OBJ64-NEXT: ColStart: 42 496; OBJ64-NEXT: ColEnd: 0 497; OBJ64-NEXT: ] 498; OBJ64-NEXT: +0x9 [ 499; OBJ64-NEXT: LineNumberStart: 5 500; OBJ64-NEXT: LineNumberEndDelta: 0 501; OBJ64-NEXT: IsStatement: No 502; OBJ64-NEXT: ColStart: 43 503; OBJ64-NEXT: ColEnd: 0 504; OBJ64-NEXT: ] 505; OBJ64-NEXT: ] 506; OBJ64-NEXT: ] 507; OBJ64-NEXT: FunctionLineTable [ 508; OBJ64-NEXT: LinkageName: y 509; OBJ64-NEXT: Flags: 0x1 510; OBJ64-NEXT: CodeSize: 0xE 511; OBJ64-NEXT: FilenameSegment [ 512; OBJ64-NEXT: Filename: D:\source.c 513; OBJ64-NEXT: +0x0 [ 514; OBJ64-NEXT: LineNumberStart: 7 515; OBJ64-NEXT: LineNumberEndDelta: 0 516; OBJ64-NEXT: IsStatement: No 517; OBJ64-NEXT: ColStart: 0 518; OBJ64-NEXT: ColEnd: 0 519; OBJ64-NEXT: ] 520; OBJ64-NEXT: +0x4 [ 521; OBJ64-NEXT: LineNumberStart: 8 522; OBJ64-NEXT: LineNumberEndDelta: 0 523; OBJ64-NEXT: IsStatement: No 524; OBJ64-NEXT: ColStart: 52 525; OBJ64-NEXT: ColEnd: 0 526; OBJ64-NEXT: ] 527; OBJ64-NEXT: +0x9 [ 528; OBJ64-NEXT: LineNumberStart: 9 529; OBJ64-NEXT: LineNumberEndDelta: 0 530; OBJ64-NEXT: IsStatement: No 531; OBJ64-NEXT: ColStart: 53 532; OBJ64-NEXT: ColEnd: 0 533; OBJ64-NEXT: ] 534; OBJ64-NEXT: ] 535; OBJ64-NEXT: ] 536; OBJ64-NEXT: FunctionLineTable [ 537; OBJ64-NEXT: LinkageName: f 538; OBJ64-NEXT: Flags: 0x1 539; OBJ64-NEXT: CodeSize: 0x18 540; OBJ64-NEXT: FilenameSegment [ 541; OBJ64-NEXT: Filename: D:\source.c 542; OBJ64-NEXT: +0x0 [ 543; OBJ64-NEXT: LineNumberStart: 11 544; OBJ64-NEXT: LineNumberEndDelta: 0 545; OBJ64-NEXT: IsStatement: No 546; OBJ64-NEXT: ColStart: 0 547; OBJ64-NEXT: ColEnd: 0 548; OBJ64-NEXT: ] 549; OBJ64-NEXT: +0x4 [ 550; OBJ64-NEXT: LineNumberStart: 12 551; OBJ64-NEXT: LineNumberEndDelta: 0 552; OBJ64-NEXT: IsStatement: No 553; OBJ64-NEXT: ColStart: 62 554; OBJ64-NEXT: ColEnd: 0 555; OBJ64-NEXT: ] 556; OBJ64-NEXT: +0x9 [ 557; OBJ64-NEXT: LineNumberStart: 13 558; OBJ64-NEXT: LineNumberEndDelta: 0 559; OBJ64-NEXT: IsStatement: No 560; OBJ64-NEXT: ColStart: 63 561; OBJ64-NEXT: ColEnd: 0 562; OBJ64-NEXT: ] 563; OBJ64-NEXT: +0xE [ 564; OBJ64-NEXT: LineNumberStart: 14 565; OBJ64-NEXT: LineNumberEndDelta: 0 566; OBJ64-NEXT: IsStatement: No 567; OBJ64-NEXT: ColStart: 72 568; OBJ64-NEXT: ColEnd: 0 569; OBJ64-NEXT: ] 570; OBJ64-NEXT: +0x13 [ 571; OBJ64-NEXT: LineNumberStart: 15 572; OBJ64-NEXT: LineNumberEndDelta: 0 573; OBJ64-NEXT: IsStatement: No 574; OBJ64-NEXT: ColStart: 73 575; OBJ64-NEXT: ColEnd: 0 576; OBJ64-NEXT: ] 577; OBJ64-NEXT: ] 578; OBJ64-NEXT: ] 579 580; Function Attrs: nounwind 581define internal void @x() #0 !dbg !4 { 582entry: 583 call void @z(), !dbg !14 584 ret void, !dbg !15 585} 586 587declare void @z() #1 588 589; Function Attrs: nounwind 590define void @y() #0 !dbg !9 { 591entry: 592 call void @z(), !dbg !16 593 ret void, !dbg !17 594} 595 596; Function Attrs: nounwind 597define void @f() #0 !dbg !10 { 598entry: 599 call void @x(), !dbg !18 600 call void @y(), !dbg !19 601 call void @z(), !dbg !20 602 ret void, !dbg !21 603} 604 605attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 606attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 607 608!llvm.dbg.cu = !{!0} 609!llvm.module.flags = !{!11, !12} 610!llvm.ident = !{!13} 611 612!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2) 613!1 = !DIFile(filename: "<unknown>", directory: "D:\5C") 614!2 = !{} 615!4 = distinct !DISubprogram(name: "x", line: 3, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 3, file: !5, scope: !6, type: !7, retainedNodes: !2) 616!5 = !DIFile(filename: "source.c", directory: "D:\5C") 617!6 = !DIFile(filename: "source.c", directory: "D:C") 618!7 = !DISubroutineType(types: !8) 619!8 = !{null} 620!9 = distinct !DISubprogram(name: "y", line: 7, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 7, file: !5, scope: !6, type: !7, retainedNodes: !2) 621!10 = distinct !DISubprogram(name: "f", line: 11, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 11, file: !5, scope: !6, type: !7, retainedNodes: !2) 622!11 = !{i32 2, !"CodeView", i32 1} 623!12 = !{i32 1, !"Debug Info Version", i32 3} 624!13 = !{!"clang version 3.5 "} 625!14 = !DILocation(line: 4, column: 42, scope: !4) 626!15 = !DILocation(line: 5, column: 43, scope: !4) 627!16 = !DILocation(line: 8, column: 52, scope: !9) 628!17 = !DILocation(line: 9, column: 53, scope: !9) 629!18 = !DILocation(line: 12, column: 62, scope: !10) 630!19 = !DILocation(line: 13, column: 63, scope: !10) 631!20 = !DILocation(line: 14, column: 72, scope: !10) 632!21 = !DILocation(line: 15, column: 73, scope: !10) 633