; RUN: %llc_dwarf < %s -filetype=obj | llvm-dwarfdump -debug-info - | FileCheck %s

; Given the following source, ensure that the decl_line/file is correctly
; emitted and omitted on definitions if it mismatches/matches the declaration

; struct foo {
;   static void f1() {
;   }
;   static void f2();
;   static void f3();
; };
; void foo::f2() {
;   f1(); // just to ensure f1 is emitted
; }
; #line 1 "bar.cpp"
; void foo::f3() {
; }

; Skip the declarations
; CHECK: DW_TAG_subprogram
; CHECK: DW_TAG_subprogram
; CHECK: DW_TAG_subprogram

; CHECK: DW_TAG_subprogram
; CHECK-NOT: {{DW_TAG|NULL|DW_AT_decl_file}}
; CHECK:   DW_AT_decl_line {{.*}}7
; CHECK-NOT: {{DW_TAG|NULL|DW_AT_decl_file}}
; CHECK:   DW_AT_specification {{.*}}f2
; CHECK-NOT: {{DW_TAG|NULL|DW_AT_decl_file}}

; CHECK: DW_TAG_subprogram
; CHECK-NOT: {{DW_TAG|NULL|DW_AT_decl_line|DW_AT_decl_file}}
; CHECK:   DW_AT_specification {{.*}}f1

; CHECK: DW_TAG_subprogram
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK:   DW_AT_decl_file {{.*}}bar.cpp
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK:   DW_AT_decl_line {{.*}}1
; CHECK-NOT: {{DW_TAG|NULL}}
; CHECK:   DW_AT_specification {{.*}}f3

; Function Attrs: uwtable
define void @_ZN3foo2f2Ev() #0 align 2 !dbg !12 {
entry:
  call void @_ZN3foo2f1Ev(), !dbg !19
  ret void, !dbg !20
}

; Function Attrs: nounwind uwtable
define linkonce_odr void @_ZN3foo2f1Ev() #1 align 2 !dbg !15 {
entry:
  ret void, !dbg !21
}

; Function Attrs: nounwind uwtable
define void @_ZN3foo2f3Ev() #1 align 2 !dbg !13 {
entry:
  ret void, !dbg !22
}

attributes #0 = { uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "use-soft-float"="false" }
attributes #1 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "use-soft-float"="false" }

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!16, !17}
!llvm.ident = !{!18}

!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 249440) (llvm/trunk 249465)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3)
!1 = !DIFile(filename: "def-line.cpp", directory: "/tmp/dbginfo")
!2 = !{}
!3 = !{!4}
!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "foo", file: !1, line: 1, size: 8, align: 8, elements: !5, identifier: "_ZTS3foo")
!5 = !{!6, !9, !10}
!6 = !DISubprogram(name: "f1", linkageName: "_ZN3foo2f1Ev", scope: !4, file: !1, line: 2, type: !7, isLocal: false, isDefinition: false, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: false)
!7 = !DISubroutineType(types: !8)
!8 = !{null}
!9 = !DISubprogram(name: "f2", linkageName: "_ZN3foo2f2Ev", scope: !4, file: !1, line: 4, type: !7, isLocal: false, isDefinition: false, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: false)
!10 = !DISubprogram(name: "f3", linkageName: "_ZN3foo2f3Ev", scope: !4, file: !1, line: 5, type: !7, isLocal: false, isDefinition: false, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: false)
!12 = distinct !DISubprogram(name: "f2", linkageName: "_ZN3foo2f2Ev", scope: !4, file: !1, line: 7, type: !7, isLocal: false, isDefinition: true, scopeLine: 7, flags: DIFlagPrototyped, isOptimized: false, unit: !0, declaration: !9, retainedNodes: !2)
!13 = distinct !DISubprogram(name: "f3", linkageName: "_ZN3foo2f3Ev", scope: !4, file: !14, line: 1, type: !7, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, unit: !0, declaration: !10, retainedNodes: !2)
!14 = !DIFile(filename: "bar.cpp", directory: "/tmp/dbginfo")
!15 = distinct !DISubprogram(name: "f1", linkageName: "_ZN3foo2f1Ev", scope: !4, file: !1, line: 2, type: !7, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: false, unit: !0, declaration: !6, retainedNodes: !2)
!16 = !{i32 2, !"Dwarf Version", i32 4}
!17 = !{i32 2, !"Debug Info Version", i32 3}
!18 = !{!"clang version 3.8.0 (trunk 249440) (llvm/trunk 249465)"}
!19 = !DILocation(line: 8, column: 3, scope: !12)
!20 = !DILocation(line: 9, column: 1, scope: !12)
!21 = !DILocation(line: 3, column: 3, scope: !15)
!22 = !DILocation(line: 2, column: 1, scope: !13)
