Get rid of Int in the debug info tests and preform some general cleanup.

<rdar://problem/20856296> Extinguish 'Int' from DebugInfo tests

Swift SVN r31177
This commit is contained in:
Adrian Prantl
2015-08-12 18:16:43 +00:00
parent 10afd159e4
commit 4f11ecc1da
43 changed files with 161 additions and 256 deletions

View File

@@ -22,7 +22,7 @@
// A type that should be serialized.
class Foo {
init() { }
func bar() -> Int { return 42 }
func bar() -> Int64 { return 42 }
}
// Some toplevel code that should not be serialized.

View File

@@ -1,12 +1,12 @@
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
struct Foo {
// Allocating constructor - should have no line table info.
// CHECK: !DISubprogram(name: "init", linkageName: "_TFV12Constructors3FooCfMS0_FT1xSi_S0_",
// CHECK: !DISubprogram(name: "init", linkageName: "_TFV12Constructors3FooCfMS0_FT1xVSs5Int64_S0_",
// CHECK-SAME: line: [[@LINE+3]]
// CHECK-NOT: scopeLine: 0
// CHECK-SAME: isDefinition: true
init(x: Int) {}
func bar(x: Int) {}
init(x: Int64) {}
func bar(x: Int64) {}
}
var f = Foo(x: 1)

View File

@@ -6,8 +6,8 @@ class Foo {
// CHECK: !DISubprogram(name: "deinit", linkageName: "_TFC11Destructors3FooD"
// CHECK-SAME: line: [[@LINE-2]]
// CHECK-SAME: isDefinition: true
var x : Int
init(x: Int) { self.x = x }
var x : Int64
init(x: Int64) { self.x = x }
func bar() -> (() -> ()) { return { markUsed(self.x) } }
}

View File

