File: basic-assignments.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (88 lines) | stat: -rw-r--r-- 2,647 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// RUN: %target-swift-frontend -debugger-testing-transform -Xllvm -sil-full-demangle -emit-sil -module-name M %s | %FileCheck %s -check-prefix=CHECK-SIL

// REQUIRES: executable_test
// RUN: %target-build-swift -Xfrontend -debugger-testing-transform %s -o %t
// RUN: %target-codesign %t
// RUN: %target-run %t | %FileCheck %s -check-prefix=CHECK-E2E
// RUN: rm -rf %t

var a = 1001
a = 1002

// CHECK-SIL-LABEL: sil private @$s1MyyXEfU0_ : {{.*}} () -> ()
// CHECK-SIL: [[int:%.*]] = integer_literal {{.*}}, 1002
// CHECK-SIL: [[struct:%.*]] = struct $Int ([[int]] : {{.*}})
// CHECK-SIL: store [[struct]] {{.*}} : $*Int
// CHECK-SIL: string_literal utf8 "a"
// CHECK-SIL: [[PO:%.*]] = function_ref {{.*}}_stringForPrintObjectySSypF
// CHECK-SIL: [[PO_result:%.*]] = apply [[PO]]
// CHECK-SIL: [[check_expect:%.*]] = function_ref {{.*}}_debuggerTestingCheckExpectyySS_SStF
// CHECK-SIL: apply [[check_expect]]

print("a = \(a)") // CHECK-E2E: a = 1002

// CHECK-SIL-LABEL: sil private @$s1MyyXEfU_yyXEfU1_
({ () -> () in
  a = 1003
  // CHECK-SIL: function_ref {{.*}}_debuggerTestingCheckExpectyySS_SStF
  print("a = \(a)") // CHECK-E2E-NEXT: a = 1003
 })()

// CHECK-SIL-LABEL: sil private @$s1MyyXEfU2_
// CHECK-SIL: function_ref {{.*}}_debuggerTestingCheckExpectyySS_SStF
a = 1004
print("a = \(a)") // CHECK-E2E-NEXT: a = 1004

// CHECK-SIL-LABEL: sil hidden @$s1M2f1yyF
// CHECK-SIL-NOT: _debuggerTestingCheckExpect
func f1() {
  // We don't attempt to instrument in this case because we don't try
  // to prove that the var decl is definitively initialized.
  var e: Int
  e = 5001
  print("e = \(e)") // CHECK-E2E-NEXT: e = 5001
}

f1()

// CHECK-SIL-LABEL: sil private @$s1M2f2yyFyyXEfU3_
func f2() {
  var b = 2001
  b = 2002
  // CHECK-SIL: function_ref {{.*}}_debuggerTestingCheckExpectyySS_SStF
  print("b = \(b)") // CHECK-E2E-NEXT: b = 2002
}

f2()

// CHECK-SIL-LABEL: sil private @$s1M2f3yyFyyXEfU_yyXEfU4_
func f3() {
  var c: Int = 3001
  ({ () -> () in
    c = 3002
    // CHECK-SIL: function_ref {{.*}}_debuggerTestingCheckExpectyySS_SStF
    print("c = \(c)") // CHECK-E2E-NEXT: c = 3002
  })()
}

f3()

// CHECK-SIL-LABEL: sil private @$s1M2f4yySaySiGzFyyXEfU5_
func f4(_ d: inout [Int]) {
  d[0] = 4002
  // CHECK-SIL: function_ref {{.*}}_debuggerTestingCheckExpectyySS_SStF
  print("d[0] = \(d[0])") // CHECK-E2E-NEXT: d[0] = 4002
}

var d: [Int] = [4001]
f4(&d)

// CHECK-SIL-LABEL: sil private @$s1M2f5yySSzFyyXEfU6_
func f5(_ v: inout String) {
  v = "Hello world"
  // CHECK-SIL: function_ref {{.*}}_debuggerTestingCheckExpectyySS_SStF
  print("v = \(v)") // CHECK-E2E-NEXT: v = Hello world
}

var v: String = ""
f5(&v)