# RUN: llc -start-after=livedebugvalues -filetype=obj -o - %s \
# RUN:   | llvm-dwarfdump -v - | FileCheck %s

# This tests for a crash in DwarfDebug's singular DBG_VALUE range promotion when
#  encountering an IMPLICIT_DEF in its own lexical scope.

# CHECK: .debug_info contents:
# CHECK: DW_TAG_formal_parameter
# CHECK:   DW_AT_const_value [DW_FORM_udata]   (0)
--- |
  ; ModuleID = 't.ll'
  source_filename = "t.ll"
  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
  target triple = "aarch64--linux-gnu"
  
  %class.v = type <{ i32, i8, i8, [2 x i8] }>
  %class.j = type <{ %"class.j<6, a::f>::D", i32, [4 x i8] }>
  %"class.j<6, a::f>::D" = type { %"class.j<6, a::f>::p" }
  %"class.j<6, a::f>::p" = type { i64 }
  
  @bt = global i32 0, align 4
  
  define void @_ZN1v2bvEv(%class.v* nocapture readonly %this) local_unnamed_addr align 2 !dbg !14 {
  entry:
    %bz = alloca %class.j, align 8
    %att = alloca %class.j, align 8
    %ap = getelementptr inbounds %class.v, %class.v* %this, i64 0, i32 1
    %0 = load i8, i8* %ap, align 4
    %conv = sext i8 %0 to i32
    switch i32 %conv, label %sw.epilog [
      i32 1, label %_ZN1jILi6EN1a1fEE1mEj.exit
      i32 0, label %sw.bb2
    ]
  
  _ZN1jILi6EN1a1fEE1mEj.exit:                       ; preds = %entry
    %1 = bitcast %class.j* %att to i64*
    %2 = bitcast %class.j* %bz to i64*
    store i64 1, i64* %2, align 8
    call void @llvm.dbg.value(metadata i32 0, i64 0, metadata !18, metadata !23), !dbg !24
    store i64 1, i64* %1, align 8, !dbg !27
    br label %sw.epilog
  
  sw.bb2:                                           ; preds = %entry
    %3 = bitcast %class.j* %att to i64*
    %4 = bitcast %class.j* %bz to i64*
    %.pre = load i64, i64* %3, align 8
    %agg.tmp.sroa.2.0..sroa_idx1.i.i.i.i.i.i13.phi.trans.insert = getelementptr inbounds %class.j, %class.j* %bz, i64 0, i32 1
    %.phi.trans.insert = bitcast i32* %agg.tmp.sroa.2.0..sroa_idx1.i.i.i.i.i.i13.phi.trans.insert to i64*
    %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i14.pre = load i64, i64* %.phi.trans.insert, align 8
    %.pre25 = load i64, i64* %4, align 8
    %agg.tmp.sroa.2.0..sroa_idx1.i.i.i.i.i.i.phi.trans.insert = getelementptr inbounds %class.j, %class.j* %att, i64 0, i32 1
    %.phi.trans.insert26 = bitcast i32* %agg.tmp.sroa.2.0..sroa_idx1.i.i.i.i.i.i.phi.trans.insert to i64*
    %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i.pre = load i64, i64* %.phi.trans.insert26, align 8
    br label %sw.epilog
  
  sw.epilog:                                        ; preds = %sw.bb2, %_ZN1jILi6EN1a1fEE1mEj.exit, %entry
    %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i = phi i64 [ %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i.pre, %sw.bb2 ], [ undef, %entry ], [ undef, %_ZN1jILi6EN1a1fEE1mEj.exit ], !dbg !32
    %5 = phi i64 [ %.pre25, %sw.bb2 ], [ 0, %entry ], [ 1, %_ZN1jILi6EN1a1fEE1mEj.exit ]
    %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i14 = phi i64 [ %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i14.pre, %sw.bb2 ], [ undef, %entry ], [ undef, %_ZN1jILi6EN1a1fEE1mEj.exit ]
    %6 = phi i64 [ %.pre, %sw.bb2 ], [ 0, %entry ], [ 1, %_ZN1jILi6EN1a1fEE1mEj.exit ]
    %bw1 = bitcast %class.v* %this to i32*
    %7 = load i32, i32* %bw1, align 4
    %bx = getelementptr inbounds %class.v, %class.v* %this, i64 0, i32 2
    %8 = load i8, i8* %bx, align 1
    %tobool = icmp ne i8 %8, 0
    %.fca.0.insert9 = insertvalue [2 x i64] undef, i64 %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i14, 0
    %.fca.1.insert12 = insertvalue [2 x i64] %.fca.0.insert9, i64 %5, 1
    %.fca.0.insert = insertvalue [2 x i64] undef, i64 %agg.tmp.sroa.2.0.copyload2.i.i6.i.i.i.i, 0
    %.fca.1.insert = insertvalue [2 x i64] %.fca.0.insert, i64 %6, 1
    call void @_Z2byi1LS_bbPi(i32 %7, [2 x i64] %.fca.1.insert12, [2 x i64] %.fca.1.insert, i1 %tobool, i1 false, i32* nonnull @bt)
    ret void
  }
  
  declare void @_Z2byi1LS_bbPi(i32, [2 x i64], [2 x i64], i1, i1, i32*) local_unnamed_addr
  
  ; Function Attrs: nounwind readnone speculatable
  declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #0
  
  ; Function Attrs: nounwind
  declare void @llvm.stackprotector(i8*, i8**) #1
  
  attributes #0 = { nounwind readnone speculatable }
  attributes #1 = { nounwind }
  
  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!12, !13}
  
  !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 5.0.0 (trunk 305696) (llvm/trunk 305708)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3, globals: !2)
  !1 = !DIFile(filename: "/<stdin>", directory: "/")
  !2 = !{}
  !3 = !{!4, !10}
  !4 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "r", file: !5, line: 50, size: 8, elements: !6, identifier: "_ZTS1r")
  !5 = !DIFile(filename: "current.ii", directory: "/")
  !6 = !{!7}
  !7 = !DISubprogram(name: "r", scope: !4, file: !5, line: 52, type: !8, isLocal: false, isDefinition: false, scopeLine: 52, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true)
  !8 = !DISubroutineType(types: !9)
  !9 = !{null}
  !10 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "q", scope: !11, file: !5, line: 39, size: 64, elements: !2, identifier: "_ZTSN1jILi6EN1a1fEE1qE")
  !11 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "j<6, a::f>", file: !5, line: 7, size: 128, elements: !2, templateParams: !2, identifier: "_ZTS1jILi6EN1a1fEE")
  !12 = !{i32 2, !"Debug Info Version", i32 3}
  !13 = !{i32 1, !"wchar_size", i32 4}
  !14 = distinct !DISubprogram(name: "bv", linkageName: "_ZN1v2bvEv", scope: !15, file: !5, line: 104, type: !16, isLocal: false, isDefinition: true, scopeLine: 104, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !17, retainedNodes: !2)
  !15 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "v", file: !5, line: 97, size: 64, elements: !2, identifier: "_ZTS1v")
  !16 = !DISubroutineType(types: !2)
  !17 = !DISubprogram(name: "bv", linkageName: "_ZN1v2bvEv", scope: !15, file: !5, line: 98, type: !16, isLocal: false, isDefinition: false, scopeLine: 98, flags: DIFlagPrototyped, isOptimized: true)
  !18 = !DILocalVariable(arg: 2, scope: !19, file: !5, line: 22, type: !21)
  !19 = distinct !DISubprogram(name: "m", linkageName: "_ZN1jILi6EN1a1fEE1mEj", scope: !11, file: !5, line: 22, type: !16, isLocal: false, isDefinition: true, scopeLine: 22, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !20, retainedNodes: !2)
  !20 = !DISubprogram(name: "m", linkageName: "_ZN1jILi6EN1a1fEE1mEj", scope: !11, file: !5, line: 22, type: !16, isLocal: false, isDefinition: false, scopeLine: 22, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true)
  !21 = !DIDerivedType(tag: DW_TAG_typedef, name: "h", file: !5, line: 10, baseType: !22)
  !22 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
  !23 = !DIExpression()
  !24 = !DILocation(line: 22, scope: !19, inlinedAt: !25)
  !25 = distinct !DILocation(line: 109, scope: !26)
  !26 = distinct !DILexicalBlock(scope: !14, file: !5, line: 106)
  !27 = !DILocation(line: 29, scope: !28, inlinedAt: !31)
  !28 = distinct !DISubprogram(name: "n", linkageName: "_ZN1jILi6EN1a1fEE1p1nEl", scope: !29, file: !5, line: 29, type: !8, isLocal: false, isDefinition: true, scopeLine: 29, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !30, retainedNodes: !2)
  !29 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "p", scope: !11, file: !5, line: 26, size: 64, elements: !2, identifier: "_ZTSN1jILi6EN1a1fEE1pE")
  !30 = !DISubprogram(name: "n", linkageName: "_ZN1jILi6EN1a1fEE1p1nEl", scope: !29, file: !5, line: 29, type: !8, isLocal: false, isDefinition: false, scopeLine: 29, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true)
  !31 = distinct !DILocation(line: 24, scope: !19, inlinedAt: !25)
  !32 = !DILocation(line: 61, scope: !33, inlinedAt: !38)
  !33 = distinct !DISubprogram(name: "bc<j<6, a::f> >", linkageName: "_ZN1s2bcI1jILi6EN1a1fEEEEDTcl2badeclsr1aE2aaIPT_EEEES6_", scope: !34, file: !5, line: 60, type: !16, isLocal: false, isDefinition: true, scopeLine: 60, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !36, declaration: !35, retainedNodes: !2)
  !34 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "s", file: !5, line: 59, size: 8, elements: !2, identifier: "_ZTS1s")
  !35 = !DISubprogram(name: "bc<j<6, a::f> >", linkageName: "_ZN1s2bcI1jILi6EN1a1fEEEEDTcl2badeclsr1aE2aaIPT_EEEES6_", scope: !34, file: !5, line: 60, type: !16, isLocal: false, isDefinition: false, scopeLine: 60, flags: DIFlagPrototyped, isOptimized: true, templateParams: !36)
  !36 = !{!37}
  !37 = !DITemplateTypeParameter(name: "ay", type: !11)
  !38 = distinct !DILocation(line: 70, scope: !39, inlinedAt: !42)
  !39 = distinct !DISubprogram(name: "bc", linkageName: "_ZN1JI1s1jILi6EN1a1fEEE2bcEPS4_", scope: !40, file: !5, line: 70, type: !16, isLocal: false, isDefinition: true, scopeLine: 70, flags: DIFlagPrototyped, isOptimized: true, unit: !0, declaration: !41, retainedNodes: !2)
  !40 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "J<s, j<6, a::f> >", file: !5, line: 69, size: 8, elements: !2, templateParams: !2, identifier: "_ZTS1JI1s1jILi6EN1a1fEEE")
  !41 = !DISubprogram(name: "bc", linkageName: "_ZN1JI1s1jILi6EN1a1fEEE2bcEPS4_", scope: !40, file: !5, line: 70, type: !16, isLocal: false, isDefinition: false, scopeLine: 70, flags: DIFlagPrototyped, isOptimized: true)
  !42 = distinct !DILocation(line: 85, scope: !43, inlinedAt: !46)
  !43 = distinct !DISubprogram(name: "u<j<6, a::f> >", linkageName: "_ZN1uC2I1jILi6EN1a1fEEEERT_", scope: !44, file: !5, line: 85, type: !16, isLocal: false, isDefinition: true, scopeLine: 85, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !36, declaration: !45, retainedNodes: !2)
  !44 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "u", file: !5, line: 82, size: 128, elements: !2, identifier: "_ZTS1u")
  !45 = !DISubprogram(name: "u<j<6, a::f> >", scope: !44, file: !5, line: 85, type: !16, isLocal: false, isDefinition: false, scopeLine: 85, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true, templateParams: !36)
  !46 = distinct !DILocation(line: 85, scope: !47, inlinedAt: !48)
  !47 = distinct !DISubprogram(name: "u<j<6, a::f> >", linkageName: "_ZN1uC1I1jILi6EN1a1fEEEERT_", scope: !44, file: !5, line: 85, type: !16, isLocal: false, isDefinition: true, scopeLine: 85, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !36, declaration: !45, retainedNodes: !2)
  !48 = distinct !DILocation(line: 92, scope: !49, inlinedAt: !52)
  !49 = distinct !DISubprogram(name: "L<j<6, a::f> >", linkageName: "_ZN1LC2I1jILi6EN1a1fEEEERT_", scope: !50, file: !5, line: 92, type: !16, isLocal: false, isDefinition: true, scopeLine: 92, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !2, declaration: !51, retainedNodes: !2)
  !50 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "L", file: !5, line: 88, size: 128, elements: !2, identifier: "_ZTS1L")
  !51 = !DISubprogram(name: "L<j<6, a::f> >", scope: !50, file: !5, line: 92, type: !16, isLocal: false, isDefinition: false, scopeLine: 92, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true, templateParams: !2)
  !52 = distinct !DILocation(line: 92, scope: !53, inlinedAt: !54)
  !53 = distinct !DISubprogram(name: "L<j<6, a::f> >", linkageName: "_ZN1LC1I1jILi6EN1a1fEEEERT_", scope: !50, file: !5, line: 92, type: !16, isLocal: false, isDefinition: true, scopeLine: 92, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !2, declaration: !51, retainedNodes: !2)
  !54 = distinct !DILocation(line: 114, scope: !14)

