# RUN: llc -march=x86-64 -start-after machine-sink -stop-after machine-sink -o /dev/null %s | FileCheck %s
# This test ensures that the MIR parser parses the stack object's debug info
# correctly.
--- |
  declare void @llvm.dbg.declare(metadata, metadata, metadata) #0

  define void @foo() #1 {
  entry:
    %x.i = alloca i8, align 1
    %y.i = alloca [256 x i8], align 16
    %0 = bitcast [256 x i8]* %y.i to i8*
    br label %for.body

  for.body:
    %1 = bitcast [256 x i8]* %y.i to i8*
    call void @llvm.lifetime.end(i64 -1, i8* %1) #3
    call void @llvm.lifetime.start(i64 -1, i8* %0) #3
    call void @llvm.dbg.declare(metadata i8* %0, metadata !4, metadata !7) #3, !dbg !8
    br label %for.body
  }

  declare void @llvm.lifetime.start(i64, i8* nocapture) #2

  declare void @llvm.lifetime.end(i64, i8* nocapture) #2

  attributes #0 = { nounwind readnone }
  attributes #1 = { nounwind ssp uwtable }
  attributes #2 = { nounwind argmemonly }
  attributes #3 = { nounwind }

  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!3}

  !0 = distinct !DICompileUnit(language: DW_LANG_C89, file: !1, producer: "clang", isOptimized: true, runtimeVersion: 0, emissionKind: 0, enums: !2, retainedTypes: !2)
  !1 = !DIFile(filename: "t.c", directory: "")
  !2 = !{}
  !3 = !{i32 1, !"Debug Info Version", i32 3}
  !4 = !DILocalVariable(name: "x", scope: !5, file: !1, line: 16, type: !6)
  !5 = distinct !DISubprogram(scope: null, isLocal: false, isDefinition: true, isOptimized: false)
  !6 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
  !7 = !DIExpression()
  !8 = !DILocation(line: 0, scope: !5)
...
---
name:            foo
isSSA:           true
tracksRegLiveness: true
frameInfo:
  maxAlignment:    16
# CHECK-LABEL: foo
# CHECK: stack:
# CHECK:  - { id: 0, name: y.i, offset: 0, size: 256, alignment: 16, di-variable: '!4',
# CHECK-NEXT: di-expression: '!7', di-location: '!8' }
stack:
  - { id: 0, name: y.i, offset: 0, size: 256, alignment: 16, di-variable: '!4',
      di-expression: '!7', di-location: '!8' }
body: |
  bb.0.entry:
    successors: %bb.1.for.body
  bb.1.for.body:
    successors: %bb.1.for.body

    DBG_VALUE %stack.0.y.i, 0, !4, !7, debug-location !8
    JMP_1 %bb.1.for.body
...
