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