# RUN: llc  -filetype=obj -o - %s | llvm-dwarfdump - | FileCheck %s
#
# This testcase has an implicit def pseudo-iunstruction with a debug location.
#
# CHECK: .debug_info contents:
# CHECK: DW_TAG_subprogram
# CHECK:	DW_AT_low_pc [DW_FORM_addr]	(0x0000000000000000)
# CHECK-NOT: DW_TAG
# CHECK:	DW_AT_specification {{.*}} "_ZN1C5m_fn3Ev"
# CHECK-NOT: DW_TAG
#	     Here should not be an inlined subroutine with 0 length.
# CHECK: NULL
#
# CHECK: Address            Line   Column File   ISA Discriminator Flags
# CHECK-NEXT:                ---
# CHECK-NEXT:                 25      0      1   0             0  is_stmt
# CHECK-NEXT:                 29     28      1   0             0  is_stmt prologue_end
# CHECK-NEXT:                 29     28      1   0             0  is_stmt end_sequence
--- |
  source_filename = "t.ll"
  target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
  target triple = "x86_64-apple-macosx"
  
  %class.E = type { %class.D }
  %class.D = type { %class.B }
  %class.B = type { %class.A, %class.A }
  %class.A = type { i8 }
  %class.C = type <{ %class.E*, %class.B, [2 x i8] }>
  
  @a = local_unnamed_addr global %class.E* null, align 4
  
  define i32 @_ZN1C5m_fn3Ev(%class.C* nocapture) local_unnamed_addr align 2 !dbg !6 {
    %2 = alloca %class.B, align 1
    %3 = load %class.E*, %class.E** @a, align 4
    %4 = icmp eq %class.E* %3, null
    br i1 %4, label %10, label %5
  
  ; <label>:5:                                      ; preds = %1
    %6 = bitcast %class.C* %0 to %class.D**
    %7 = load %class.D*, %class.D** %6, align 4
    %8 = bitcast %class.D* %7 to i8*
    %9 = load i8, i8* %8, align 1
    br label %10
  
  ; <label>:10:                                     ; preds = %5, %1
    %11 = phi i8 [ %9, %5 ], [ undef, %1 ], !dbg !10
    %12 = getelementptr inbounds %class.C, %class.C* %0, i32 0, i32 1, i32 0, i32 0
    store i8 %11, i8* %12, align 1, !dbg !14
    ret i32 undef
  }
  
  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!3, !4, !5}
  
  !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "Apple LLVM version 8.1.0 (clang-802.0.30.3)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, globals: !2)
  !1 = !DIFile(filename: "test.ii", directory: "/")
  !2 = !{}
  !3 = !{i32 2, !"Dwarf Version", i32 4}
  !4 = !{i32 2, !"Debug Info Version", i32 3}
  !5 = !{i32 1, !"PIC Level", i32 2}
  !6 = distinct !DISubprogram(name: "m_fn3", linkageName: "_ZN1C5m_fn3Ev", scope: !7, file: !1, line: 25, type: !8, isLocal: false, isDefinition: true, scopeLine: 25, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !9, variables: !2)
  !7 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "C", file: !1, line: 14, size: 64, align: 32, elements: !2, identifier: "_ZTS1C")
  !8 = !DISubroutineType(types: !2)
  !9 = !DISubprogram(name: "m_fn3", linkageName: "_ZN1C5m_fn3Ev", scope: !7, file: !1, line: 15, type: !8, isLocal: false, isDefinition: false, scopeLine: 15, flags: DIFlagPrototyped, isOptimized: true)
  !10 = !DILocation(line: 99, column: 9, scope: !11, inlinedAt: !14)
  !11 = distinct !DISubprogram(name: "m_fn1", linkageName: "_ZN1A5m_fn1Ev", scope: !12, file: !1, line: 5, type: !8, isLocal: false, isDefinition: true, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !13, variables: !2)
  !12 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "A", file: !1, line: 1, size: 8, align: 8, elements: !2, identifier: "_ZTS1A")
  !13 = !DISubprogram(name: "m_fn1", linkageName: "_ZN1A5m_fn1Ev", scope: !12, file: !1, line: 5, type: !8, isLocal: false, isDefinition: false, scopeLine: 5, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true)
  !14 = !DILocation(line: 29, column: 28, scope: !6)

...
---
name:            _ZN1C5m_fn3Ev
alignment:       4
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
liveins:         
  - { reg: '%rdi' }
frameInfo:       
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       0
  offsetAdjustment: 0
  maxAlignment:    8
  adjustsStack:    false
  hasCalls:        false
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
#stack:           
#  - { id: 0, name: '<unnamed alloca>', offset: -16, size: 2, alignment: 8 }
body:             |
  bb.0 (%ir-block.1):
    successors: %bb.1(0x30000000), %bb.2(0x50000000)
    liveins: %rdi
  
    CMP64mi8 %rip, 1, _, @a, _, 0, implicit-def %eflags :: (dereferenceable load 8 from @a, align 4)
    JE_1 %bb.1, implicit %eflags
  
  bb.2 (%ir-block.5):
    liveins: %rdi
  
    %rax = MOV64rm %rdi, 1, _, 0, _ :: (load 8 from %ir.6, align 4)
    %al = MOV8rm killed %rax, 1, _, 0, _ :: (load 1 from %ir.8)
    MOV8mr killed %rdi, 1, _, 8, _, killed %al, debug-location !14 :: (store 1 into %ir.12)
    RETQ undef %eax
  
  bb.1:
    liveins: %rdi
  
    %al = IMPLICIT_DEF debug-location !10
    MOV8mr killed %rdi, 1, _, 8, _, killed %al, debug-location !14 :: (store 1 into %ir.12)
    RETQ undef %eax

...
