mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
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:
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) } }
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -10,4 +10,4 @@ class C<A> {
|
||||
}
|
||||
}
|
||||
|
||||
C<Int>().foo(1, y: 3.14);
|
||||
C<Int64>().foo(1, y: 3.14);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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.")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -4,7 +4,7 @@ import StdlibUnittest
|
||||
|
||||
class Obj {}
|
||||
|
||||
func foo (a : Int) throws -> Void {
|
||||
func foo (a : Int64) throws -> Void {
|
||||
_blackHole(a)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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_()
|
||||
|
||||
@@ -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_"
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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++;
|
||||
|
||||
@@ -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:.*]]
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
|
||||
@@ -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)")
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]],
|
||||
|
||||
Reference in New Issue
Block a user