Files
swift-mirror/test/IRGen/access_control.sil
Slava Pestov b49a4525c3 SIL: Only give type metadata public linkage if -sil-serialize-all is on
Otherwise, any types referenced from transparent functions must be
public or @_versioned.
2016-03-28 14:14:50 -07:00

32 lines
1.5 KiB
Plaintext

// RUN: %target-swift-frontend -emit-ir %s | FileCheck %s
import Builtin
import Swift
public struct PublicStruct { var x: Int }
// CHECK: @_TWVV14access_control12PublicStruct = {{(protected )?}}constant
// CHECK: @_TMnV14access_control12PublicStruct = {{(protected )?}}constant
// CHECK: @_TMfV14access_control12PublicStruct = internal constant
internal struct InternalStruct { var x: Int }
// CHECK: @_TWVV14access_control14InternalStruct = hidden constant
// CHECK: @_TMnV14access_control14InternalStruct = hidden constant
// CHECK: @_TMfV14access_control14InternalStruct = internal constant
private struct PrivateStruct { var x: Int }
// CHECK: @_TWVV14access_controlP33_8F630B0A1EEF3ED34B761E3ED76C95A813PrivateStruct = hidden constant
// CHECK: @_TMnV14access_controlP33_8F630B0A1EEF3ED34B761E3ED76C95A813PrivateStruct = hidden constant
// CHECK: @_TMfV14access_controlP33_8F630B0A1EEF3ED34B761E3ED76C95A813PrivateStruct = internal constant
func local() {
struct LocalStruct { var x: Int }
// CHECK: @_TWVVF14access_control5localFT_T_L_11LocalStruct = hidden constant
// CHECK: @_TMnVF14access_control5localFT_T_L_11LocalStruct = hidden constant
// CHECK: @_TMfVF14access_control5localFT_T_L_11LocalStruct = internal constant
}
// CHECK: @_TMV14access_control12PublicStruct = {{(protected )?}}alias
// CHECK: @_TMV14access_control14InternalStruct = hidden alias
// CHECK: @_TMV14access_controlP33_8F630B0A1EEF3ED34B761E3ED76C95A813PrivateStruct = hidden alias
// CHECK: @_TMVF14access_control5localFT_T_L_11LocalStruct = hidden alias