@@ -1,8 +1,8 @@
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
class C {
let n : Int
required init (number i :Int) {
let n : Int64
required init (number i :Int64) {
self.n = i
}
}

View File

@@ -9,14 +9,14 @@
func markUsed<T>(t: T) {}
private class A {
init(val : Int) { member = val }
private let member : Int
init(val : Int64) { member = val }
private let member : Int64
// CHECK: !DISubprogram(name: "getMember"
// CHECK-SAME: linkageName: "{{[^"]*}}[[DISCRIMINATOR]]
// CHECK-SAME: line: [[@LINE+2]]
// CHECK-SAME: isLocal: true, isDefinition: true
private func getMember() -> Int { return member }
func getVal() -> Int { return getMember() }
private func getMember() -> Int64 { return member }
func getVal() -> Int64 { return getMember() }
}
func f() {

View File

@@ -5,9 +5,9 @@
// CHECK: !DISubprogram(name: "x.set"
// Variable getter/setter
var _x : Int = 0
var x_modify_count : Int = 0
var x: Int {
var _x : Int64 = 0
var x_modify_count : Int64 = 0
var x: Int64 {
get {
return _x
}

View File

@@ -10,12 +10,12 @@ protocol F_ {
}
protocol F : F_ {
func ~> (_: Self, _: (_Distance, (Self))) -> Int
func ~> (_: Self, _: (_Distance, (Self))) -> Int64
}
struct _Distance {}
func ~> <I: F_>(self_:I, _: (_Distance, (I))) -> Int {
func ~> <I: F_>(self_:I, _: (_Distance, (I))) -> Int64 {
self_.successor()
markUsed("F")
return 0

View File

@@ -6,7 +6,7 @@
// REQUIRES: OS=macosx
// Verify that the unmangles basenames end up in the accelerator table.
// CHECK-ACCEL-DAG: str[0]{{.*}}"Int"
// CHECK-ACCEL-DAG: str[0]{{.*}}"Int64"
// CHECK-ACCEL-DAG: str[0]{{.*}}"foo"
// Verify that the mangled names end up in the debug info.
@@ -21,10 +21,10 @@
// CHECK-SAME: line: [[@LINE+2]]
// CHECK-SAME: identifier: "_TtC4main3foo"
class foo {
var x : Int = 1
var x : Int64 = 1
}
func main() -> Int {
func main() -> Int64 {
var thefoo = foo();
return thefoo.x
}

View File

@@ -10,4 +10,4 @@ class C<A> {
}
}
C<Int>().foo(1, y: 3.14);
C<Int64>().foo(1, y: 3.14);

View File

@@ -2,10 +2,10 @@
// Verify that arguments described by debug_value intrinsics are only
// emitted once.
var g = 1
var g: Int64 = 1
class Foo {
var x: Int
var x: Int64
// CHECK: define {{.*}}_TFC4main3FoocfMS0_FT_S0_
// CHECK: entry:
// CHECK-NEXT: %[[SELF:.*]] = alloca

View File

@@ -3,7 +3,7 @@
func markUsed<T>(t: T) {}
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "arg", arg: 1,{{.*}} line: [[@LINE+1]]
func a(arg : Int)
func a(arg : Int64)
{
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "local",{{.*}} line: [[@LINE+1]]
var local = arg
@@ -12,25 +12,25 @@ func a(arg : Int)
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "a", arg: 1,{{.*}} line: [[@LINE+3]]
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "b", arg: 2,{{.*}} line: [[@LINE+2]]
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "c", arg: 3,{{.*}} line: [[@LINE+1]]
func many(a: Int, b: (Int, Int), c: Int) -> Int {
func many(a: Int64, b: (Int64, Int64), c: Int64) -> Int64 {
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "i1",{{.*}} line: [[@LINE+1]]
var i1 = a
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "i2",{{.*}} line: [[@LINE+2]]
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "i3",{{.*}} line: [[@LINE+1]]
var (i2, i3) : (Int, Int) = b
var (i2, i3) : (Int64, Int64) = b
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "i4",{{.*}} line: [[@LINE+1]]
var i4 = c
return i1+i2+i3+i4
}
class A {
var member : Int
var member : Int64
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "a", arg: 1,{{.*}} line: [[@LINE+1]]
init(a: Int) { member = a }
init(a: Int64) { member = a }
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "offset", arg: 1,{{.*}} line: [[@LINE+2]]
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "self", arg: 2,{{.*}} line: [[@LINE+1]]
func getValuePlus(offset: Int) -> Int {
func getValuePlus(offset: Int64) -> Int64 {
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "a",{{.*}} line: [[@LINE+1]]
var a = member
return a+offset
@@ -39,7 +39,7 @@ class A {
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "factor", arg: 1,{{.*}} line: [[@LINE+3]]
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "offset", arg: 2,{{.*}} line: [[@LINE+2]]
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "self", arg: 3,{{.*}} line: [[@LINE+1]]
func getValueTimesPlus(factor: Int, offset: Int) -> Int {
func getValueTimesPlus(factor: Int64, offset: Int64) -> Int64 {
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "a",{{.*}} line: [[@LINE+1]]
var a = member
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "f",{{.*}} line: [[@LINE+1]]
@@ -57,12 +57,12 @@ class A {
// Curried functions have their arguments backwards.
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "b", arg: 1,{{.*}} line: [[@LINE+2]]
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "a", arg: 2,{{.*}} line: [[@LINE+1]]
func uncurry (a: Int) (b: Int) -> (Int, Int) {
func uncurry (a: Int64) (b: Int64) -> (Int64, Int64) {
return (a, b)
}
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "x", arg: 1,{{.*}} line: [[@LINE+2]]
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "y", arg: 2,{{.*}} line: [[@LINE+1]]
func tuple(x: Int, y: (Int, Float, String)) -> Int {
func tuple(x: Int64, y: (Int64, Float, String)) -> Int64 {
return x+y.0;
}

View File

@@ -12,7 +12,7 @@ class SwiftClass {
@objc func objcmethod() -> () {}
func swiftmethod() -> () {}
// Block attribute
func f(someBlock: @convention(block) (Int) -> Int) {
func f(someBlock: @convention(block) (Int64) -> Int64) {
}
}

View File

@@ -1,16 +1,13 @@
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
// CHECK: define linkonce_odr hidden void @_TFF11autoclosure7call_meFSiT_u_KT_PSs11BooleanType_
// CHECK: define linkonce_odr hidden void @_TFF11autoclosure7call_meFVSs5Int64T_u_KT_PSs11BooleanType_
// CHECK: call void @llvm.dbg.declare{{.*}}, !dbg
// CHECK: , !dbg ![[DBG:.*]]
func markUsed<T>(t: T) {}
func get_truth(input: Int) -> Int {
func get_truth(input: Int64) -> Int64 {
return input % 2
}
// Since this is an autoclosure test, don't use &&, which is transparent.
infix operator &&&&& {
associativity left
@@ -21,14 +18,13 @@ func &&&&&(lhs: BooleanType, @autoclosure rhs: ()->BooleanType) -> Bool {
return lhs.boolValue ? rhs().boolValue : false
}
func call_me(var input: Int) -> Void {
func call_me(var input: Int64) -> Void {
// rdar://problem/14627460
// An autoclosure should have a line number in the debug info and a scope line of 0.
// CHECK-DAG: !DISubprogram({{.*}}linkageName: "_TFF11autoclosure7call_meFSiT_u_KT_PSs11BooleanType_",{{.*}} line: [[@LINE+3]],{{.*}} isLocal: false, isDefinition: true
// CHECK-DAG: !DISubprogram({{.*}}linkageName: "_TFF11autoclosure7call_meFVSs5Int64T_u_KT_PSs11BooleanType_",{{.*}} line: [[@LINE+3]],{{.*}} isLocal: false, isDefinition: true
// But not in the line table.
// CHECK-DAG: ![[DBG]] = !DILocation(line: [[@LINE+1]],
if input != 0 &&&&& ( get_truth (input * 2 + 1) > 0 ) {
markUsed("Whew, passed that test.")
}
}

View File

@@ -1,13 +1,11 @@
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
func markUsed<T>(t: T) {}
func makeIncrementor(inc : Int) -> () -> Int
func makeIncrementor(inc : Int64) -> () -> Int64
{
var sum = 0
var sum : Int64 = 0
// CHECK: define {{.*}}5inner
func inner() -> Int {
// CHECK: call void @llvm.dbg.declare(metadata %Si** %{{.*}}, metadata ![[SUM_CAPTURE:[0-9]+]], metadata ![[DEREF:[0-9]+]])
func inner() -> Int64 {
// CHECK: call void @llvm.dbg.declare(metadata %VSs5Int64** %{{.*}}, metadata ![[SUM_CAPTURE:[0-9]+]], metadata ![[DEREF:[0-9]+]])
// CHECK-DAG: ![[SUM_CAPTURE]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "sum",{{.*}} line: [[@LINE-4]]
// CHECK-DAG: ![[DEREF]] = !DIExpression(DW_OP_deref
sum += inc
@@ -16,7 +14,4 @@ func makeIncrementor(inc : Int) -> () -> Int
return inner
}
var incrementor = makeIncrementor (5)
var a = 5
var more_than_a = incrementor ()
markUsed("a was \(a) and more_than_a was \(more_than_a)")
var incrementor = makeIncrementor(5)

View File

@@ -2,7 +2,7 @@
func markUsed<T>(t: T) {}
func foo(a : Int, _ b : Int) -> Int {
func foo(a : Int64, _ b : Int64) -> Int64 {
return a+b
}

View File

@@ -29,7 +29,7 @@ func main() -> Void
// Ensure the two local_vars are in different lexical scopes.
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "local_var", scope: ![[THENSCOPE:[0-9]+]],{{.*}} line: [[@LINE+2]],
// CHECK-DAG: ![[THENSCOPE]] = distinct !DILexicalBlock({{.*}} line: [[@LINE-3]]
var local_var : Int = 10
var local_var : Int64 = 10
print("I have an int here \(local_var).\n", terminator: "")
return false
}

View File

@@ -17,7 +17,7 @@ func main () -> Void
if rhs == random_string
|| rhs.unicodeScalars.count == random_int {
var local_var : Int = 10
var local_var : Int64 = 10
print("I have an int here \(local_var).\n", terminator: "")
return false
}

View File

@@ -11,11 +11,11 @@ func foldl1<T>(list: [T], _ function: (a: T, b: T) -> T) -> T {
return accumulator
}
var a = [Int](count: 10, repeatedValue: 0)
for i in 0..<10 { a[i] = i }
var a = [Int64](count: 10, repeatedValue: 0)
for i in 0..<10 { a[i] = Int64(i) }
// A closure is not an artificial function (the last i32 0).
// CHECK: !DISubprogram({{.*}}linkageName: "_TF7closureU_FTSiSi_Si",{{.*}} line: 20,{{.*}} scopeLine: 20,
// CHECK: !DISubprogram({{.*}}linkageName: "_TF7closureU_FTVSs5Int64S0__S0_",{{.*}} line: 20,{{.*}} scopeLine: 20,
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "$0",{{.*}} line: [[@LINE+2]],
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "$1",{{.*}} line: [[@LINE+1]],
var sum:Int = foldl1(a, { $0 + $1 })
var sum:Int64 = foldl1(a, { $0 + $1 })
markUsed(sum)

View File

@@ -16,7 +16,7 @@ class Class <T> {
}
func main() {
var v = Class<Int>(_x: 1)
var v = Class<Int64>(_x: 1)
var tuple = v.foo("hi")
markUsed(tuple.0)
markUsed(tuple.1)

View File

@@ -5,9 +5,9 @@
// CHECK-SAME: line: [[@LINE+3]]
// CHECK-SAME: size: 8, align: 8,
// CHECK-SAME: identifier: "_TtO4enum5Color"
enum Color : UInt {
enum Color : UInt64 {
// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "Red"
// CHECK-SAME: baseType: !"_TtSu"
// CHECK-SAME: baseType: !"_TtVSs6UInt64"
// CHECK-SAME: size: 8, align: 8{{[,)]}}
case Red, Green, Blue
}

View File

@@ -1,14 +1,14 @@
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
// CHECK-DAG: ![[SINODE:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Int",{{.*}} identifier: [[SI:.*]])
// CHECK-DAG: ![[SINODE:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Int64",{{.*}} identifier: [[SI:.*]])
// CHECK-DAG: ![[SFNODE:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "Float",{{.*}} identifier: [[SF:.*]])
// CHECK-DAG: ![[VOIDNODE:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "_TtT_",{{.*}} identifier: [[VOID:.*]])
func bar() {
print("bar()", terminator: "")
}
func baz(i: Float) -> Int { return 0; }
func barz(i: Float, _ j: Float) -> Int { return 0; }
func main() -> Int {
func baz(i: Float) -> Int64 { return 0; }
func barz(i: Float, _ j: Float) -> Int64 { return 0; }
func main() -> Int64 {
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "bar_function_pointer",{{.*}} line: [[@LINE+1]],{{.*}} type: !"[[BARPT:[^,]+]]"
var bar_function_pointer = bar
@@ -26,7 +26,7 @@ func main() -> Int {
// CHECK-DAG: ![[BAZMEMBER]] = !DIDerivedType(tag: DW_TAG_member,{{.*}} baseType: ![[BAZPTR:[0-9]+]]
// CHECK-DAG: ![[BAZPTR]] = !DIDerivedType(tag: DW_TAG_pointer_type,{{.*}} baseType: ![[BAZT:[0-9]+]]
// CHECK-DAG: ![[BAZT]] = !DISubroutineType(types: ![[BAZARGS:.*]])
// CHECK-DAG: ![[BAZARGS]] = !{!"_TtSi", !"_TtSf"}
// CHECK-DAG: ![[BAZARGS]] = !{!"_TtVSs5Int64", !"_TtSf"}
var baz_function_pointer = baz
baz_function_pointer(2.89)
@@ -36,7 +36,7 @@ func main() -> Int {
// CHECK-DAG: ![[BARZMEMBER]] = !DIDerivedType(tag: DW_TAG_member,{{.*}} baseType: ![[BARZPTR:[0-9]+]]
// CHECK-DAG: ![[BARZPTR]] = !DIDerivedType(tag: DW_TAG_pointer_type,{{.*}} baseType: ![[BARZT:[0-9]+]]
// CHECK-DAG: ![[BARZT]] = !DISubroutineType(types: ![[BARZARGS:.*]])
// CHECK-DAG: ![[BARZARGS]] = !{!"_TtSi", !"_TtSf", !"_TtSf"}
// CHECK-DAG: ![[BARZARGS]] = !{!"_TtVSs5Int64", !"_TtSf", !"_TtSf"}
var barz_function_pointer = barz
return barz_function_pointer(2.89, -1.0)
}

View File

@@ -1,7 +1,5 @@
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
func markUsed<T>(t: T) {}
// CHECK: @_TFC12generic_arg25Class3foo{{.*}}, %swift.type* %U
// CHECK: %[[Y:.*]] = call %swift.opaque* %initializeBufferWithTake{{.*}}([{{(24|12)}} x i8]* %{{.*}}, %swift.opaque* %{{.*}}, %swift.type* %U)
// store %swift.opaque* %[[Y]], %swift.opaque** %[[Y_SHADOW:.*]], align
@@ -10,13 +8,9 @@ func markUsed<T>(t: T) {}
// CHECK-NOT: dbg.value{{.*}}metadata ![[U]]
class Class <T> {
// CHECK: ![[U]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "y",{{.*}} line: [[@LINE+1]],
func foo<U>(var x: T, var y: U) {
markUsed("hello world")
}
func foo<U>(var x: T, var y: U) {}
func bar(var x: String, var y: Int) {
markUsed("hello world")
}
func bar(var x: String, var y: Int64) {}
init() {}
}
@@ -24,7 +18,7 @@ class Class <T> {
func main() {
var object: Class<String> = Class()
var x = "hello"
var y = 1234
var y : Int64 = 1234
object.bar(x, y: y)
object.foo(x, y: y)
}

View File

@@ -16,9 +16,9 @@ func unwrapTrivialGeneric<T, U>(tg: TrivialGeneric<T, U>) -> (T, U) {
func wrapTrivialGeneric<T, U>(t: T, u: U) -> TrivialGeneric<T, U> {
return .x(t, u)
}
// CHECK-DAG: !DIGlobalVariable(name: "tg",{{.*}} line: [[@LINE+2]],{{.*}} type: !"_TtGO12generic_enum14TrivialGenericSiSS_",{{.*}} isLocal: false, isDefinition: true
// CHECK-DAG: !DICompositeType(tag: DW_TAG_union_type, name: "TrivialGeneric", {{.*}}identifier: "_TtGO12generic_enum14TrivialGenericSiSS_"
var tg : TrivialGeneric<Int, String> = .x(23, "skidoo")
// CHECK-DAG: !DIGlobalVariable(name: "tg",{{.*}} line: [[@LINE+2]],{{.*}} type: !"_TtGO12generic_enum14TrivialGenericVSs5Int64SS_",{{.*}} isLocal: false, isDefinition: true
// CHECK-DAG: !DICompositeType(tag: DW_TAG_union_type, name: "TrivialGeneric", {{.*}}identifier: "_TtGO12generic_enum14TrivialGenericVSs5Int64SS_"
var tg : TrivialGeneric<Int64, String> = .x(23, "skidoo")
switch tg {
case .x(var t, var u):
markUsed("\(t) \(u)")

View File

@@ -19,65 +19,4 @@ class Person : Named {
var age = 0
}
struct Pair<T> {
var first : T
var second : T
}
struct Point {
var x : Double
var y : Double
}
enum Suits {
case Clubs
case Diamonds
case Hearts
case Spades
}
func echo<T>(input : T) -> T {
return input
}
func test() {
var string = "Hello, World!"
var i8 : Int8 = 8
var i16 : Int16 = 16
var i32 : Int32 = 32
var i64 : Int64 = 64
var u8 : UInt8 = 8
var u16 : UInt16 = 16
var u32 : UInt32 = 32
var u64 : UInt64 = 64
var float : Float = 32
var double : Double = 64
var suitEnum = Suits.Clubs
var pair = Pair(first: Suits.Hearts, second: Suits.Diamonds)
var function = test
var range = 0..<100
var optionalNone : Float? = .None
var optionalSome : Float? = 100
var tuple = (i8, i16, i32, i64, string)
var person = Person()
var point = Point(x: 10.0, y: 20.0)
var object = ObjCClass()
var arrayInt = [10, 20, 30]
var arrayOptionalInt : [Int?] = [10, .None, 30, .None, 20]
var arrayString = ["Kate", "Sean", "Barry"]
var arrayPerson = [Person(), Person()]
var dictionary = [1 : "Kate", 2 : "Sean", 3 : "Barry"]
echo(string)
echo(tuple)
echo(point)
}
test()
var person = Person()

View File

@@ -5,25 +5,25 @@
// LValues are direct values, too. They are reference types, though.
func Close(fn: () -> Int) { fn() }
func Close(fn: () -> Int64) { fn() }
typealias MyFloat = Float
// CHECK: define hidden void @_TF5inout13modifyFooHeap
// CHECK: %[[ALLOCB:.*]] = alloca %Sf
// CHECK: %[[ALLOCA:.*]] = alloca %Si*
// CHECK: %[[ALLOCA:.*]] = alloca %VSs5Int64*
// CHECK-DAG: call void @llvm.dbg.declare(metadata {{.*}} %[[ALLOCA]], metadata ![[A:[0-9]+]]
// CHECK-DAG: call void @llvm.dbg.declare(metadata {{.*}} %[[ALLOCB]], metadata ![[B:[0-9]+]], metadata !{{[0-9]+}})
// Closure with promoted capture.
// PROMO-CHECK: define {{.*}}@_TTSf2d_i___TFF5inout13modifyFooHeapFTRSiSf_T_U_FT_Si
// PROMO-CHECK: define {{.*}}@_TTSf2d_i___TFF5inout13modifyFooHeapFTRVSs5Int64Sf_T_U_FT_S0_
// PROMO-CHECK: call void @llvm.dbg.declare(metadata {{(i32|i64)}}* %{{.*}}, metadata ![[A1:[0-9]+]], metadata ![[EMPTY_EXPR:[0-9]+]])
// PROMO-CHECK-DAG: ![[EMPTY_EXPR]] = !DIExpression()
// PROMO-CHECK-DAG: ![[REFINT:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "_TtRSi"
// PROMO-CHECK-DAG: ![[A1]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "a",{{.*}} type: !"_TtSi"
// PROMO-CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "_TtRSi"
func modifyFooHeap(inout a: Int,
// CHECK-DAG: ![[A]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "a",{{.*}} line: [[@LINE-1]],{{.*}} type: !"_TtRSi"
// PROMO-CHECK-DAG: ![[REFINT:.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "_TtRVSs5Int64"
// PROMO-CHECK-DAG: ![[A1]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "a",{{.*}} type: !"_TtVSs5Int64"
// PROMO-CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "_TtRVSs5Int64"
func modifyFooHeap(inout a: Int64,
// CHECK-DAG: ![[A]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "a",{{.*}} line: [[@LINE-1]],{{.*}} type: !"_TtRVSs5Int64"
// CHECK-DAG: ![[B]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "b",{{.*}} line: [[@LINE+2]],{{.*}} type: ![[MYFLOAT:[0-9]+]]
// CHECK-DAG: ![[MYFLOAT]] = !DIDerivedType(tag: DW_TAG_typedef, name: "_Tta5inout7MyFloat",{{.*}} baseType: !"_TtSf"
var _ b: MyFloat)
@@ -37,12 +37,12 @@ func modifyFooHeap(inout a: Int,
}
// Inout reference type.
// FOO-CHECK: define {{.*}}@_TF5inout9modifyFooFTRSiSf_T_
// FOO-CHECK: call void @llvm.dbg.declare(metadata %Si** %{{.*}}, metadata ![[U:[0-9]+]], metadata ![[EMPTY_EXPR:.*]])
// FOO-CHECK: define {{.*}}@_TF5inout9modifyFooFTRVSs5Int64Sf_T_
// FOO-CHECK: call void @llvm.dbg.declare(metadata %VSs5Int64** %{{.*}}, metadata ![[U:[0-9]+]], metadata ![[EMPTY_EXPR:.*]])
// FOO-CHECK-DAG: ![[EMPTY_EXPR]] = !DIExpression()
func modifyFoo(inout u: Int,
func modifyFoo(inout u: Int64,
// FOO-CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "v",{{.*}} line: [[@LINE+2]],{{.*}} type: ![[MYFLOAT:[0-9]+]]
// FOO-CHECK-DAG: [[U]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "u",{{.*}} line: [[@LINE-2]],{{.*}} type: !"_TtRSi"
// FOO-CHECK-DAG: [[U]] = !DILocalVariable(tag: DW_TAG_arg_variable, name: "u",{{.*}} line: [[@LINE-2]],{{.*}} type: !"_TtRVSs5Int64"
var _ v: MyFloat)
// FOO-CHECK-DAG: ![[MYFLOAT]] = !DIDerivedType(tag: DW_TAG_typedef, name: "_Tta5inout7MyFloat",{{.*}} baseType: !"_TtSf"
{
@@ -51,11 +51,11 @@ func modifyFoo(inout u: Int,
}
}
func main() -> Int {
var c = 11 as Int
func main() -> Int64 {
var c = 11 as Int64
modifyFoo(&c, 3.14)
var d = 64 as Int
var d = 64 as Int64
modifyFooHeap(&d, 1.41)
return 0
}

View File

@@ -5,12 +5,12 @@
func markUsed<T>(t: T) {}
class Class {
var ivar : Int
var ivar : Int64
init() { ivar = 1234 }
}
class Other : Class {
var ovar : Int
var ovar : Int64
override init() {
ovar = 112233
super.init()
@@ -19,7 +19,7 @@ class Other : Class {
}
struct Struct {
var ivar : Int
var ivar : Int64
init() { ivar = 4567 }
}

View File

@@ -1,10 +1,10 @@
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | FileCheck %s
class DeepThought {
func query() -> Int { return 42 }
func query() -> Int64 { return 42 }
}
func foo() -> Int {
func foo() -> Int64 {
// CHECK: call void @llvm.dbg.declare(metadata %C3let11DeepThought** {{.*}}, metadata ![[A:.*]], metadata !{{[0-9]+}})
// CHECK ![[A]] = {{.*}}i32 0} ; [ DW_TAG_auto_variable ] [machine] [line [[@LINE+1]]]
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "machine"

View File

@@ -4,7 +4,7 @@ import StdlibUnittest
class Obj {}
func foo (a : Int) throws -> Void {
func foo (a : Int64) throws -> Void {
_blackHole(a)
}

View File

@@ -2,18 +2,18 @@
// RUN: %target-swift-frontend %s -S -g -o - | FileCheck %s --check-prefix ASM-CHECK
// REQUIRES: CPU=i386_or_x86_64
import Swift
func markUsed<T>(t: T) {}
class MyClass
{
var x : Int
init(input: Int)
var x : Int64
init(input: Int64)
{
x = 2 * input
}
func do_something(input: Int) -> Int
func do_something(input: Int64) -> Int64
{
return x * input;
}
@@ -24,7 +24,7 @@ func call_me(code: () -> Void)
code ()
}
func main(x: Int) -> Void
func main(x: Int64) -> Void
// CHECK: define hidden void @_TF9linetable4main
{
var my_class = MyClass(input: 10)
@@ -32,10 +32,10 @@ func main(x: Int) -> Void
// ASM-CHECK: .loc [[FILEID:[0-9]]] [[@LINE+1]] 5
call_me (
// ASM-CHECK-NOT: .loc [[FILEID]] [[@LINE+1]] 5
// CHECK: @_TTSf2d_i_n___TFF9linetable4mainFSiT_U_FT_T_
// CHECK: @_TTSf2d_i_n___TFF9linetable4mainFVSs5Int64T_U_FT_T_
{
var result = my_class.do_something(x)
print("Here is something you might consider doing: \(result).\n", terminator: "")
markUsed(result)
// CHECK: call {{.*}} @swift_release {{.*}}
// CHECK: call {{.*}} @swift_release {{.*}}, !dbg ![[CLOSURE_END:.*]]
// CHECK-NEXT: ret void, !dbg ![[CLOSURE_END]]
@@ -46,7 +46,7 @@ func main(x: Int) -> Void
// ASM-CHECK: .loc [[FILEID]] [[@LINE+1]] 5
call_me (
{
print("Here is something you might consider doing: \(x).\n", terminator: "")
markUsed(x)
}
)
@@ -57,7 +57,7 @@ func main(x: Int) -> Void
// ASM-CHECK: ret
}
// ASM-CHECK:_TTSf2d_i_n___TFF9linetable4mainFSiT_U_FT_T_:
// ASM-CHECK:_TTSf2d_i_n___TFF9linetable4mainFVSs5Int64T_U_FT_T_:
// ASM-CHECK-NOT: retq
// The end-of-prologue should have a valid location.
// ASM-CHECK: .loc [[FILEID]] 37 {{[0-9]+}} prologue_end

View File

@@ -3,36 +3,40 @@
// Type:
// Swift.Dictionary<Swift.Int64, Swift.String>
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "Dictionary",{{.*}} identifier: [[DT:[^,)]+]])
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "_TtT4NameSS2IdSi_",{{.*}} identifier: [[TT1:[^,)]+]])
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "_TtTSS2IdSi_",{{.*}} identifier: [[TT2:[^,)]+]])
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "_TtT4NameSS2IdVSs5Int64_",{{.*}} identifier: [[TT1:[^,)]+]])
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "_TtTSS2IdVSs5Int64_",{{.*}} identifier: [[TT2:[^,)]+]])
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "_TtTSSVSs5Int64_",{{.*}} identifier: [[TT3:[^,)]+]])
func markUsed<T>(t: T) {}
// Variable:
// mangling.myDict : Swift.Dictionary<Swift.Int64, Swift.String>
// CHECK: !DIGlobalVariable(name: "myDict", linkageName: "_Tv8mangling6myDictGVSs10DictionarySiSS_",
// CHECK: !DIGlobalVariable(name: "myDict",
// CHECK-SAME: linkageName: "_Tv8mangling6myDictGVSs10DictionaryVSs5Int64SS_",
// CHECK-SAME: line: [[@LINE+2]]
// CHECK-SAME: type: ![[DT]]
var myDict = Dictionary<Int, String>()
var myDict = Dictionary<Int64, String>()
myDict[12] = "Hello!"
// mangling.myTuple1 : (Name : Swift.String, Id : Swift.Int64)
// CHECK: !DIGlobalVariable(name: "myTuple1", linkageName: "_Tv8mangling8myTuple1T4NameSS2IdSi_",
// CHECK: !DIGlobalVariable(name: "myTuple1",
// CHECK-SAME: linkageName: "_Tv8mangling8myTuple1T4NameSS2IdVSs5Int64_",
// CHECK-SAME: line: [[@LINE+2]]
// CHECK-SAME: type: ![[TT1]]
var myTuple1 : (Name: String, Id: Int) = ("A", 1)
var myTuple1 : (Name: String, Id: Int64) = ("A", 1)
// mangling.myTuple2 : (Swift.String, Id : Swift.Int64)
// CHECK: !DIGlobalVariable(name: "myTuple2", linkageName: "_Tv8mangling8myTuple2TSS2IdSi_",
// CHECK: !DIGlobalVariable(name: "myTuple2",
// CHECK-SAME: linkageName: "_Tv8mangling8myTuple2TSS2IdVSs5Int64_",
// CHECK-SAME: line: [[@LINE+2]]
// CHECK-SAME: type: ![[TT2]]
var myTuple2 : ( String, Id: Int) = ("B", 2)
var myTuple2 : ( String, Id: Int64) = ("B", 2)
// mangling.myTuple3 : (Swift.String, Swift.Int64)
// FIXME: Pending <rdar://problem/16860038>
// FIXME: \00myTuple3\00_Tv8mangling8myTuple3TSSSi_\00[[@LINE+1]]\000\001"{{, [^,]+, [^,]+}}, metadata ![[TT3]], {{.*}} [ DW_TAG_variable ] [myTuple3]
// var myTuple3 : ( String, Int) = ("C", 3)
// markUsed({ $$0.1 }(myTuple3))
// CHECK: !DIGlobalVariable(name: "myTuple3",
// CHECK-SAME: linkageName: "_Tv8mangling8myTuple3TSSVSs5Int64_",
// CHECK-SAME: line: [[@LINE+2]]
// CHECK-SAME: type: ![[TT3]]
var myTuple3 : ( String, Int64) = ("C", 3)
markUsed(myTuple1.Id)
markUsed(myTuple2.Id)
markUsed({ $0.1 }(myTuple3))

View File

@@ -1,12 +1,12 @@
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | FileCheck %s
func outer(a: Int) -> Int {
func outer(a: Int64) -> Int64 {
// Inner functions have a linkage name of "closure[0-9]+", but
// their DW_AT_name is preserved.
// CHECK: !DISubprogram(name: "inner", linkageName: "_TFF16nested_functions5outerFSiSiL_5innerfSiSi"
// CHECK: !DISubprogram(name: "inner", linkageName: "_TFF16nested_functions5outerFVSs5Int64S0_L_5innerfS0_S0_"
// CHECK-SAME: line: [[@LINE+1]]
func inner(b: Int) -> Int {
func inner(b: Int64) -> Int64 {
return a+b
}

View File

@@ -3,15 +3,15 @@
func markUsed<T>(t: T) {}
class AClass {
func f () -> Int { return 1 }
func f () -> Int64 { return 1 }
}
class AnotherClass : AClass {
override func f() -> Int { return 2 }
override func f() -> Int64 { return 2 }
}
struct AStruct {
func f() -> Int { return 3 }
func f() -> Int64 { return 3 }
}
// CHECK: define hidden void @_TF9nostorage3appFT_T_()

View File

@@ -17,15 +17,15 @@ func f(arg :protocol<A,B>) {
protocol SomeProto {
func f() -> Int
func f() -> Int64
}
class SomeClass : SomeProto {
func f() -> Int { return 1 }
func f() -> Int64 { return 1 }
}
class SomeOtherClass : SomeClass {
override func f() -> Int { return 1 }
override func f() -> Int64 { return 1 }
}
// This is an indirect value.
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "SomeProto",{{.*}} identifier: "_TtP5pcomp9SomeProto_"

View File

@@ -14,9 +14,7 @@ class Point : PointUtils {
}
func distanceFromOrigin() -> Float {
//var distance = sqrt(x*x + y*y)
var distance: Float = 1.0
return distance
return 1.0
}
}
@@ -28,7 +26,7 @@ func main() -> Int64 {
// CHECK: call void @llvm.dbg.declare(metadata {{.*}} [[LOC2D]], metadata ![[LOC:.*]], metadata !{{[0-9]+}})
var loc2d : protocol<PointUtils> = pt
var distance = loc2d.distanceFromOrigin()
print("hello", terminator: "") // Set breakpoint here
return 0
}

View File

@@ -6,40 +6,22 @@ func markUsed<T>(t: T) {}
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "IGiveOutInts"
// CHECK-SAME: identifier: [[PT:"[^"]+"]]
protocol IGiveOutInts {
func callMe() -> Int
func callMe() -> Int64
}
class SomeImplementor : IGiveOutInts {
init() {}
func callMe() -> Int { return 1 }
}
class AFancierImplementor : IGiveOutInts {
var myInt : Int
init() {
myInt = 1
}
func callMe() -> Int {
myInt = myInt + 1
return myInt
}
init() {}
func callMe() -> Int64 { return 1 }
}
func printSomeNumbers(var gen: IGiveOutInts) {
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "gen",
// CHECK-SAME: line: [[@LINE-2]]
// CHECK-SAME: type: ![[PT]]
var i = 1
while i < 3 {
markUsed("\(gen.callMe())")
i++
}
markUsed(gen.callMe())
}
var i1 : IGiveOutInts = SomeImplementor()
var i2 : IGiveOutInts = AFancierImplementor()
printSomeNumbers(i1)
printSomeNumbers(i2)

View File

@@ -1,15 +1,15 @@
// RUN: %target-swift-frontend %s -g -emit-ir -o - | FileCheck %s
class X {
init (i : Int) { x = i }
var x : Int
init (i : Int64) { x = i }
var x : Int64
}
// CHECK: define {{.*}}ifelseexpr
public func ifelseexpr() -> Int {
public func ifelseexpr() -> Int64 {
var x = X(i:0);
// CHECK: [[META:%.*]] = call %swift.type* @_TMaC6return1X()
// CHECK: [[X:%.*]] = call %C6return1X* @_TFC6return1XCfMS0_FT1iSi_S0_(i{{32|64}} 0, %swift.type* [[META]])
// CHECK: [[X:%.*]] = call %C6return1X* @_TFC6return1XCfMS0_FT1iVSs5Int64_S0_(i64 0, %swift.type* [[META]])
// CHECK: @swift_release to void (%C6return1X*)*)(%C6return1X* [[X]])
if true {
x.x++;

View File

@@ -10,7 +10,7 @@ import Foundation
// RUN: FileCheck %s --check-prefix=CHECK_NONE < %t.ll
// CHECK_NONE: define void {{.*}}none
public func none(inout a: Int) {
public func none(inout a: Int64) {
// CHECK_NONE: call void @llvm.dbg{{.*}}, !dbg
// CHECK_NONE: !dbg ![[NONE_INIT:.*]]
a -= 2;
@@ -21,7 +21,7 @@ public func none(inout a: Int) {
// RUN: FileCheck %s --check-prefix=CHECK_EMPTY < %t.ll
// CHECK_EMPTY: define {{.*}}empty
public func empty(inout a: Int) {
public func empty(inout a: Int64) {
if a > 24 {
// CHECK-DAG_EMPTY: br {{.*}}, !dbg ![[EMPTY_RET1:.*]]
// CHECK-DAG_EMPTY_RET1: ![[EMPTY_RET1]] = !DILocation(line: [[@LINE+1]], column: 6,
@@ -38,7 +38,7 @@ public func empty(inout a: Int) {
// RUN: FileCheck %s --check-prefix=CHECK_EMPTY_NONE < %t.ll
// CHECK_EMPTY_NONE: define {{.*}}empty_none
public func empty_none(inout a: Int) {
public func empty_none(inout a: Int64) {
if a > 24 {
return;
}
@@ -50,7 +50,7 @@ public func empty_none(inout a: Int) {
// RUN: FileCheck %s --check-prefix=CHECK_SIMPLE_RET < %t.ll
// CHECK_SIMPLE_RET: define {{.*}}simple
public func simple(a: Int) -> Int {
public func simple(a: Int64) -> Int64 {
if a > 24 {
return 0;
}
@@ -61,7 +61,7 @@ public func simple(a: Int) -> Int {
// RUN: FileCheck %s --check-prefix=CHECK_COMPLEX_RET < %t.ll
// CHECK_COMPLEX_RET: define {{.*}}complex
public func complex(a: Int) -> Int {
public func complex(a: Int64) -> Int64 {
if a > 24 {
return a*a
}
@@ -72,7 +72,7 @@ public func complex(a: Int) -> Int {
// RUN: FileCheck %s --check-prefix=CHECK_COMPLEX_SIMPLE < %t.ll
// CHECK_COMPLEX_SIMPLE: define {{.*}}complex_simple
public func complex_simple(a: Int) -> Int {
public func complex_simple(a: Int64) -> Int64 {
if a > 24 {
return a*a
}
@@ -83,7 +83,7 @@ public func complex_simple(a: Int) -> Int {
// RUN: FileCheck %s --check-prefix=CHECK_SIMPLE_COMPLEX < %t.ll
// CHECK_SIMPLE_COMPLEX: define {{.*}}simple_complex
public func simple_complex(a: Int) -> Int {
public func simple_complex(a: Int64) -> Int64 {
if a > 24 {
return a*a
}
@@ -131,7 +131,7 @@ public func cleanup_empty_none(inout a: NSString) {
// RUN: FileCheck %s --check-prefix=CHECK_CLEANUP_SIMPLE_RET < %t.ll
// CHECK_CLEANUP_SIMPLE_RET: define {{.*}}cleanup_simple
public func cleanup_simple(a: NSString) -> Int {
public func cleanup_simple(a: NSString) -> Int64 {
if a.length > 24 {
return 0
}
@@ -143,21 +143,21 @@ public func cleanup_simple(a: NSString) -> Int {
// RUN: FileCheck %s --check-prefix=CHECK_CLEANUP_COMPLEX < %t.ll
// CHECK_CLEANUP_COMPLEX: define {{.*}}cleanup_complex
public func cleanup_complex(a: NSString) -> Int {
public func cleanup_complex(a: NSString) -> Int64 {
if a.length > 24 {
return a.length*a.length
return Int64(a.length*a.length)
}
return a.length/2
return Int64(a.length/2)
// CHECK_CLEANUP_COMPLEX: ret i{{.*}}, !dbg ![[CLEANUP_COMPLEX_RET:.*]]
// CHECK_CLEANUP_COMPLEX: ![[CLEANUP_COMPLEX_RET]] = !DILocation(line: [[@LINE+1]], column: 1,
}
// RUN: FileCheck %s --check-prefix=CHECK_CLEANUP_COMPLEX_SIMPLE < %t.ll
// CHECK_CLEANUP_COMPLEX_SIMPLE: define {{.*}}cleanup_complex_simple
public func cleanup_complex_simple(a: NSString) -> Int {
public func cleanup_complex_simple(a: NSString) -> Int64 {
if a.length > 24 {
return a.length*a.length
return Int64(a.length*a.length)
}
return 2
@@ -167,9 +167,9 @@ public func cleanup_complex_simple(a: NSString) -> Int {
// RUN: FileCheck %s --check-prefix=CHECK_CLEANUP_SIMPLE_COMPLEX < %t.ll
// CHECK_CLEANUP_SIMPLE_COMPLEX: define {{.*}}cleanup_simple_complex
public func cleanup_simple_complex(a: NSString) -> Int {
public func cleanup_simple_complex(a: NSString) -> Int64 {
if a.length > 24 {
return a.length*a.length
return Int64(a.length*a.length)
}
return 2
// CHECK_CLEANUP_SIMPLE_COMPLEX: ret {{.*}}, !dbg ![[CLEANUP_SIMPLE_COMPLEX_RET:.*]]

View File

@@ -1,7 +1,7 @@
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | FileCheck %s
public struct stuffStruct {
var a: Int = 6
var a: Int64 = 6
var b: String = "Nothing"
}

View File

@@ -2,19 +2,19 @@
func markUsed<T>(t: T) {}
func foo(inout x : Int) {
func foo(inout x : Int64) {
// Make sure the shadow copy is being made in the prologue, but the
// code to load the value from the inout storage is not.
x = x + 2
// CHECK: %[[X:.*]] = alloca %Si*, align {{(4|8)}}
// CHECK: store %Si* %0, %Si** %[[X]], align {{(4|8)}}
// CHECK: %[[X:.*]] = alloca %VSs5Int64*, align {{(4|8)}}
// CHECK: store %VSs5Int64* %0, %VSs5Int64** %[[X]], align {{(4|8)}}
// CHECK-NOT: !dbg
// CHECK-NEXT: call void @llvm.dbg.declare
// CHECK-NEXT: getelementptr inbounds %Si, %Si* %0, i32 0, i32 0, !dbg
// CHECK-NEXT: getelementptr inbounds %VSs5Int64, %VSs5Int64* %0, i32 0, i32 0, !dbg
}
func main() {
var x = 1
var x : Int64 = 1
foo(&x)
markUsed("break here to see \(x)")
}

View File

@@ -1,6 +1,6 @@
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | FileCheck %s
// Capture the pointer size from type Int
// CHECK: %Si = type <{ i[[PTRSIZE:[0-9]+]] }>
// CHECK: %VSs5Int64 = type <{ i[[PTRSIZE:[0-9]+]] }>
struct A {
var fn : () -> ()
@@ -15,7 +15,7 @@ func test(var x : A) {}
// CHECK-SAME: identifier: [[A_DI:"[^"]+"]]
class C {
var lots_of_extra_storage: (Int, Int, Int) = (1, 2, 3)
var lots_of_extra_storage: (Int64, Int64, Int64) = (1, 2, 3)
var member: C = C()
}

View File

@@ -43,9 +43,6 @@ class MyObject : NSObject {
// IMPORT-CHECK-SAME: scope: ![[FOUNDATION]]
// IMPORT-CHECK: !DIImportedEntity(tag: DW_TAG_imported_module, {{.*}}entity: ![[FOUNDATION]]
// Force the use of Int.
var count : Int = 0
func foo(obj: MyObject) {
return obj.foo(obj)
}

View File

@@ -4,23 +4,23 @@
import Foundation
class Foo : NSObject {
dynamic func foo(f: Int -> Int, x: Int) -> Int {
dynamic func foo(f: Int64 -> Int64, x: Int64) -> Int64 {
return f(x)
}
}
let foo = Foo()
let y = 3
let y = 3 as Int64
let i = foo.foo(-, x: y)
// CHECK: define {{.*}}@_TTRXFdCb_dSi_dSi_XFo_dSi_dSi_
// CHECK: define {{.*}}@_TTRXFdCb_dVSs5Int64_dS__XFo_dS__dS__
// CHECK-NOT: ret
// CHECK: call {{.*}}, !dbg ![[LOC:.*]]
// CHECK: ![[THUNK:.*]] = !DISubprogram(linkageName: "_TTRXFdCb_dSi_dSi_XFo_dSi_dSi_"
// CHECK: ![[THUNK:.*]] = !DISubprogram(linkageName: "_TTRXFdCb_dVSs5Int64_dS__XFo_dS__dS__"
// CHECK-NOT: line:
// CHECK-SAME: ){{$}}
// CHECK: ![[LOC]] = !DILocation(line: 0, scope: ![[THUNK]])
// SIL-CHECK: sil shared {{.*}}@_TTRXFo_dSi_dSi_XFdCb_dSi_dSi_
// SIL-CHECK: sil shared {{.*}}@_TTRXFdCb_dVSs5Int64_dS__XFo_dS__dS__
// SIL-CHECK-NOT: return
// SIL-CHECK: apply {{.*}}auto_gen

View File

@@ -2,7 +2,7 @@
import Swift
// CHECK: define{{.*}}1f
func f(x : Int) -> Int {
func f(x : Int64) -> Int64 {
if x < 23 {
// CHECK-DAG: call void @llvm.trap(), !dbg ![[LOC1:.*]]
// CHECK-DAG: ![[LOC1]] = !DILocation(line: [[@LINE+1]],