# RUN: llc -filetype=obj -o - %s | llvm-dwarfdump - | FileCheck %s
#
# This is an artificial example of a debug value residing in a composite
# location with a complex expression. Because the semantics of applying a DWARF
# expression to a composite location are ill-defined, the compiler should bail
# out of emitting a location.
#
# CHECK: .debug_info contents:
# CHECK: DW_TAG_variable
# CHECK-NOT: DW_AT_location
# CHECK: DW_TAG
--- |
  ; Generated from:
  ; typedef float vec2 __attribute__((vector_size(16)));
  ; vec2 v();
  ; float f() {
  ;   vec2 vec = v();
  ;   return vec[0] + vec[1];
  ; }

  target datalayout = "e-m:o-p:32:32-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"
  target triple = "thumbv7s-apple-ios5.0.0"
  
  define float @f() local_unnamed_addr #0 !dbg !9 {
  entry:
    %call = tail call <4 x float> bitcast (<4 x float> (...)* @v to <4 x float> ()*)() #0, !dbg !19
    tail call void @llvm.dbg.value(metadata <4 x float> %call, i64 0, metadata !14, metadata !20), !dbg !21
    %vecext = extractelement <4 x float> %call, i32 0, !dbg !22
    %vecext1 = extractelement <4 x float> %call, i32 1, !dbg !23
    %add = fadd float %vecext, %vecext1, !dbg !24
    ret float %add, !dbg !25
  }
  
  declare arm_aapcs_vfpcc <4 x float> @v(...) local_unnamed_addr #0
  declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #0
  
  attributes #0 = { nounwind readnone }
  
  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!3, !4}
  !llvm.ident = !{!8}
  
  !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 4.0.0 (trunk 286322) (llvm/trunk 286305)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
  !1 = !DIFile(filename: "v.c", directory: "/")
  !2 = !{}
  !3 = !{i32 2, !"Dwarf Version", i32 2}
  !4 = !{i32 2, !"Debug Info Version", i32 3}
  !8 = !{!"clang version 4.0.0 (trunk 286322) (llvm/trunk 286305)"}
  !9 = distinct !DISubprogram(name: "f", scope: !1, file: !1, line: 3, type: !10, isLocal: false, isDefinition: true, scopeLine: 3, isOptimized: true, unit: !0, variables: !13)
  !10 = !DISubroutineType(types: !11)
  !11 = !{!12}
  !12 = !DIBasicType(name: "float", size: 32, encoding: DW_ATE_float)
  !13 = !{!14}
  !14 = !DILocalVariable(name: "vec", scope: !9, file: !1, line: 4, type: !15)
  !15 = !DIDerivedType(tag: DW_TAG_typedef, name: "vec2", file: !1, line: 1, baseType: !16)
  !16 = !DICompositeType(tag: DW_TAG_array_type, baseType: !12, size: 128, flags: DIFlagVector, elements: !17)
  !17 = !{!18}
  !18 = !DISubrange(count: 4)
  !19 = !DILocation(line: 4, column: 13, scope: !9)
  !20 = !DIExpression(DW_OP_plus_uconst, 1, DW_OP_constu, 1, DW_OP_minus)
  !21 = !DILocation(line: 4, column: 7, scope: !9)
  !22 = !DILocation(line: 5, column: 9, scope: !9)
  !23 = !DILocation(line: 5, column: 18, scope: !9)
  !24 = !DILocation(line: 5, column: 16, scope: !9)
  !25 = !DILocation(line: 5, column: 2, scope: !9)

...
---
name:            f
alignment:       1
exposesReturnsTwice: false
legalized:       false
regBankSelected: false
selected:        false
tracksRegLiveness: true
calleeSavedRegisters: [ '%lr', '%d8', '%d9', '%d10', '%d11', '%d12', '%d13', 
                        '%d14', '%d15', '%q4', '%q5', '%q6', '%q7', '%r4', 
                        '%r5', '%r6', '%r7', '%r8', '%r10', '%r11', '%s16', 
                        '%s17', '%s18', '%s19', '%s20', '%s21', '%s22', 
                        '%s23', '%s24', '%s25', '%s26', '%s27', '%s28', 
                        '%s29', '%s30', '%s31', '%d8_d10', '%d9_d11', '%d10_d12', 
                        '%d11_d13', '%d12_d14', '%d13_d15', '%q4_q5', '%q5_q6', 
                        '%q6_q7', '%q4_q5_q6_q7', '%r4_r5', '%r6_r7', '%r10_r11', 
                        '%d8_d9_d10', '%d9_d10_d11', '%d10_d11_d12', '%d11_d12_d13', 
                        '%d12_d13_d14', '%d13_d14_d15', '%d8_d10_d12', 
                        '%d9_d11_d13', '%d10_d12_d14', '%d11_d13_d15', 
                        '%d8_d10_d12_d14', '%d9_d11_d13_d15', '%d9_d10', 
                        '%d11_d12', '%d13_d14', '%d9_d10_d11_d12', '%d11_d12_d13_d14' ]
frameInfo:       
  isFrameAddressTaken: false
  isReturnAddressTaken: false
  hasStackMap:     false
  hasPatchPoint:   false
  stackSize:       4
  offsetAdjustment: 0
  maxAlignment:    4
  adjustsStack:    true
  hasCalls:        true
  maxCallFrameSize: 0
  hasOpaqueSPAdjustment: false
  hasVAStart:      false
  hasMustTailInVarArgFunc: false
stack:           
  - { id: 0, type: spill-slot, offset: -4, size: 4, alignment: 4, callee-saved-register: '%lr' }
body:             |
  bb.0.entry:
    liveins: %lr
  
    early-clobber %sp = frame-setup t2STR_PRE killed undef %lr, %sp, -4, 14, _
    frame-setup CFI_INSTRUCTION def_cfa_offset 4
    frame-setup CFI_INSTRUCTION offset %lr, -4
    tBL 14, _, @v, csr_ios, implicit-def dead %lr, implicit %sp, implicit-def %sp, implicit-def %r0, implicit-def %r1, implicit-def %r2, implicit-def %r3, debug-location !19
    %d1 = VMOVDRR killed %r2, killed %r3, 14, _, implicit-def %q0, debug-location !19
    %d0 = VMOVDRR killed %r0, killed %r1, 14, _, implicit killed %q0, implicit-def %q0, debug-location !19
    DBG_VALUE debug-use %q0, debug-use _, !14, !20, debug-location !21
    %s4 = VMOVS %s1, 14, _, implicit-def %d2, debug-location !24
    %d0 = VADDfd %d0, killed %d2, 14, _, implicit killed %q0, debug-location !24
    %r0 = VMOVRS %s0, 14, _, implicit killed %d0, debug-location !25
    %lr, %sp = t2LDR_POST %sp, 4, 14, _, debug-location !25
    tBX_RET 14, _, implicit %r0, debug-location !25

...
