mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
tests: remove uses of println() that are not relevant to the tests
Swift SVN r28016
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
// RUN: mkdir -p %t
|
||||
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -parse -verify -I %S/Inputs/custom-modules/ %s
|
||||
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -o %t -emit-module -I %S/Inputs/custom-modules/ %s -module-name submodules
|
||||
// RUN: echo 'import submodules; println("\(x), \(y)")' | %target-swift-frontend(mock-sdk: %clang-importer-sdk) -parse - -I %t -I %S/Inputs/custom-modules/
|
||||
// RUN: echo 'import submodules; println("\(x), \(y)")' | not %target-swift-frontend -parse - -I %t -I %S/Inputs/custom-modules/ 2>&1 | FileCheck -check-prefix=MISSING %s
|
||||
// RUN: echo 'import submodules; let s = "\(x), \(y)"' | %target-swift-frontend(mock-sdk: %clang-importer-sdk) -parse - -I %t -I %S/Inputs/custom-modules/
|
||||
// RUN: echo 'import submodules; let s = "\(x), \(y)"' | not %target-swift-frontend -parse - -I %t -I %S/Inputs/custom-modules/ 2>&1 | FileCheck -check-prefix=MISSING %s
|
||||
|
||||
// XFAIL: linux
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
// RUN: mkdir -p %t
|
||||
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -parse -verify %s -DCHECK_SCOPING
|
||||
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -emit-module -o %t %s -module-name submodules
|
||||
// RUN: echo 'import submodules; println("\(x), \(y)")' | %target-swift-frontend(mock-sdk: %clang-importer-sdk) -parse - -I %t
|
||||
// RUN: echo 'import submodules; println("\(x), \(y)")' | not %target-swift-frontend -parse - -I %t 2>&1 | FileCheck -check-prefix=MISSING %s
|
||||
// RUN: echo 'import submodules; let s = "\(x), \(y)"' | %target-swift-frontend(mock-sdk: %clang-importer-sdk) -parse - -I %t
|
||||
// RUN: echo 'import submodules; let s = "\(x), \(y)"' | not %target-swift-frontend -parse - -I %t 2>&1 | FileCheck -check-prefix=MISSING %s
|
||||
|
||||
import typealias ctypes.bits.DWORD
|
||||
// MISSING: missing required modules:
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
// REQUIRES: objc_interop
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
class A {
|
||||
@objc func do_a() {}
|
||||
|
||||
@@ -42,7 +44,7 @@ extension Optional {
|
||||
}
|
||||
|
||||
var c: String? = Optional<Int>(1)
|
||||
.bind {(x: Int) in println("\(x)!"); return "two" }
|
||||
.bind {(x: Int) in markUsed("\(x)!"); return "two" }
|
||||
|
||||
func test4() {
|
||||
func foo() -> Int { return 0 }
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-parse-verify-swift
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
func f0(_: Float) -> Float {}
|
||||
func f0(_: Int) -> Int {}
|
||||
|
||||
@@ -88,7 +90,7 @@ f4(5)
|
||||
|
||||
func f1() {
|
||||
var c : Class // expected-error{{use of undeclared type 'Class'}}
|
||||
print(c.x) // make sure error does not cascade here
|
||||
markUsed(c.x) // make sure error does not cascade here
|
||||
}
|
||||
|
||||
// We don't provide return-type sensitivity unless there is context.
|
||||
@@ -110,7 +112,7 @@ struct HasX1aProperty {
|
||||
// rdar://problem/16554496
|
||||
@availability(*, unavailable)
|
||||
func availTest(x: Int) {}
|
||||
func availTest(x: Any) { println("this one") }
|
||||
func availTest(x: Any) { markUsed("this one") }
|
||||
func doAvailTest(x: Int) {
|
||||
availTest(x)
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ func bar() -> Int { return 42 }
|
||||
|
||||
// Some toplevel code that should not be serialized.
|
||||
var foo: Foo = Foo()
|
||||
println(foo.bar())
|
||||
Double(foo.bar())
|
||||
|
||||
#if OBJC
|
||||
func objCUser(obj: ObjCClass) {}
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
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 }
|
||||
func bar() -> (() -> ()) { return { println(self.x) } }
|
||||
func bar() -> (() -> ()) { return { markUsed(self.x) } }
|
||||
}
|
||||
|
||||
var f = Foo(x: 1)
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
class Foo {}
|
||||
println("Hello World!")
|
||||
let x = "Hello World!"
|
||||
|
||||
// Test that no static variable for the metatype of Foo is emitted.
|
||||
// FIXME: This really should be emitted as artificial variable instead.
|
||||
// CHECK-NOT: DW_TAG_variable{{.*}}_TMnC14GlobalMetatype3Foo
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
import basic
|
||||
import typealias Swift.Optional
|
||||
|
||||
println(basic.foo(1, 2))
|
||||
func markUsed<T>(t: T) {}
|
||||
markUsed(basic.foo(1, 2))
|
||||
|
||||
// DWARF: .debug_info
|
||||
// DWARF: DW_TAG_module
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
// RUN: %target-swift-frontend %S/../Inputs/empty.swift -primary-file %s -emit-ir -g | FileCheck %s
|
||||
// CHECK: !DICompileUnit({{.*}}flags: {{[^,]*}}-private-discriminator [[DISCRIMINATOR:_[A-Z0-9]+]]
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
private class A {
|
||||
init(val : Int) { member = val }
|
||||
private let member : Int
|
||||
@@ -19,5 +21,5 @@ private class A {
|
||||
|
||||
func f() {
|
||||
let a = A(val: 42)
|
||||
println(a.getVal())
|
||||
markUsed(a.getVal())
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
protocol AProtocol {
|
||||
func print()
|
||||
}
|
||||
@@ -7,7 +9,7 @@ protocol AProtocol {
|
||||
class AClass : AProtocol {
|
||||
var x: UInt32
|
||||
init() { x = 0xDEADBEEF }
|
||||
func print() { println("x = \(x)")}
|
||||
func print() { markUsed("x = \(x)")}
|
||||
}
|
||||
// CHECK: define hidden void @_TF17ProtocolContainer3foo
|
||||
// CHECK-NEXT: entry:
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
class A {
|
||||
var a : A?
|
||||
// CHECK: define {{.*}}1AcfMS0_FT_S0_
|
||||
@@ -8,7 +10,7 @@ class A {
|
||||
// CHECK: store {{.*}} %0, {{.*}}, align
|
||||
// CHECK-NOT: !dbg
|
||||
// CHECK: call {{.*}}llvm.dbg.declare
|
||||
println("Hi")
|
||||
markUsed("Hi")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
// Don't crash when emitting debug info for anonymous variables.
|
||||
// CHECK: !DILocalVariable({{.*}} name: "_"
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
protocol F_ {
|
||||
func successor() -> Self
|
||||
}
|
||||
@@ -14,6 +17,6 @@ struct _Distance {}
|
||||
|
||||
func ~> <I: F_>(self_:I, (_Distance, (I))) -> Int {
|
||||
self_.successor()
|
||||
println("F")
|
||||
markUsed("F")
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
func main() {
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %"protocol<>"* {{.*}}, metadata ![[S:.*]], metadata !{{[0-9]+}}), !dbg ![[DBG:.*]]
|
||||
// CHECK: ![[S]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "s", {{.*}}line: [[@LINE+3]]
|
||||
// CHECK: ![[SCOPE:.*]] = distinct !DILexicalBlock({{.*}}line: 3, column: 13)
|
||||
// CHECK: ![[DBG]] = !DILocation(line: [[@LINE+1]], column: 6, scope: ![[SCOPE]])
|
||||
var s : Any = "hello world"
|
||||
var n : Any = 12
|
||||
var t : Any = (1,2)
|
||||
println("hello world")
|
||||
// CHECK: ![[SCOPE:.*]] = distinct !DILexicalBlock({{.*}}line: 5, column: 13)
|
||||
// CHECK: ![[DBG]] = !DILocation(line: [[@LINE+1]], column: 7, scope: ![[SCOPE]])
|
||||
var s: Any = "hello world"
|
||||
var n: Any = 12
|
||||
var t: Any = (1,2)
|
||||
markUsed("hello world")
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -verify -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
class C<A> {
|
||||
// CHECK-DAG: ![[A:[0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "_TtQq_C11archetypes21C"
|
||||
// CHECK-DAG: ![[B:[0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "_TtQq_FC11archetypes21C3foo
|
||||
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "x", {{.*}}line: [[@LINE+2]],{{.*}}type: ![[A]]
|
||||
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "y", {{.*}}line: [[@LINE+1]],{{.*}}type: ![[B]]
|
||||
func foo <B> (var x : A, var y : B)
|
||||
{
|
||||
println("hello world")
|
||||
}
|
||||
func foo <B> (var x : A, var y : B) {
|
||||
markUsed("hello world")
|
||||
}
|
||||
}
|
||||
|
||||
C<Int>().foo(1, y: 3.14);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "arg", arg: 1,{{.*}} line: [[@LINE+1]]
|
||||
func a(arg : Int)
|
||||
{
|
||||
@@ -48,7 +50,7 @@ class A {
|
||||
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "self", arg: 1,{{.*}} line: [[@LINE+1]]
|
||||
deinit {
|
||||
println(member)
|
||||
markUsed(member)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
class Class {
|
||||
// CHECK: _TtQq_FC5atype5Class8function
|
||||
func function <T> (x : T) {
|
||||
println("hello world")
|
||||
}
|
||||
func function<T>(x: T) {
|
||||
markUsed("hello world")
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
var v = 1
|
||||
var c = Class()
|
||||
c.function(1)
|
||||
var v = 1
|
||||
var c = Class()
|
||||
c.function(1)
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
// CHECK: call void @llvm.dbg.declare{{.*}}, !dbg
|
||||
// CHECK: , !dbg ![[DBG:.*]]
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
func get_truth(input: Int) -> Int {
|
||||
return input % 2
|
||||
}
|
||||
@@ -25,10 +27,9 @@ func call_me(var input: Int) -> Void {
|
||||
// CHECK-DAG: !DISubprogram({{.*}}linkageName: "_TFF11autoclosure7call_meFSiT_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 )
|
||||
{
|
||||
println ("Whew, passed that test.")
|
||||
}
|
||||
if input != 0 &&&&& ( get_truth (input * 2 + 1) > 0 ) {
|
||||
markUsed("Whew, passed that test.")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
// Int1 uses 1 bit, but is aligned at 8 bits.
|
||||
// CHECK: !DIBasicType(name: "_TtBi1_", size: 1, align: 8, encoding: DW_ATE_unsigned)
|
||||
func main()
|
||||
{
|
||||
var t = true
|
||||
var f = false
|
||||
println("hello")
|
||||
func main() {
|
||||
var t = true
|
||||
var f = false
|
||||
markUsed("hello")
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
@@ -3,8 +3,11 @@
|
||||
// REQUIRES: objc_interop
|
||||
|
||||
import Dispatch
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
// CHECK-DAG: !DICompositeType(tag: DW_TAG_union_type, {{.*}}identifier: "_TtGSQaSC21dispatch_queue_attr_t_"
|
||||
// CHECK-DAG: !DIGlobalVariable(name: "queue",{{.*}} line: [[@LINE+1]], type: !"_TtGSQaSC21dispatch_queue_attr_t_"
|
||||
var queue = dispatch_queue_create("queue", nil)
|
||||
|
||||
dispatch_sync(queue) { println("Hello world"); }
|
||||
dispatch_sync(queue) { markUsed("Hello world"); }
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
func makeIncrementor(inc : Int) -> () -> Int
|
||||
{
|
||||
var sum = 0
|
||||
@@ -17,4 +19,4 @@ func makeIncrementor(inc : Int) -> () -> Int
|
||||
var incrementor = makeIncrementor (5)
|
||||
var a = 5
|
||||
var more_than_a = incrementor ()
|
||||
println ("a was \(a) and more_than_a was \(more_than_a)")
|
||||
markUsed("a was \(a) and more_than_a was \(more_than_a)")
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-swift-frontend %s -g -emit-ir -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
func foo(a : Int, _ b : Int) -> Int {
|
||||
return a+b
|
||||
}
|
||||
@@ -10,5 +12,5 @@ func foo(a : Int, _ b : Int) -> Int {
|
||||
let r = foo(foo(1, 23), // CHECK: ![[ARG1]] = !DILocation(line: [[@LINE]],
|
||||
foo(2, 42) // CHECK: ![[ARG2]] = !DILocation(line: [[@LINE]],
|
||||
) // CHECK: ![[OUTER]] = !DILocation(line: [[@LINE]],
|
||||
println(r)
|
||||
markUsed(r)
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// RUN: %target-swift-frontend -Xllvm -debug-values-propagate-liveness -O %s -disable-llvm-optzns -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
// CHECK: define {{.*}}4main4demo
|
||||
// CHECK: define {{.*}}hidden i1 {{.*}}4main4sort
|
||||
// CHECK: call void @llvm.dbg.value(metadata i8*{{.*}}, metadata ![[A:.*]], metadata ![[P1:.*]])
|
||||
@@ -7,13 +10,13 @@
|
||||
// CHECK: call void @llvm.dbg.value(metadata i8*{{.*}}, metadata ![[B:.*]], metadata ![[P1]])
|
||||
// CHECK: call void @llvm.dbg.value(metadata i{{[0-9]+}} {{.*}}, metadata ![[B]], metadata ![[P2]])
|
||||
// CHECK: call void @llvm.dbg.value(metadata i{{[0-9]+}} {{.*}}, metadata ![[B]], metadata ![[P3]])
|
||||
// CHECK-DAG: ![[A]] = !DILocalVariable({{.*}} name: "a",{{.*}} line: 15
|
||||
// CHECK-DAG: ![[B]] = !DILocalVariable({{.*}} name: "b",{{.*}} line: 15
|
||||
// CHECK-DAG: ![[A]] = !DILocalVariable({{.*}} name: "a",{{.*}} line: 18
|
||||
// CHECK-DAG: ![[B]] = !DILocalVariable({{.*}} name: "b",{{.*}} line: 18
|
||||
// CHECK-DAG: ![[P1]] = !DIExpression(DW_OP_bit_piece, 0, {{(32|64)}})
|
||||
// CHECK-DAG: ![[P2]] = !DIExpression(DW_OP_bit_piece, {{(32, 32|64, 64)}})
|
||||
// CHECK-DAG: ![[P3]] = !DIExpression(DW_OP_bit_piece, {{(64, 32|128, 64)}})
|
||||
func sort(a : String, b : String) -> Bool {
|
||||
println("Sorting..\(a) & \(b)")
|
||||
markUsed("Sorting..\(a) & \(b)")
|
||||
return (a < b)
|
||||
}
|
||||
|
||||
@@ -24,7 +27,7 @@ func demo() {
|
||||
for name in sortedNames {
|
||||
sortedNamesAsString += ("\(name), ")
|
||||
}
|
||||
println(sortedNamesAsString)
|
||||
markUsed(sortedNamesAsString)
|
||||
}
|
||||
demo()
|
||||
|
||||
@@ -36,7 +39,7 @@ demo()
|
||||
// CHECK-O0-NOT: line:
|
||||
// CHECK-O0-SAME: ){{$}}
|
||||
// CHECK-O0-NOT: DW_OP_bit_piece
|
||||
// CHECK-O0: !DILocalVariable(tag: DW_TAG_arg_variable, name: "a",{{.*}} line: 15,
|
||||
// CHECK-O0: !DILocalVariable(tag: DW_TAG_arg_variable, name: "a",{{.*}} line: 18,
|
||||
// CHECK-O0-NOT: DW_OP_bit_piece
|
||||
// CHECK-O0: !DILocalVariable(tag: DW_TAG_arg_variable, name: "b",{{.*}} line: 15,
|
||||
// CHECK-O0: !DILocalVariable(tag: DW_TAG_arg_variable, name: "b",{{.*}} line: 18,
|
||||
// CHECK-O0-NOT: DW_OP_bit_piece
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
func foldl1<T>(list: [T], _ function: (a: T, b: T) -> T) -> T {
|
||||
assert(list.count > 1)
|
||||
var accumulator = list[0]
|
||||
@@ -12,8 +14,8 @@ func foldl1<T>(list: [T], _ function: (a: T, b: T) -> T) -> T {
|
||||
var a = [Int](count: 10, repeatedValue: 0)
|
||||
for i in 0..<10 { a[i] = i }
|
||||
// A closure is not an artificial function (the last i32 0).
|
||||
// CHECK: !DISubprogram({{.*}}linkageName: "_TF7closureU_FTSiSi_Si",{{.*}} line: 18,{{.*}} scopeLine: 18,
|
||||
// CHECK: !DISubprogram({{.*}}linkageName: "_TF7closureU_FTSiSi_Si",{{.*}} 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 })
|
||||
println(sum)
|
||||
markUsed(sum)
|
||||
|
||||
@@ -1,23 +1,25 @@
|
||||
// RUN: %target-swift-frontend -enable-dynamic-value-type-layout %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
class Class <T> {
|
||||
var x : T
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
init(_x : T) {x = _x}
|
||||
class Class <T> {
|
||||
var x: T
|
||||
|
||||
init(_x : T) {x = _x}
|
||||
|
||||
// Verify that the mangling of the decl context of the type U is correct.
|
||||
// CHECK: !DICompositeType({{.*}}name: "{{[^"]*}}_TtQq_FC14dynamic_layout5Class3foo{{[^"]*}}"
|
||||
func foo <U> (y : U) -> (T,U) {
|
||||
var tuple = (x,y)
|
||||
return tuple
|
||||
}
|
||||
func foo <U> (y : U) -> (T,U) {
|
||||
var tuple = (x,y)
|
||||
return tuple
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
var v = Class<Int>(_x: 1)
|
||||
var tuple = v.foo("hi")
|
||||
println(tuple.0)
|
||||
println(tuple.1)
|
||||
var v = Class<Int>(_x: 1)
|
||||
var tuple = v.foo("hi")
|
||||
markUsed(tuple.0)
|
||||
markUsed(tuple.1)
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// 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* %allocateBuffer3([{{(24|12)}} x i8]* %{{.*}}, %swift.type* %U)
|
||||
// store %swift.opaque* %[[Y]], %swift.opaque** %[[Y_SHADOW:.*]], align
|
||||
@@ -8,24 +10,23 @@
|
||||
// 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)
|
||||
{
|
||||
println("hello world")
|
||||
}
|
||||
func foo<U>(var x: T, var y: U) {
|
||||
markUsed("hello world")
|
||||
}
|
||||
|
||||
func bar (var x : String, var y : Int) {
|
||||
println("hello world")
|
||||
}
|
||||
func bar(var x: String, var y: Int) {
|
||||
markUsed("hello world")
|
||||
}
|
||||
|
||||
init() {}
|
||||
init() {}
|
||||
}
|
||||
|
||||
func main() {
|
||||
var object : Class<String> = Class()
|
||||
var x = "hello"
|
||||
var y = 1234
|
||||
object.bar(x, y: y)
|
||||
object.foo(x, y: y)
|
||||
var object: Class<String> = Class()
|
||||
var x = "hello"
|
||||
var y = 1234
|
||||
object.bar(x, y: y)
|
||||
object.foo(x, y: y)
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -verify -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
protocol AProtocol {
|
||||
func f() -> String;
|
||||
}
|
||||
@@ -20,7 +22,7 @@ class AnotherClass : AProtocol {
|
||||
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_arg_variable, name: "y", arg: 2,{{.*}} type: ![[Q:.*]])
|
||||
// CHECK-DAG: ![[Q]] = !DICompositeType(tag: DW_TAG_structure_type, name: "_TtQq0_F12generic_args9aFunction{{.*}}
|
||||
func aFunction<T : AProtocol, Q : AProtocol>(var x: T, var _ y: Q, _ z: String) {
|
||||
println("I am in \(z): \(x.f()) \(y.f())")
|
||||
markUsed("I am in \(z): \(x.f()) \(y.f())")
|
||||
}
|
||||
|
||||
aFunction(AClass(),AnotherClass(),"aFunction")
|
||||
|
||||
@@ -83,8 +83,6 @@ func test() {
|
||||
echo(string)
|
||||
echo(tuple)
|
||||
echo(point)
|
||||
|
||||
println("Hello, World!")
|
||||
}
|
||||
|
||||
test()
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
|
||||
import FooBar
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
func square(x: Int64) -> Int64 {
|
||||
// CHECK-DAG: ![[MULSCOPE]] = !DILocation(line: [[@LINE+2]], column: {{.*}}, scope: ![[MUL:.*]], inlinedAt: ![[INLINED:.*]])
|
||||
// CHECK-DAG: ![[MUL:.*]] = distinct !DILexicalBlock(
|
||||
@@ -25,7 +27,7 @@ let c = Int64(x)
|
||||
// CHECK-DAG ![[INLINED]] = !DILocation(i32 [[@LINE+1]], column: {{.*}}, scope: !{{.*}}, inlinedAt: ![[INLINED_TOPLEVEL:.*]])
|
||||
// CHECK-DAG: !DIGlobalVariable(name: "y",{{.*}} file: ![[TOPLEVEL]],{{.*}} line: [[@LINE+1]]
|
||||
let y = square(c)
|
||||
println(y)
|
||||
markUsed(y)
|
||||
|
||||
// Check if the inlined and removed square function still has the correct linkage name in the debug info.
|
||||
// CHECK-DAG: !DISubprogram(name: "square", linkageName: "_TF4main6squareFVSs5Int64S0_"
|
||||
|
||||
@@ -2,43 +2,46 @@
|
||||
|
||||
// LValues are direct values, too. They are reference types, though.
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
class Class {
|
||||
var ivar : Int
|
||||
init() { ivar = 1234 }
|
||||
var ivar : Int
|
||||
init() { ivar = 1234 }
|
||||
}
|
||||
|
||||
class Other : Class {
|
||||
var ovar : Int
|
||||
override init () { ovar = 112233
|
||||
super.init()
|
||||
ivar = 4321
|
||||
}
|
||||
var ovar : Int
|
||||
override init() {
|
||||
ovar = 112233
|
||||
super.init()
|
||||
ivar = 4321
|
||||
}
|
||||
}
|
||||
|
||||
struct Struct {
|
||||
var ivar : Int
|
||||
init() { ivar = 4567 }
|
||||
var ivar : Int
|
||||
init() { ivar = 4567 }
|
||||
}
|
||||
|
||||
func foo (inout x : Class) {
|
||||
func foo(inout x: Class) {
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "x",{{.*}} line: [[@LINE-1]]
|
||||
println(x.ivar)
|
||||
x.ivar++ // Set breakpoint here
|
||||
markUsed(x.ivar)
|
||||
x.ivar++ // Set breakpoint here
|
||||
}
|
||||
|
||||
func foo(inout x : Struct) {
|
||||
func foo(inout x: Struct) {
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_arg_variable, name: "x",{{.*}} line: [[@LINE-1]]
|
||||
println(x.ivar)
|
||||
x.ivar++ // Set breakpoint here
|
||||
markUsed(x.ivar)
|
||||
x.ivar++ // Set breakpoint here
|
||||
}
|
||||
|
||||
func main() {
|
||||
var c : Class = Other()
|
||||
var s = Struct()
|
||||
foo(&c)
|
||||
foo(&s)
|
||||
foo(&c)
|
||||
foo(&s)
|
||||
var c: Class = Other()
|
||||
var s = Struct()
|
||||
foo(&c)
|
||||
foo(&s)
|
||||
foo(&c)
|
||||
foo(&s)
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o %t.ll
|
||||
// RUN: FileCheck %s < %t.ll
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
var puzzleInput = "great minds think alike"
|
||||
var puzzleOutput = ""
|
||||
// CHECK-NOT: !DILocalVariable(tag: DW_TAG_auto_variable, name: "$letter$generator"
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "letter",
|
||||
// CHECK-SAME: line: [[@LINE+1]]
|
||||
for letter in puzzleInput {
|
||||
switch letter {
|
||||
case "a", "e", "i", "o", "u", " ":
|
||||
continue
|
||||
default:
|
||||
puzzleOutput.append(letter)
|
||||
}
|
||||
switch letter {
|
||||
case "a", "e", "i", "o", "u", " ":
|
||||
continue
|
||||
default:
|
||||
puzzleOutput.append(letter)
|
||||
}
|
||||
}
|
||||
println(puzzleOutput)
|
||||
markUsed(puzzleOutput)
|
||||
|
||||
|
||||
func count() {
|
||||
@@ -22,7 +24,7 @@ func count() {
|
||||
// CHECK: !DILocalVariable(tag: DW_TAG_auto_variable, name: "i",
|
||||
// CHECK-SAME: line: [[@LINE+1]]
|
||||
for i in 0...100 {
|
||||
println(i)
|
||||
markUsed(i)
|
||||
}
|
||||
}
|
||||
count()
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
func markUsed<T>(t: T) {}
|
||||
func f() {
|
||||
if 1==1 {
|
||||
#line 42 "abc.swift"
|
||||
println("Hello World")
|
||||
markUsed("Hello World")
|
||||
#line
|
||||
}
|
||||
println("Test")
|
||||
markUsed("Test")
|
||||
#line 142 "abc.swift"
|
||||
println("abc again")
|
||||
markUsed("abc again")
|
||||
#line 142 "def.swift"
|
||||
println("jump directly to def")
|
||||
markUsed("jump directly to def")
|
||||
}
|
||||
|
||||
// RUN: %target-swift-frontend -primary-file %s -S -g -o - | FileCheck %s
|
||||
@@ -16,7 +17,7 @@ func f() {
|
||||
// CHECK: .loc [[MAIN]] 1
|
||||
// CHECK: .file [[ABC:.*]] "abc.swift"
|
||||
// CHECK: .loc [[ABC]] 42
|
||||
// CHECK: .loc [[MAIN]] 7
|
||||
// CHECK: .loc [[MAIN]] 8
|
||||
// CHECK: .loc [[ABC]] 142
|
||||
// CHECK: .file [[DEF:.*]] "def.swift"
|
||||
// CHECK: .loc [[DEF]] 142
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
class Person {
|
||||
var name = "No Name"
|
||||
var age = 0
|
||||
@@ -9,15 +11,15 @@ func main() {
|
||||
var person = Person()
|
||||
var b = [0,1,13]
|
||||
for element in b {
|
||||
println("element = \(element)")
|
||||
markUsed("element = \(element)")
|
||||
}
|
||||
println("Done with the for loop")
|
||||
// CHECK: call void @_TFSs7println
|
||||
markUsed("Done with the for loop")
|
||||
// CHECK: call void @_TF4main8markUsedU__FQ_T_
|
||||
// CHECK: br label
|
||||
// CHECK: <label>:
|
||||
// CHECK: , !dbg ![[LOOPHEADER_LOC:.*]]
|
||||
// CHECK: call void {{.*}}elease({{.*}}) {{#[0-9]+}}, !dbg ![[LOOPHEADER_LOC]]
|
||||
// CHECK: call void @_TFSs7println
|
||||
// CHECK: call void @_TF4main8markUsedU__FQ_T_
|
||||
// The cleanups should share the line number with the ret stmt.
|
||||
// CHECK: call void {{.*}}elease({{.*}}) {{#[0-9]+}}, !dbg ![[CLEANUPS:.*]]
|
||||
// CHECK-NEXT: !dbg ![[CLEANUPS]]
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "_TtT4NameSS2IdSi_",{{.*}} identifier: [[TT1:[^,)]+]])
|
||||
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "_TtTSS2IdSi_",{{.*}} identifier: [[TT2:[^,)]+]])
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
// Variable:
|
||||
// mangling.myDict : Swift.Dictionary<Swift.Int64, Swift.String>
|
||||
// CHECK: !DIGlobalVariable(name: "myDict", linkageName: "_Tv8mangling6myDictGVSs10DictionarySiSS_",
|
||||
@@ -29,8 +31,8 @@ var myTuple2 : ( String, Id: Int) = ("B", 2)
|
||||
// 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)
|
||||
// println({ $$0.1 }(myTuple3))
|
||||
// markUsed({ $$0.1 }(myTuple3))
|
||||
|
||||
println(myTuple1.Id)
|
||||
println(myTuple2.Id)
|
||||
markUsed(myTuple1.Id)
|
||||
markUsed(myTuple2.Id)
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
class AClass {
|
||||
func f () -> Int { return 1 }
|
||||
}
|
||||
@@ -14,13 +16,13 @@ struct AStruct {
|
||||
|
||||
// CHECK: define hidden void @_TF9nostorage3appFT_T_()
|
||||
func app() {
|
||||
var ac : AClass = AnotherClass()
|
||||
// No members? No storage! Emitted as a constant 0, because.
|
||||
// CHECK: call void @llvm.dbg.value(metadata {{.*}}, i64 0, metadata ![[AT:.*]], metadata !{{[0-9]+}}), !dbg
|
||||
// CHECK: ![[AT]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "at",
|
||||
// CHECK-SAME: line: [[@LINE+1]]
|
||||
var at = AStruct()
|
||||
println("\(ac.f()) \(at.f())")
|
||||
var ac: AClass = AnotherClass()
|
||||
// No members? No storage! Emitted as a constant 0, because.
|
||||
// CHECK: call void @llvm.dbg.value(metadata {{.*}}, i64 0, metadata ![[AT:.*]], metadata !{{[0-9]+}}), !dbg
|
||||
// CHECK: ![[AT]] = !DILocalVariable(tag: DW_TAG_auto_variable, name: "at",
|
||||
// CHECK-SAME: line: [[@LINE+1]]
|
||||
var at = AStruct()
|
||||
markUsed("\(ac.f()) \(at.f())")
|
||||
}
|
||||
|
||||
app()
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
// RUN: FileCheck --check-prefix=CHECK-SCOPES %s < %t.ll
|
||||
// RUN: %target-swift-frontend -emit-sil -emit-verbose-sil -primary-file %s -o - | FileCheck %s --check-prefix=SIL-CHECK
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
func classifyPoint2(p: (Double, Double)) {
|
||||
func return_same (var input : Double) -> Double
|
||||
{
|
||||
@@ -12,12 +14,12 @@ func classifyPoint2(p: (Double, Double)) {
|
||||
|
||||
switch p {
|
||||
case (0, 0):
|
||||
println("origin")
|
||||
markUsed("origin")
|
||||
case (0, _):
|
||||
println("on the Y axis")
|
||||
println("(0, \(p.1)) is on the y-axis")
|
||||
markUsed("on the Y axis")
|
||||
markUsed("(0, \(p.1)) is on the y-axis")
|
||||
case (_, 0):
|
||||
println("on the X axis")
|
||||
markUsed("on the X axis")
|
||||
case (var x, var y) where
|
||||
// CHECK: call double {{.*}}return_same{{.*}}, !dbg ![[LOC1:.*]]
|
||||
// CHECK: br {{.*}}, label {{.*}}, label {{.*}}, !dbg ![[LOC2:.*]]
|
||||
@@ -26,23 +28,23 @@ func classifyPoint2(p: (Double, Double)) {
|
||||
// CHECK: ![[LOC2]] = !DILocation(line: [[@LINE+1]],
|
||||
return_same(x) == return_same(y):
|
||||
// CHECK: ![[LOC3]] = !DILocation(line: [[@LINE+1]],
|
||||
println("(\(x), \(y)) is on the + diagonal")
|
||||
// SIL-CHECK: dealloc_stack{{.*}}line:[[@LINE-1]]:54:cleanup
|
||||
markUsed("(\(x), \(y)) is on the + diagonal")
|
||||
// SIL-CHECK: dealloc_stack{{.*}}line:[[@LINE-1]]:55:cleanup
|
||||
// Verify that the branch has a location >= the cleanup.
|
||||
// SIL-CHECK-NEXT: br{{.*}}line:[[@LINE-3]]:54:cleanup
|
||||
// SIL-CHECK-NEXT: br{{.*}}line:[[@LINE-3]]:55:cleanup
|
||||
case (var x, var y) where x == -y:
|
||||
// Verify that all variables end up in the appropriate scopes.
|
||||
// CHECK-SCOPES: !DILocalVariable(tag: DW_TAG_auto_variable, name: "x", scope: ![[SCOPE1:[0-9]+]],{{.*}} line: [[@LINE-2]]
|
||||
// CHECK-SCOPES: ![[SCOPE1]] = distinct !DILexicalBlock(
|
||||
println("on the - diagonal")
|
||||
markUsed("on the - diagonal")
|
||||
case (var x, var y) where x >= -10 && x < 10 && y >= -10 && y < 10:
|
||||
// CHECK-SCOPES: !DILocalVariable(tag: DW_TAG_auto_variable, name: "x", scope: ![[SCOPE2:[0-9]+]],{{.*}} line: [[@LINE-1]]
|
||||
// CHECK-SCOPES: ![[SCOPE2]] = distinct !DILexicalBlock(
|
||||
println("near the origin")
|
||||
markUsed("near the origin")
|
||||
case (var x, var y):
|
||||
// CHECK-SCOPES: !DILocalVariable(tag: DW_TAG_auto_variable, name: "x", scope: ![[SCOPE3:[0-9]+]],{{.*}} line: [[@LINE-1]]
|
||||
// CHECK-SCOPES: ![[SCOPE3]] = distinct !DILexicalBlock(
|
||||
println("sqrt(\(x*x + y*y)) units from the origin")
|
||||
markUsed("sqrt(\(x*x + y*y)) units from the origin")
|
||||
}
|
||||
// CHECK: !DILocation(line: [[@LINE+1]],
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
// RUN: %target-swift-frontend -primary-file %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
protocol A {
|
||||
func x()
|
||||
func x()
|
||||
}
|
||||
|
||||
protocol B {
|
||||
func y()
|
||||
func y()
|
||||
}
|
||||
|
||||
// CHECK-DAG: _TtP5pcomp1AS_1B_
|
||||
@@ -15,20 +17,20 @@ func f(arg :protocol<A,B>) {
|
||||
|
||||
|
||||
protocol SomeProto {
|
||||
func f() -> Int
|
||||
func f() -> Int
|
||||
}
|
||||
|
||||
class SomeClass : SomeProto {
|
||||
func f() -> Int { return 1 }
|
||||
func f() -> Int { return 1 }
|
||||
}
|
||||
|
||||
class SomeOtherClass : SomeClass {
|
||||
override func f() -> Int { return 1 }
|
||||
override func f() -> Int { return 1 }
|
||||
}
|
||||
// This is an indirect value.
|
||||
// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "SomeProto",{{.*}} identifier: "_TtP5pcomp9SomeProto_"
|
||||
func main() {
|
||||
var p : SomeProto = SomeOtherClass()
|
||||
println("\(p.f())")
|
||||
var p : SomeProto = SomeOtherClass()
|
||||
markUsed("\(p.f())")
|
||||
}
|
||||
|
||||
|
||||
@@ -2,8 +2,10 @@
|
||||
|
||||
// REQUIRES: CPU=x86_64
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
// CHECK: .file [[F:[0-9]+]] "prologue.swift"
|
||||
func bar<T, U>(x: T, y: U) { println("bar") }
|
||||
func bar<T, U>(x: T, y: U) { markUsed("bar") }
|
||||
// CHECK: .loc [[F]] [[@LINE-1]] 3{{.}} prologue_end
|
||||
// Make sure there is no allocation happening between the end of
|
||||
// prologue and the beginning of the function body.
|
||||
|
||||
@@ -1,38 +1,40 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
// FIXME: Should be DW_TAG_interface_type
|
||||
// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "IGiveOutInts"
|
||||
// CHECK-SAME: identifier: [[PT:"[^"]+"]]
|
||||
protocol IGiveOutInts {
|
||||
func callMe() -> Int
|
||||
func callMe() -> Int
|
||||
}
|
||||
|
||||
class SomeImplementor : IGiveOutInts {
|
||||
init() {}
|
||||
func callMe() -> Int { return 1 }
|
||||
func callMe() -> Int { return 1 }
|
||||
}
|
||||
|
||||
class AFancierImplementor : IGiveOutInts {
|
||||
var myInt : Int
|
||||
init() {
|
||||
myInt = 1
|
||||
}
|
||||
var myInt : Int
|
||||
init() {
|
||||
myInt = 1
|
||||
}
|
||||
|
||||
func callMe() -> Int {
|
||||
myInt = myInt + 1
|
||||
return myInt
|
||||
}
|
||||
func callMe() -> Int {
|
||||
myInt = myInt + 1
|
||||
return myInt
|
||||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
println("\(gen.callMe())")
|
||||
i++
|
||||
}
|
||||
var i = 1
|
||||
while i < 3 {
|
||||
markUsed("\(gen.callMe())")
|
||||
i++
|
||||
}
|
||||
}
|
||||
|
||||
var i1 : IGiveOutInts = SomeImplementor()
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
func foo(inout x : Int) {
|
||||
// Make sure the shadow copy is being made in the prologue, but the
|
||||
// code to load the value from the inout storage is not.
|
||||
@@ -14,7 +16,7 @@ func foo(inout x : Int) {
|
||||
func main() {
|
||||
var x = 1
|
||||
foo(&x)
|
||||
println("break here to see \(x)")
|
||||
markUsed("break here to see \(x)")
|
||||
}
|
||||
|
||||
main()
|
||||
|
||||
@@ -65,7 +65,7 @@ class MyObject : NSObject {
|
||||
// SANITY-DAG: !DISubprogram(name: "blah",{{.*}} line: [[@LINE+2]],{{.*}} isDefinition: true
|
||||
extension MyObject {
|
||||
func blah() {
|
||||
println("blah blah blah")
|
||||
MyObject()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
|
||||
// XFAIL: linux
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
var a = 1
|
||||
var b = 2
|
||||
println(a+b)
|
||||
markUsed(a+b)
|
||||
// CHECK: _main:
|
||||
// Verify that the top-level function (main) begins at line 5 (and not at line 0).
|
||||
// CHECK: .loc {{[0-9]}} 5 {{[0-9]}} prologue_end
|
||||
// Verify that the top-level function (main) begins at line 6 (and not at line 0).
|
||||
// CHECK: .loc {{[0-9]}} 6 {{[0-9]}} prologue_end
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
func markUsed<T>(t: T) {}
|
||||
var a = 1
|
||||
println(a)
|
||||
markUsed(a)
|
||||
// Verify that global variables are emitted once in main, once as
|
||||
// global variable.
|
||||
// CHECK: ![[MAIN:.*]] = !DISubprogram(name: "main",{{.*}} line: 1
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
// RUN: %target-swift-frontend %s -emit-ir -g -o - | FileCheck %s
|
||||
|
||||
class DWARF
|
||||
{
|
||||
func markUsed<T>(t: T) {}
|
||||
|
||||
class DWARF {
|
||||
// CHECK-DAG: ![[DIEOFFSET:.*]] = !DIDerivedType(tag: DW_TAG_typedef, name: "_TtaC9typealias5DWARF9DIEOffset",{{.*}} line: [[@LINE+1]], baseType: !"_TtVSs6UInt32")
|
||||
typealias DIEOffset = UInt32
|
||||
}
|
||||
@@ -9,10 +10,10 @@ class DWARF
|
||||
func main () {
|
||||
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "a",{{.*}} type: ![[DIEOFFSET]]
|
||||
var a : DWARF.DIEOffset = 123
|
||||
println("a is \(a)")
|
||||
markUsed("a is \(a)")
|
||||
// CHECK-DAG: !DILocalVariable(tag: DW_TAG_auto_variable, name: "b",{{.*}} type: ![[DIEOFFSET]]
|
||||
var b = DWARF.DIEOffset(456) as DWARF.DIEOffset
|
||||
println("b is \(b)")
|
||||
markUsed("b is \(b)")
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
Reference in New Issue
Block a user