// REQUIRES: plus_one_runtime
// RUN: %empty-directory(%t)
//
// Compile the external swift module.
// RUN: %target-swift-frontend -g -emit-module -enable-resilience \
// RUN:   -emit-module-path=%t/resilient_struct.swiftmodule \
// RUN:   -module-name=resilient_struct %S/../Inputs/resilient_struct.swift
//
// RUN: %target-swift-frontend -g -I %t -emit-ir -enable-resilience %s  -o - \
// RUN:  | %FileCheck %s
//
// RUN: %target-swift-frontend -g -I %t -emit-sil -enable-resilience %s -o - \
// RUN:    | %FileCheck %s --check-prefix=CHECK-SIL
// RUN: %target-swift-frontend -g -I %t -emit-sil -enable-resilience %s -o - \
// RUN:    -debugger-support | %FileCheck %s --check-prefix=CHECK-LLDB
import resilient_struct

func use<T>(_ t: T) {}

public func f() {
  let s1 = Size(w: 1, h: 2)
  use(s1)
  // CHECK: %[[ADDR:.*]] = alloca i8*
  // CHECK: call void @llvm.dbg.declare(metadata i8** %[[ADDR]],
  // CHECK-SAME:                        metadata ![[V1:[0-9]+]],
  // CHECK-SAME:                        metadata !DIExpression(DW_OP_deref))
  // CHECK: %[[USE_BUFFER:.*]] = alloca i8,
  // CHECK: %[[S1:.*]] = alloca i8,
  // CHECK: store i8* %[[S1]], i8** %[[ADDR]]
  // CHECK: ![[V1]] = !DILocalVariable(name: "s1", {{.*}}type: ![[TY:[0-9]+]])
  // CHECK: ![[TY]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Size",
  // FIXME-NOT: size:
  // CHECK: =
}

// CHECK-SIL: // f()
// CHECK-LLDB: // f()
// CHECK-SIL: %0 = alloc_stack $Size, let, name "s1"
// CHECK-LLDB: %0 = metatype $@thin Size.Type
// CHECK-LLDB: debug_value %{{.*}} : $Size, let, name "s1"
