711 lines · plain
1; RUN: llc -mcpu=core2 -mtriple=i686-pc-win32 -O0 < %s | FileCheck --check-prefix=X86 %s2; 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 %s3; RUN: llc -mcpu=core2 -mtriple=x86_64-pc-win32 -O0 < %s | FileCheck --check-prefix=X64 %s4; 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 %s5 6; This LL file was generated by running clang on the following code:7; D:\source.c:8; 1 void z(void);9; 210; 3 void x(void) {11; 4 z();12; 5 }13; 614; 7 void y(void) {15; 8 z();16; 9 }17; 1018; 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 # source.c:4:4229; X86: calll _z30; X86: .cv_loc 0 1 5 43 # source.c:5:4331; X86: ret32; 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:5237; X86: calll _z38; X86: .cv_loc 1 1 9 53 # source.c:9:5339; X86: ret40; 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:6245; X86: calll _x46; X86: .cv_loc 2 1 13 63 # source.c:13:6347; X86: calll _y48; X86: .cv_loc 2 1 14 72 # source.c:14:7249; X86: calll _z50; X86: .cv_loc 2 1 15 73 # source.c:15:7351; X86: ret52; X86: [[END_OF_F:.?Lfunc_end.*]]:53;54; X86-LABEL: .section .debug$S,"dr"55; X86-NEXT: .p2align 256; X86-NEXT: .long 457; X86-NEXT: .long 24158; X86-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] #59; Compiler information record60; X86-NEXT: [[COMPILE_START]]:61; X86-NEXT: .short [[C1_END:.*]]-[[C1_START:.*]] #62; X86: [[COMPILE_END]]:63; X86-NEXT: .p2align 264; X86-NEXT: .cv_fpo_data _x65; Symbol subsection for x66; X86-NEXT: .long 24167; 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 442272; X86-NEXT: .long 073; X86-NEXT: .long 074; X86-NEXT: .long 075; X86-NEXT: .long [[END_OF_X]]-_x76; X86-NEXT: .long 077; X86-NEXT: .long 078; X86-NEXT: .long 409879; X86-NEXT: .secrel32 _x80; X86-NEXT: .secidx _x81; X86-NEXT: .byte 12882; X86-NEXT: .asciz "x"83; X86-NEXT: .p2align 284; X86-NEXT: [[PROC_SEGMENT_END]]:85; X86-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length86; X86-NEXT: [[FPROC_BEG]]:87; X86-NEXT: .short 4114 # Record kind: S_FRAMEPROC88; X86-NEXT: .long 0 # FrameSize89; X86-NEXT: .long 0 # Padding90; X86-NEXT: .long 0 # Offset of padding91; X86-NEXT: .long 0 # Bytes of callee saved registers92; X86-NEXT: .long 0 # Exception handler offset93; X86-NEXT: .short 0 # Exception handler section94; X86-NEXT: .long 8192 # Flags (defines frame register)95; X86-NEXT: .p2align 296; X86-NEXT: [[FPROC_END]]:97; X86-NEXT: .short 298; X86-NEXT: .short 443199; X86-NEXT: [[F1_END]]:100; X86-NEXT: .p2align 2101; Line table subsection for x102; X86: .cv_linetable 0, _x, [[END_OF_X]]103; Symbol subsection for y104; X86-NEXT: .cv_fpo_data _y105; X86-NEXT: .long 241106; X86-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] #107; X86-NEXT: [[COMPILE_START]]:108; X86-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] #109; X86-NEXT: [[PROC_SEGMENT_START]]:110; X86-NEXT: .short 4423111; X86-NEXT: .long 0112; X86-NEXT: .long 0113; X86-NEXT: .long 0114; X86-NEXT: .long [[END_OF_Y]]-_y115; X86-NEXT: .long 0116; X86-NEXT: .long 0117; X86-NEXT: .long 4099118; X86-NEXT: .secrel32 _y119; X86-NEXT: .secidx _y120; X86-NEXT: .byte 128121; X86-NEXT: .asciz "y"122; X86-NEXT: .p2align 2123; X86-NEXT: [[PROC_SEGMENT_END]]:124; X86-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length125; X86-NEXT: [[FPROC_BEG]]:126; X86-NEXT: .short 4114 # Record kind: S_FRAMEPROC127; X86-NEXT: .long 0 # FrameSize128; X86-NEXT: .long 0 # Padding129; X86-NEXT: .long 0 # Offset of padding130; X86-NEXT: .long 0 # Bytes of callee saved registers131; X86-NEXT: .long 0 # Exception handler offset132; X86-NEXT: .short 0 # Exception handler section133; X86-NEXT: .long 8192 # Flags (defines frame register)134; X86-NEXT: .p2align 2135; X86-NEXT: [[FPROC_END]]:136; X86-NEXT: .short 2137; X86-NEXT: .short 4431138; X86-NEXT: [[COMPILE_END]]:139; X86-NEXT: .p2align 2140; Line table subsection for y141; X86: .cv_linetable 1, _y, [[END_OF_Y]]142; Symbol subsection for f143; X86-NEXT: .cv_fpo_data _f144; X86-NEXT: .long 241145; X86-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] #146; X86-NEXT: [[COMPILE_START]]:147; X86-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] #148; X86-NEXT: [[PROC_SEGMENT_START]]:149; X86-NEXT: .short 4423150; X86-NEXT: .long 0151; X86-NEXT: .long 0152; X86-NEXT: .long 0153; X86-NEXT: .long [[END_OF_F]]-_f154; X86-NEXT: .long 0155; X86-NEXT: .long 0156; X86-NEXT: .long 4100157; X86-NEXT: .secrel32 _f158; X86-NEXT: .secidx _f159; X86-NEXT: .byte 128160; X86-NEXT: .asciz "f"161; X86-NEXT: .p2align 2162; X86-NEXT: [[PROC_SEGMENT_END]]:163; X86-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length164; X86-NEXT: [[FPROC_BEG]]:165; X86-NEXT: .short 4114 # Record kind: S_FRAMEPROC166; X86-NEXT: .long 0 # FrameSize167; X86-NEXT: .long 0 # Padding168; X86-NEXT: .long 0 # Offset of padding169; X86-NEXT: .long 0 # Bytes of callee saved registers170; X86-NEXT: .long 0 # Exception handler offset171; X86-NEXT: .short 0 # Exception handler section172; X86-NEXT: .long 8192 # Flags (defines frame register)173; X86-NEXT: .p2align 2174; X86-NEXT: [[FPROC_END]]:175; X86-NEXT: .short 2176; X86-NEXT: .short 4431177; X86-NEXT: [[COMPILE_END]]:178; X86-NEXT: .p2align 2179; Line table subsection for f180; X86: .cv_linetable 2, _f, [[END_OF_F]]181; X86: .cv_filechecksums182; X86: .cv_stringtable183 184; OBJ32: Section {185; OBJ32: Name: .debug$S (2E 64 65 62 75 67 24 53)186; OBJ32: Characteristics [ (0x42300040)187; OBJ32: ]188; OBJ32: Subsection [189; OBJ32-NEXT: SubSectionType: Symbols (0xF1)190; OBJ32: Compile3Sym191; OBJ32: ]192; OBJ32: Subsection [193; OBJ32-NEXT: SubSectionType: FrameData (0xF5)194; OBJ32: ]195; OBJ32: Subsection [196; OBJ32-NEXT: SubSectionType: Symbols (0xF1)197; OBJ32: {{.*}}Proc{{.*}}Sym {198; OBJ32: Kind: S_LPROC32_ID (0x1146)199; OBJ32: CodeSize: 0x6200; OBJ32: DisplayName: x201; OBJ32: LinkageName: _x202; OBJ32: }203; OBJ32: ProcEnd {204; OBJ32: }205; OBJ32-NEXT: ]206; OBJ32: Subsection [207; OBJ32-NEXT: SubSectionType: Lines (0xF2)208; OBJ32: ]209; OBJ32: Subsection [210; OBJ32-NEXT: SubSectionType: FrameData (0xF5)211; OBJ32: ]212; OBJ32: Subsection [213; OBJ32-NEXT: SubSectionType: Symbols (0xF1)214; OBJ32: {{.*}}Proc{{.*}}Sym {215; OBJ32: Kind: S_GPROC32_ID (0x1147)216; OBJ32: CodeSize: 0x6217; OBJ32: DisplayName: y218; OBJ32: LinkageName: _y219; OBJ32: }220; OBJ32: ProcEnd {221; OBJ32: }222; OBJ32-NEXT: ]223; OBJ32: Subsection [224; OBJ32-NEXT: SubSectionType: Lines (0xF2)225; OBJ32: ]226; OBJ32: Subsection [227; OBJ32-NEXT: SubSectionType: FrameData (0xF5)228; OBJ32: ]229; OBJ32: Subsection [230; OBJ32-NEXT: SubSectionType: Symbols (0xF1)231; OBJ32: {{.*}}Proc{{.*}}Sym {232; OBJ32: Kind: S_GPROC32_ID (0x1147)233; OBJ32: CodeSize: 0x10234; OBJ32: DisplayName: f235; OBJ32: LinkageName: _f236; OBJ32: }237; OBJ32: ProcEnd {238; OBJ32: }239; OBJ32-NEXT: ]240; OBJ32: Subsection [241; OBJ32-NEXT: SubSectionType: Lines (0xF2)242; OBJ32: ]243; OBJ32: FunctionLineTable [244; OBJ32-NEXT: Name: _x245; OBJ32-NEXT: Flags: 0x1246; OBJ32-NEXT: CodeSize: 0x6247; OBJ32-NEXT: FilenameSegment [248; OBJ32-NEXT: Filename: D:\source.c249; OBJ32-NEXT: +0x0 [250; OBJ32-NEXT: LineNumberStart: 4251; OBJ32-NEXT: LineNumberEndDelta: 0252; OBJ32-NEXT: IsStatement: No253; OBJ32-NEXT: ColStart: 42254; OBJ32-NEXT: ColEnd: 0255; OBJ32-NEXT: ]256; OBJ32-NEXT: +0x5 [257; OBJ32-NEXT: LineNumberStart: 5258; OBJ32-NEXT: LineNumberEndDelta: 0259; OBJ32-NEXT: IsStatement: No260; OBJ32-NEXT: ColStart: 43261; OBJ32-NEXT: ColEnd: 0262; OBJ32-NEXT: ]263; OBJ32-NEXT: ]264; OBJ32-NEXT: ]265; OBJ32-NEXT: FunctionLineTable [266; OBJ32-NEXT: LinkageName: _y267; OBJ32-NEXT: Flags: 0x1268; OBJ32-NEXT: CodeSize: 0x6269; OBJ32-NEXT: FilenameSegment [270; OBJ32-NEXT: Filename: D:\source.c271; OBJ32-NEXT: +0x0 [272; OBJ32-NEXT: LineNumberStart: 8273; OBJ32-NEXT: LineNumberEndDelta: 0274; OBJ32-NEXT: IsStatement: No275; OBJ32-NEXT: ColStart: 52276; OBJ32-NEXT: ColEnd: 0277; OBJ32-NEXT: ]278; OBJ32-NEXT: +0x5 [279; OBJ32-NEXT: LineNumberStart: 9280; OBJ32-NEXT: LineNumberEndDelta: 0281; OBJ32-NEXT: IsStatement: No282; OBJ32-NEXT: ColStart: 53283; OBJ32-NEXT: ColEnd: 0284; OBJ32-NEXT: ]285; OBJ32-NEXT: ]286; OBJ32-NEXT: ]287; OBJ32-NEXT: FunctionLineTable [288; OBJ32-NEXT: LinkageName: _f289; OBJ32-NEXT: Flags: 0x1290; OBJ32-NEXT: CodeSize: 0x10291; OBJ32-NEXT: FilenameSegment [292; OBJ32-NEXT: Filename: D:\source.c293; OBJ32-NEXT: +0x0 [294; OBJ32-NEXT: LineNumberStart: 12295; OBJ32-NEXT: LineNumberEndDelta: 0296; OBJ32-NEXT: IsStatement: No297; OBJ32-NEXT: ColStart: 62298; OBJ32-NEXT: ColEnd: 0299; OBJ32-NEXT: ]300; OBJ32-NEXT: +0x5 [301; OBJ32-NEXT: LineNumberStart: 13302; OBJ32-NEXT: LineNumberEndDelta: 0303; OBJ32-NEXT: IsStatement: No304; OBJ32-NEXT: ColStart: 63305; OBJ32-NEXT: ColEnd: 0306; OBJ32-NEXT: ]307; OBJ32-NEXT: +0xA [308; OBJ32-NEXT: LineNumberStart: 14309; OBJ32-NEXT: LineNumberEndDelta: 0310; OBJ32-NEXT: IsStatement: No311; OBJ32-NEXT: ColStart: 72312; OBJ32-NEXT: ColEnd: 0313; OBJ32-NEXT: ]314; OBJ32-NEXT: +0xF [315; OBJ32-NEXT: LineNumberStart: 15316; OBJ32-NEXT: LineNumberEndDelta: 0317; OBJ32-NEXT: IsStatement: No318; OBJ32-NEXT: ColStart: 73319; OBJ32-NEXT: ColEnd: 0320; OBJ32-NEXT: ]321; OBJ32-NEXT: ]322; OBJ32-NEXT: ]323 324 325; X64-LABEL: x:326; X64-NEXT: .L{{.*}}:327; X64: .cv_file 1 "D:\\source.c"328; X64: .cv_loc 0 1 3 0 # source.c:3:0329; X64: # %bb.330; X64: subq $40, %rsp331; X64: .cv_loc 0 1 4 42 # source.c:4:42332; X64-NEXT: callq z333; X64: .cv_loc 0 1 5 43 # source.c:5:43334; X64: addq $40, %rsp335; X64-NEXT: ret336; X64: [[END_OF_X:.?Lfunc_end.*]]:337;338; X64-LABEL: y:339; X64-NEXT: .L{{.*}}:340; X64: .cv_loc 1 1 7 0 # source.c:7:0341; X64: # %bb.342; X64: subq $40, %rsp343; X64: .cv_loc 1 1 8 52 # source.c:8:52344; X64-NEXT: callq z345; X64: .cv_loc 1 1 9 53 # source.c:9:53346; X64: addq $40, %rsp347; X64-NEXT: ret348; X64: [[END_OF_Y:.?Lfunc_end.*]]:349;350; X64-LABEL: f:351; X64-NEXT: .L{{.*}}:352; X64: .cv_loc 2 1 11 0 # source.c:11:0353; X64: # %bb.354; X64: subq $40, %rsp355; X64: .cv_loc 2 1 12 62 # source.c:12:62356; X64-NEXT: callq x357; X64: .cv_loc 2 1 13 63 # source.c:13:63358; X64: callq y359; X64: .cv_loc 2 1 14 72 # source.c:14:72360; X64: callq z361; X64: .cv_loc 2 1 15 73 # source.c:15:73362; X64: addq $40, %rsp363; X64-NEXT: ret364; X64: [[END_OF_F:.?Lfunc_end.*]]:365;366 367; X64-LABEL: .section .debug$S,"dr"368; X64-NEXT: .p2align 2369; X64-NEXT: .long 4370; X64-NEXT: .long 241371; X64-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] #372; Compiler information record373; X64-NEXT: [[COMPILE_START]]:374; X64-NEXT: .short [[C1_END:.*]]-[[C1_START:.*]] #375; X64: [[COMPILE_END]]:376; X64-NEXT: .p2align 2377; Symbol subsection for x378; X64-NEXT: .long 241379; X64-NEXT: .long [[F1_END:.*]]-[[F1_START:.*]] #380; X64-NEXT: [[F1_START]]:381; X64-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] #382; X64-NEXT: [[PROC_SEGMENT_START]]:383; X64-NEXT: .short 4422384; X64-NEXT: .long 0385; X64-NEXT: .long 0386; X64-NEXT: .long 0387; X64-NEXT: .long [[END_OF_X]]-x388; X64-NEXT: .long 0389; X64-NEXT: .long 0390; X64-NEXT: .long 4098391; X64-NEXT: .secrel32 x392; X64-NEXT: .secidx x393; X64-NEXT: .byte 128394; X64-NEXT: .asciz "x"395; X64-NEXT: .p2align 2396; X64-NEXT: [[PROC_SEGMENT_END]]:397; X64-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length398; X64-NEXT: [[FPROC_BEG]]:399; X64-NEXT: .short 4114 # Record kind: S_FRAMEPROC400; X64-NEXT: .long 40 # FrameSize401; X64-NEXT: .long 0 # Padding402; X64-NEXT: .long 0 # Offset of padding403; X64-NEXT: .long 0 # Bytes of callee saved registers404; X64-NEXT: .long 0 # Exception handler offset405; X64-NEXT: .short 0 # Exception handler section406; X64-NEXT: .long 90112 # Flags (defines frame register)407; X64-NEXT: .p2align 2408; X64-NEXT: [[FPROC_END]]:409; X64-NEXT: .short 2410; X64-NEXT: .short 4431411; X64-NEXT: [[F1_END]]:412; X64-NEXT: .p2align 2413; Line table subsection for x414; X64: .cv_linetable 0, x, [[END_OF_X]]415; Symbol subsection for y416; X64-NEXT: .long 241417; X64-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] #418; X64-NEXT: [[COMPILE_START]]:419; X64-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] #420; X64-NEXT: [[PROC_SEGMENT_START]]:421; X64-NEXT: .short 4423422; X64-NEXT: .long 0423; X64-NEXT: .long 0424; X64-NEXT: .long 0425; X64-NEXT: .long [[END_OF_Y]]-y426; X64-NEXT: .long 0427; X64-NEXT: .long 0428; X64-NEXT: .long 4099429; X64-NEXT: .secrel32 y430; X64-NEXT: .secidx y431; X64-NEXT: .byte 128432; X64-NEXT: .asciz "y"433; X64-NEXT: .p2align 2434; X64-NEXT: [[PROC_SEGMENT_END]]:435; X64-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length436; X64-NEXT: [[FPROC_BEG]]:437; X64-NEXT: .short 4114 # Record kind: S_FRAMEPROC438; X64-NEXT: .long 40 # FrameSize439; X64-NEXT: .long 0 # Padding440; X64-NEXT: .long 0 # Offset of padding441; X64-NEXT: .long 0 # Bytes of callee saved registers442; X64-NEXT: .long 0 # Exception handler offset443; X64-NEXT: .short 0 # Exception handler section444; X64-NEXT: .long 90112 # Flags (defines frame register)445; X64-NEXT: .p2align 2446; X64-NEXT: [[FPROC_END]]:447; X64-NEXT: .short 2448; X64-NEXT: .short 4431449; X64-NEXT: [[COMPILE_END]]:450; X64-NEXT: .p2align 2451; Line table subsection for y452; X64: .cv_linetable 1, y, [[END_OF_Y]]453; Symbol subsection for f454; X64-NEXT: .long 241455; X64-NEXT: .long [[COMPILE_END:.*]]-[[COMPILE_START:.*]] #456; X64: [[COMPILE_START]]:457; X64-NEXT: .short [[PROC_SEGMENT_END:.*]]-[[PROC_SEGMENT_START:.*]] #458; X64-NEXT: [[PROC_SEGMENT_START]]:459; X64-NEXT: .short 4423460; X64-NEXT: .long 0461; X64-NEXT: .long 0462; X64-NEXT: .long 0463; X64-NEXT: .long [[END_OF_F]]-f464; X64-NEXT: .long 0465; X64-NEXT: .long 0466; X64-NEXT: .long 4100467; X64-NEXT: .secrel32 f468; X64-NEXT: .secidx f469; X64-NEXT: .byte 128470; X64-NEXT: .asciz "f"471; X64-NEXT: .p2align 2472; X64-NEXT: [[PROC_SEGMENT_END]]:473; X64-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length474; X64-NEXT: [[FPROC_BEG]]:475; X64-NEXT: .short 4114 # Record kind: S_FRAMEPROC476; X64-NEXT: .long 40 # FrameSize477; X64-NEXT: .long 0 # Padding478; X64-NEXT: .long 0 # Offset of padding479; X64-NEXT: .long 0 # Bytes of callee saved registers480; X64-NEXT: .long 0 # Exception handler offset481; X64-NEXT: .short 0 # Exception handler section482; X64-NEXT: .long 90112 # Flags (defines frame register)483; X64-NEXT: .p2align 2484; X64-NEXT: [[FPROC_END]]:485; X64-NEXT: .short 2486; X64-NEXT: .short 4431487; X64-NEXT: [[COMPILE_END]]:488; X64-NEXT: .p2align 2489; Line table subsection for f490; X64: .cv_linetable 2, f, [[END_OF_F]]491; File index to string table offset subsection492; X64: .cv_filechecksums493; String table494; X64: .cv_stringtable495 496; OBJ64: Section {497; OBJ64: Name: .debug$S (2E 64 65 62 75 67 24 53)498; OBJ64: Characteristics [ (0x42300040)499; OBJ64: ]500; OBJ64: Relocations [501; OBJ64-NEXT: 0x70 IMAGE_REL_AMD64_SECREL x502; OBJ64-NEXT: 0x74 IMAGE_REL_AMD64_SECTION x503; OBJ64-NEXT: 0xA8 IMAGE_REL_AMD64_SECREL x504; OBJ64-NEXT: 0xAC IMAGE_REL_AMD64_SECTION x505; OBJ64-NEXT: 0x10C IMAGE_REL_AMD64_SECREL y506; OBJ64-NEXT: 0x110 IMAGE_REL_AMD64_SECTION y507; OBJ64-NEXT: 0x144 IMAGE_REL_AMD64_SECREL y508; OBJ64-NEXT: 0x148 IMAGE_REL_AMD64_SECTION y509; OBJ64-NEXT: 0x1A8 IMAGE_REL_AMD64_SECREL f510; OBJ64-NEXT: 0x1AC IMAGE_REL_AMD64_SECTION f511; OBJ64-NEXT: 0x1E0 IMAGE_REL_AMD64_SECREL f512; OBJ64-NEXT: 0x1E4 IMAGE_REL_AMD64_SECTION f513; OBJ64-NEXT: ]514; OBJ64: Subsection [515; OBJ64-NEXT: SubSectionType: Symbols (0xF1)516; OBJ64: {{.*}}Proc{{.*}}Sym {517; OBJ64: Kind: S_LPROC32_ID (0x1146)518; OBJ64: CodeSize: 0xE519; OBJ64: DisplayName: x520; OBJ64: LinkageName: x521; OBJ64: }522; OBJ64: ProcEnd {523; OBJ64: }524; OBJ64-NEXT: ]525; OBJ64: Subsection [526; OBJ64-NEXT: SubSectionType: Lines (0xF2)527; OBJ64: ]528; OBJ64: Subsection [529; OBJ64-NEXT: SubSectionType: Symbols (0xF1)530; OBJ64: {{.*}}Proc{{.*}}Sym {531; OBJ64: Kind: S_GPROC32_ID (0x1147)532; OBJ64: CodeSize: 0xE533; OBJ64: DisplayName: y534; OBJ64: LinkageName: y535; OBJ64: }536; OBJ64: ProcEnd {537; OBJ64: }538; OBJ64-NEXT: ]539; OBJ64: Subsection [540; OBJ64-NEXT: SubSectionType: Lines (0xF2)541; OBJ64: ]542; OBJ64: Subsection [543; OBJ64-NEXT: SubSectionType: Symbols (0xF1)544; OBJ64: {{.*}}Proc{{.*}}Sym {545; OBJ64: Kind: S_GPROC32_ID (0x1147)546; OBJ64: CodeSize: 0x18547; OBJ64: DisplayName: f548; OBJ64: LinkageName: f549; OBJ64: }550; OBJ64: ProcEnd {551; OBJ64: }552; OBJ64-NEXT: ]553; OBJ64: Subsection [554; OBJ64-NEXT: SubSectionType: Lines (0xF2)555; OBJ64: ]556; OBJ64: FunctionLineTable [557; OBJ64-NEXT: LinkageName: x558; OBJ64-NEXT: Flags: 0x1559; OBJ64-NEXT: CodeSize: 0xE560; OBJ64-NEXT: FilenameSegment [561; OBJ64-NEXT: Filename: D:\source.c562; OBJ64-NEXT: +0x0 [563; OBJ64-NEXT: LineNumberStart: 3564; OBJ64-NEXT: LineNumberEndDelta: 0565; OBJ64-NEXT: IsStatement: No566; OBJ64-NEXT: ColStart: 0567; OBJ64-NEXT: ColEnd: 0568; OBJ64-NEXT: ]569; OBJ64-NEXT: +0x4 [570; OBJ64-NEXT: LineNumberStart: 4571; OBJ64-NEXT: LineNumberEndDelta: 0572; OBJ64-NEXT: IsStatement: No573; OBJ64-NEXT: ColStart: 42574; OBJ64-NEXT: ColEnd: 0575; OBJ64-NEXT: ]576; OBJ64-NEXT: +0x9 [577; OBJ64-NEXT: LineNumberStart: 5578; OBJ64-NEXT: LineNumberEndDelta: 0579; OBJ64-NEXT: IsStatement: No580; OBJ64-NEXT: ColStart: 43581; OBJ64-NEXT: ColEnd: 0582; OBJ64-NEXT: ]583; OBJ64-NEXT: ]584; OBJ64-NEXT: ]585; OBJ64-NEXT: FunctionLineTable [586; OBJ64-NEXT: LinkageName: y587; OBJ64-NEXT: Flags: 0x1588; OBJ64-NEXT: CodeSize: 0xE589; OBJ64-NEXT: FilenameSegment [590; OBJ64-NEXT: Filename: D:\source.c591; OBJ64-NEXT: +0x0 [592; OBJ64-NEXT: LineNumberStart: 7593; OBJ64-NEXT: LineNumberEndDelta: 0594; OBJ64-NEXT: IsStatement: No595; OBJ64-NEXT: ColStart: 0596; OBJ64-NEXT: ColEnd: 0597; OBJ64-NEXT: ]598; OBJ64-NEXT: +0x4 [599; OBJ64-NEXT: LineNumberStart: 8600; OBJ64-NEXT: LineNumberEndDelta: 0601; OBJ64-NEXT: IsStatement: No602; OBJ64-NEXT: ColStart: 52603; OBJ64-NEXT: ColEnd: 0604; OBJ64-NEXT: ]605; OBJ64-NEXT: +0x9 [606; OBJ64-NEXT: LineNumberStart: 9607; OBJ64-NEXT: LineNumberEndDelta: 0608; OBJ64-NEXT: IsStatement: No609; OBJ64-NEXT: ColStart: 53610; OBJ64-NEXT: ColEnd: 0611; OBJ64-NEXT: ]612; OBJ64-NEXT: ]613; OBJ64-NEXT: ]614; OBJ64-NEXT: FunctionLineTable [615; OBJ64-NEXT: LinkageName: f616; OBJ64-NEXT: Flags: 0x1617; OBJ64-NEXT: CodeSize: 0x18618; OBJ64-NEXT: FilenameSegment [619; OBJ64-NEXT: Filename: D:\source.c620; OBJ64-NEXT: +0x0 [621; OBJ64-NEXT: LineNumberStart: 11622; OBJ64-NEXT: LineNumberEndDelta: 0623; OBJ64-NEXT: IsStatement: No624; OBJ64-NEXT: ColStart: 0625; OBJ64-NEXT: ColEnd: 0626; OBJ64-NEXT: ]627; OBJ64-NEXT: +0x4 [628; OBJ64-NEXT: LineNumberStart: 12629; OBJ64-NEXT: LineNumberEndDelta: 0630; OBJ64-NEXT: IsStatement: No631; OBJ64-NEXT: ColStart: 62632; OBJ64-NEXT: ColEnd: 0633; OBJ64-NEXT: ]634; OBJ64-NEXT: +0x9 [635; OBJ64-NEXT: LineNumberStart: 13636; OBJ64-NEXT: LineNumberEndDelta: 0637; OBJ64-NEXT: IsStatement: No638; OBJ64-NEXT: ColStart: 63639; OBJ64-NEXT: ColEnd: 0640; OBJ64-NEXT: ]641; OBJ64-NEXT: +0xE [642; OBJ64-NEXT: LineNumberStart: 14643; OBJ64-NEXT: LineNumberEndDelta: 0644; OBJ64-NEXT: IsStatement: No645; OBJ64-NEXT: ColStart: 72646; OBJ64-NEXT: ColEnd: 0647; OBJ64-NEXT: ]648; OBJ64-NEXT: +0x13 [649; OBJ64-NEXT: LineNumberStart: 15650; OBJ64-NEXT: LineNumberEndDelta: 0651; OBJ64-NEXT: IsStatement: No652; OBJ64-NEXT: ColStart: 73653; OBJ64-NEXT: ColEnd: 0654; OBJ64-NEXT: ]655; OBJ64-NEXT: ]656; OBJ64-NEXT: ]657 658; Function Attrs: nounwind659define internal void @x() #0 !dbg !4 {660entry:661 call void @z(), !dbg !14662 ret void, !dbg !15663}664 665declare void @z() #1666 667; Function Attrs: nounwind668define void @y() #0 !dbg !9 {669entry:670 call void @z(), !dbg !16671 ret void, !dbg !17672}673 674; Function Attrs: nounwind675define void @f() #0 !dbg !10 {676entry:677 call void @x(), !dbg !18678 call void @y(), !dbg !19679 call void @z(), !dbg !20680 ret void, !dbg !21681}682 683attributes #0 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "use-soft-float"="false" }684attributes #1 = { "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "use-soft-float"="false" }685 686!llvm.dbg.cu = !{!0}687!llvm.module.flags = !{!11, !12}688!llvm.ident = !{!13}689 690!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)691!1 = !DIFile(filename: "<unknown>", directory: "D:\5C")692!2 = !{}693!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)694!5 = !DIFile(filename: "source.c", directory: "D:\5C")695!6 = !DIFile(filename: "source.c", directory: "D:C")696!7 = !DISubroutineType(types: !8)697!8 = !{null}698!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)699!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)700!11 = !{i32 2, !"CodeView", i32 1}701!12 = !{i32 1, !"Debug Info Version", i32 3}702!13 = !{!"clang version 3.5 "}703!14 = !DILocation(line: 4, column: 42, scope: !4)704!15 = !DILocation(line: 5, column: 43, scope: !4)705!16 = !DILocation(line: 8, column: 52, scope: !9)706!17 = !DILocation(line: 9, column: 53, scope: !9)707!18 = !DILocation(line: 12, column: 62, scope: !10)708!19 = !DILocation(line: 13, column: 63, scope: !10)709!20 = !DILocation(line: 14, column: 72, scope: !10)710!21 = !DILocation(line: 15, column: 73, scope: !10)711