...
---
name:            _ZN1v2bvEv
alignment:       2
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
registers:       
liveins:         
  - { reg: '$x0', virtual-reg: '' }
frameInfo:       
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       48
  offsetAdjustment: 0
  maxAlignment:    16
  adjustsStack:    true
  hasCalls:        true
  stackProtector:  ''
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
  savePoint:       ''
  restorePoint:    ''
fixedStack:      
stack:           
  - { id: 0, name: bz, type: default, offset: -32, size: 16, alignment: 8, 
      callee-saved-register: '', local-offset: -16, debug-info-variable: '',
      debug-info-expression: '', debug-info-location: '' }
  - { id: 1, name: att, type: default, offset: -48, size: 16, alignment: 8, 
      callee-saved-register: '', local-offset: -32, debug-info-variable: '',
      debug-info-expression: '', debug-info-location: '' }
  - { id: 2, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16, 
      callee-saved-register: '$lr', debug-info-variable: '',
      debug-info-expression: '', debug-info-location: '' }
constants:       
body:             |
  bb.0.entry:
    successors: %bb.3.sw.bb2(0x2aaaaaab), %bb.1.entry(0x55555555)
    liveins: $x0, $lr
  
    $sp = frame-setup SUBXri $sp, 48, 0
    frame-setup STRXui killed $lr, $sp, 4 :: (store 8 into %stack.2)
    frame-setup CFI_INSTRUCTION def_cfa_offset 48
    frame-setup CFI_INSTRUCTION offset $w30, -16
    $w8 = LDRSBWui $x0, 4 :: (load 1 from %ir.ap, align 4)
    CBZW $w8, %bb.3.sw.bb2
  
  bb.1.entry:
    successors: %bb.2._ZN1jILi6EN1a1fEE1mEj.exit(0x40000001), %bb.4(0x3fffffff)
    liveins: $w8, $x0
  
    dead $wzr = SUBSWri killed $w8, 1, 0, implicit-def $nzcv
    Bcc 1, %bb.4, implicit $nzcv
  
  bb.2._ZN1jILi6EN1a1fEE1mEj.exit:
    successors: %bb.5.sw.epilog(0x80000000)
    liveins: $x0
  
    $w2 = ORRWri $wzr, 0, implicit-def $x2
    $x3 = IMPLICIT_DEF debug-location !32
    $x1 = IMPLICIT_DEF
    STRXui $x2, $sp, 2 :: (store 8 into %ir.2)
    DBG_VALUE 0, 0, !18, !23, debug-location !24
    STRXui $x2, $sp, 0, debug-location !27 :: (store 8 into %ir.1)
    $w4 = ORRWri $wzr, 0, implicit-def $x4
    B %bb.5.sw.epilog
  
  bb.3.sw.bb2:
    successors: %bb.5.sw.epilog(0x80000000)
    liveins: $x0
  
    $x4, $x3 = LDPXi $sp, 0 :: (dereferenceable load 8 from %ir.3), (dereferenceable load 8 from %ir..phi.trans.insert26)
    $x2, $x1 = LDPXi $sp, 2 :: (dereferenceable load 8 from %ir..phi.trans.insert), (dereferenceable load 8 from %ir.4)
    B %bb.5.sw.epilog
  
  bb.4:
    successors: %bb.5.sw.epilog(0x80000000)
    liveins: $x0
  
    $x2 = ORRXrs $xzr, $xzr, 0
    $x4 = ORRXrs $xzr, $xzr, 0
    $x3 = IMPLICIT_DEF debug-location !32
    $x1 = IMPLICIT_DEF
  
  bb.5.sw.epilog:
    liveins: $x0, $x1, $x2, $x3, $x4
  
    $w8 = LDRBBui $x0, 5 :: (load 1 from %ir.bx)
    $w0 = LDRWui killed $x0, 0 :: (load 4 from %ir.bw1)
    $x7 = ADRP target-flags(aarch64-page) @bt
    $x7 = ADDXri killed $x7, target-flags(aarch64-pageoff, aarch64-nc) @bt, 0
    dead $wzr = SUBSWri killed $w8, 0, 0, implicit-def $nzcv
    $w5 = CSINCWr $wzr, $wzr, 0, implicit killed $nzcv
    $w6 = ORRWrs $wzr, $wzr, 0
    BL @_Z2byi1LS_bbPi, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit killed $x1, implicit killed $x2, implicit killed $x3, implicit killed $x4, implicit killed $w5, implicit killed $w6, implicit killed $x7, implicit-def $sp
    $lr = LDRXui $sp, 4 :: (load 8 from %stack.2)
    $sp = ADDXri $sp, 48, 0
    RET undef $lr

...
