// RUN: %target-sil-opt -enable-sil-verify-all %s

// Check that sil_globals and their corresponding decls are
// parsed. There is no direct way to verify that the declarations are
// properly associated with the sil_globals, so just make sure it succeeds.
//
// FIXME: Add support for name collisions across private/fileprivate globals.

sil_stage canonical

import Builtin
import Swift
import SwiftShims

struct S {
  init()
}

class C {
  init()
  deinit
}

enum E {
  case a
  @_implements(Equatable, ==(_:_:)) static func __derived_enum_equals(_ a: E, _ b: E) -> Bool
  var hashValue: Int { get }
  func hash(into hasher: inout Hasher)
}

private var global1: S

fileprivate var global2: C

var global3: E

public var global4: Int

weak var global5: @sil_weak C?

// CHECK: sil_global private @$s11global_decl7global133_EB6670D548223EDC99AF0D8F02575BC4LLAA1SVvp : $S
sil_global private @$s11global_decl7global133_EB6670D548223EDC99AF0D8F02575BC4LLAA1SVvp : $S

// CHECK: sil_global private @$s11global_decl7global233_EB6670D548223EDC99AF0D8F02575BC4LLAA1CCvp : $C
sil_global private @$s11global_decl7global233_EB6670D548223EDC99AF0D8F02575BC4LLAA1CCvp : $C

// CHECK: sil_global hidden @$s11global_decl7global3AA1EOvp : $E
sil_global hidden @$s11global_decl7global3AA1EOvp : $E

// CHECK: sil_global @$s11global_decl7global4Sivp : $Int
sil_global @$s11global_decl7global4Sivp : $Int

// CHECK: sil_global hidden @$s11global_decl7global5AA1CCSgXwvp : $@sil_weak Optional<C>
sil_global hidden @$s11global_decl7global5AA1CCSgXwvp : $@sil_weak Optional<C>
