File: line-directive.swift

package info (click to toggle)
swiftlang 6.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,791,532 kB
  • sloc: cpp: 9,901,743; ansic: 2,201,431; asm: 1,091,827; python: 308,252; objc: 82,166; f90: 80,126; lisp: 38,358; pascal: 25,559; sh: 20,429; ml: 5,058; perl: 4,745; makefile: 4,484; awk: 3,535; javascript: 3,018; xml: 918; fortran: 664; cs: 573; ruby: 396
file content (40 lines) | stat: -rw-r--r-- 1,653 bytes parent folder | download | duplicates (2)
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
func markUsed<T>(_ t: T) {}
func f() {
  if 1==1 {
#sourceLocation(file: "abc.swift", line: 42)
    markUsed("Hello World")
#sourceLocation()
  }
  markUsed("Test")
#sourceLocation(file: "abc.swift", line: 142)
  markUsed("abc again")
  // NOTE: we use `//absolute/path` here as this is an absolute path on the
  // alternate root.  However, it is also a path which is a UNC path on Windows.
  // This allows the path to be absolute across both environments.
#sourceLocation(file: "//absolute/path/def.swift", line:  142)
  markUsed("jump directly to def")
}

// RUN: %target-swift-frontend -primary-file %/s -S -g -o - | %FileCheck %s
// CHECK: .file	[[MAIN:[0-9]+]] "{{.*}}line-directive.swift"
// CHECK: .loc	[[MAIN]] 1
// CHECK: .file	[[ABC:[0-9]+]] "{{.*}}abc.swift"
// CHECK: .loc	[[ABC]] 42
// CHECK: .loc	[[MAIN]] 8
// CHECK: .loc	[[ABC]] 142
// CHECK: .file	[[DEF:[0-9]+]] "{{(//|\\\\\\\\)}}absolute{{(/|\\\\)}}path" "def.swift"
// CHECK: .loc	[[DEF]] 142
// CHECK: .asciz "{{.*}}test/DebugInfo"

// RUN: %empty-directory(%t)
// RUN: sed -e "s|LINE_DIRECTIVE_DIR|%/S|g" %S/Inputs/vfsoverlay.yaml > %t/overlay.yaml
// RUN: %target-swift-frontend -vfsoverlay %t/overlay.yaml -primary-file %/S/vfs-relocated-line-directive.swift -S -g -o - | %FileCheck -check-prefix=VFS %s
// VFS: .file  [[MAIN:[0-9]+]] "{{.*}}vfs-relocated-line-directive.swift"
// VFS: .loc  [[MAIN]] 1
// VFS: .file  [[ABC:[0-9]+]] "{{.*}}abc.swift"
// VFS: .loc  [[ABC]] 42
// VFS: .loc  [[MAIN]] 8
// VFS: .loc  [[ABC]] 142
// VFS: .file  [[DEF:[0-9]+]] "{{(//|\\\\\\\\)}}absolute{{(/|\\\\)}}path" "def.swift"
// VFS: .loc  [[DEF]] 142
// VFS: .asciz "{{.*}}test/DebugInfo"