; RUN: llc %s -filetype=obj -o - | llvm-dwarfdump -v - | FileCheck %s
; Test that multi-DW_OP_piece expressions are emitted for FI variables.
;
; CHECK: .debug_info contents:
; CHECK: DW_TAG_subprogram
; CHECK:   DW_AT_abstract_origin
; CHECK: DW_TAG_variable
; CHECK-NEXT:   DW_AT_location [DW_FORM_exprloc]	(DW_OP_fbreg -4, DW_OP_piece 0x2, DW_OP_fbreg -8, DW_OP_piece 0x2)
; CHECK-NEXT:   DW_AT_abstract_origin {{.*}}"a"
; Inlined variable, not to be merged.
; CHECK-NOT: DW_TAG
; CHECK: DW_TAG_inlined_subroutine
; CHECK-NOT: DW_TAG
; CHECK:   DW_TAG_variable
; CHECK-NEXT:     DW_AT_location
; CHECK-NEXT:   DW_AT_abstract_origin {{.*}}"a"

; ModuleID = '/tmp/t.c'
source_filename = "/tmp/t.c"
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.12.0"

; Function Attrs: noinline nounwind optnone ssp uwtable
define void @f() #0 !dbg !8 {
entry:
  %a = alloca i16, align 4
  %b = alloca i16, align 4
  call void @llvm.dbg.declare(metadata i16* %a, metadata !11, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 16)), !dbg !14
  store i16 1, i16* %a, align 4, !dbg !14
  call void @llvm.dbg.declare(metadata i16* %b, metadata !11, metadata !DIExpression(DW_OP_LLVM_fragment, 16, 16)), !dbg !16
  call void @llvm.dbg.declare(metadata i16* %a, metadata !11, metadata !13), !dbg !17
  store i16 2, i16* %b, align 4, !dbg !17
  ret void
}

; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

attributes #0 = { noinline nounwind optnone ssp uwtable }
attributes #1 = { nounwind readnone speculatable }

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5, !6}

!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "adrian", emissionKind: FullDebug)
!1 = !DIFile(filename: "/tmp/t.c", directory: "/")
!3 = !{i32 2, !"Dwarf Version", i32 4}
!4 = !{i32 2, !"Debug Info Version", i32 3}
!5 = !{i32 1, !"wchar_size", i32 4}
!6 = !{i32 7, !"PIC Level", i32 2}
!8 = distinct !DISubprogram(name: "f", scope: !1, file: !1, line: 1, type: !9, isLocal: false, isDefinition: true, scopeLine: 1, isOptimized: false, unit: !0)
!9 = !DISubroutineType(types: !10)
!10 = !{null}
!11 = !DILocalVariable(name: "a", scope: !8, file: !1, line: 2, type: !12)
!12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!13 = !DIExpression()
!14 = !DILocation(line: 2, column: 7, scope: !8)
!15 = !DILocalVariable(name: "b", scope: !8, file: !1, line: 3, type: !12)
!16 = !DILocation(line: 3, column: 7, scope: !8)
!17 = !DILocation(line: 3, column: 7, scope: !8, inlinedAt: !16)
