# Verify that a CFI instruction with no debug location
# does not result in a line-0 location in the assembler.
# RUN: %llc_dwarf -start-after=prologepilog -march=x86-64 -use-unknown-locations=Enable %s -o - | FileCheck %s
#
# CHECK-NOT: .loc 1 0
# CHECK:     .cfi_def_cfa_offset
# UNSUPPORTED: cygwin,windows-gnu,windows-msvc

--- |
  ; ModuleID = 'no-cfi-loc.ll'
  source_filename = "no-cfi-loc.ll"
  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  
  define void @foo() !dbg !6 {
  entry:
    call void @bar(), !dbg !8
    ret void, !dbg !9
  }
  
  declare void @bar()
  
  ; Function Attrs: nounwind
  declare void @llvm.stackprotector(i8*, i8**) #0
  
  attributes #0 = { nounwind }
  
  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!3, !4}
  !llvm.ident = !{!5}
  
  !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 4.0.0 (trunk 288778)", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2)
  !1 = !DIFile(filename: "t.c", directory: "/home/probinson/projects/scratch")
  !2 = !{}
  !3 = !{i32 2, !"Dwarf Version", i32 4}
  !4 = !{i32 2, !"Debug Info Version", i32 3}
  !5 = !{!"clang version 4.0.0 (trunk 288778)"}
  !6 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)
  !7 = !DISubroutineType(types: !2)
  !8 = !DILocation(line: 3, column: 2, scope: !6)
  !9 = !DILocation(line: 4, column: 1, scope: !6)

...
---
name:            foo
alignment:       16
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
calleeSavedRegisters: [ '$bh', '$bl', '$bp', '$bpl', '$bx', '$ebp', '$ebx', 
                        '$rbp', '$rbx', '$r12', '$r13', '$r14', '$r15', 
                        '$r12b', '$r13b', '$r14b', '$r15b', '$r12d', '$r13d', 
                        '$r14d', '$r15d', '$r12w', '$r13w', '$r14w', '$r15w' ]
frameInfo:       
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       8
  offsetAdjustment: 0
  maxAlignment:    0
  adjustsStack:    true
  hasCalls:        true
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
body:             |
  bb.0.entry:
    frame-setup PUSH64r undef $rax, implicit-def $rsp, implicit $rsp, debug-location !8
    CFI_INSTRUCTION def_cfa_offset 16
    CALL64pcrel32 @bar, csr_64, implicit $rsp, implicit-def $rsp, debug-location !8
    $rax = POP64r implicit-def $rsp, implicit $rsp, debug-location !9
    RET 0, debug-location !9

...
