mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Update testcases for new LLVM IR assembler syntax.
Swift SVN r24428
This commit is contained in:
@@ -3,7 +3,7 @@ func main() {
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %"protocol<>"* {{.*}}, metadata ![[S:.*]], metadata !{{[0-9]+}}), !dbg ![[DBG:.*]]
|
||||
// CHECK: ![[S]] ={{.*}}[ DW_TAG_auto_variable ] [s] [line [[@LINE+3]]]
|
||||
// CHECK: ![[SCOPE:.*]] = !{!"0xb\002\0013\001"{{.*}}} ; [ DW_TAG_lexical_block ]
|
||||
// CHECK: ![[DBG]] = !{i32 [[@LINE+1]], i32 6, ![[SCOPE]], null}
|
||||
// CHECK: ![[DBG]] = !MDLocation(line: [[@LINE+1]], column: 6, scope: ![[SCOPE]])
|
||||
var s : Any = "hello world"
|
||||
var n : Any = 12
|
||||
var t : Any = (1,2)
|
||||
|
||||
@@ -23,7 +23,7 @@ func call_me(var input: Int) -> Void {
|
||||
// An autoclosure should have a line number in the debug info and a scope line of 0.
|
||||
// CHECK-DAG: \00_TFF11autoclosure7call_meFSiT_u_KT_PSs11BooleanType_{{.*}} [ DW_TAG_subprogram ] [line [[@LINE+3]]] [def] [scope 0]
|
||||
// But not in the line table.
|
||||
// CHECK-DAG: ![[DBG]] = !{i32 [[@LINE+1]], i32
|
||||
// CHECK-DAG: ![[DBG]] = !MDLocation(line: [[@LINE+1]],
|
||||
if input != 0 &&&&& ( get_truth (input * 2 + 1) > 0 )
|
||||
{
|
||||
println ("Whew, passed that test.")
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
public
|
||||
func foo(var a: Int, var b: Int) -> Int {
|
||||
// CHECK-DAG: !"0xb\00[[@LINE-1]]\0041\000"{{, [^,]+}}, ![[FOO]]} ; [ DW_TAG_lexical_block ]
|
||||
// CHECK-DAG: ![[ASCOPE:.*]] = !{i32 [[@LINE-2]], i32 14, ![[FOO]], null}
|
||||
// CHECK-DAG: ![[ASCOPE:.*]] = !MDLocation(line: [[@LINE-2]], column: 14, scope: ![[FOO]])
|
||||
// Check that a is the first and b is the second argument.
|
||||
// CHECK-DAG: store i64 %0, i64* [[AVAL:.*]], align 8
|
||||
// CHECK-DAG: store i64 %1, i64* [[BVAL:.*]], align 8
|
||||
@@ -41,10 +41,10 @@ func foo(var a: Int, var b: Int) -> Int {
|
||||
// CHECK-DAG: \00[[@LINE-1]]\00{{.*}}DW_TAG_lexical_block
|
||||
// Transparent inlined multiply:
|
||||
// CHECK-DAG: smul{{.*}}, !dbg ![[MUL:[0-9]+]]
|
||||
// CHECK-DAG: [[MUL]] = !{i32 [[@LINE+4]], i32 16,
|
||||
// CHECK-DAG: [[MUL]] = !MDLocation(line: [[@LINE+4]], column: 16,
|
||||
// Runtime call to multiply function:
|
||||
// CHECK-NOSIL: @_TFSsoi1mFTSiSi_Si{{.*}}, !dbg ![[MUL:[0-9]+]]
|
||||
// CHECK-NOSIL: [[MUL]] = !{i32 [[@LINE+1]], i32 16,
|
||||
// CHECK-NOSIL: [[MUL]] = !MDLocation(line: [[@LINE+1]], column: 16,
|
||||
return a*b
|
||||
} else {
|
||||
// CHECK-DAG: [[PARENT:[0-9]+]] = {{.*}}\00[[@LINE-1]]\0013\00{{.*}}DW_TAG_lexical_block
|
||||
|
||||
@@ -6,8 +6,8 @@ func foo(a : Int, b : Int) -> Int {
|
||||
// CHECK: call {{.*}}foo{{.*}}, !dbg ![[ARG1:.*]]
|
||||
// CHECK: call {{.*}}foo{{.*}}, !dbg ![[ARG2:.*]]
|
||||
// CHECK: call {{.*}}foo{{.*}}, !dbg ![[OUTER:.*]]
|
||||
let r = foo(foo(1, 23), // CHECK: ![[ARG1]] = !{i32 [[@LINE]],
|
||||
foo(2, 42) // CHECK: ![[ARG2]] = !{i32 [[@LINE]],
|
||||
) // CHECK: ![[OUTER]] = !{i32 [[@LINE]],
|
||||
let r = foo(foo(1, 23), // CHECK: ![[ARG1]] = !MDLocation(line: [[@LINE]],
|
||||
foo(2, 42) // CHECK: ![[ARG2]] = !MDLocation(line: [[@LINE]],
|
||||
) // CHECK: ![[OUTER]] = !MDLocation(line: [[@LINE]],
|
||||
println(r)
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ protocol Named {
|
||||
// CHECK: define hidden %C11initializer6Person* @_TFC11initializer6PersonCfMS0_FT_S0_(%swift.type*) {
|
||||
// CHECK: call %C11initializer6Person* @_TFC11initializer6PersoncfMS0_FT_S0_(%C11initializer6Person* %3), !dbg ![[ALLOCATING_INIT:.*]]
|
||||
|
||||
// CHECK-DAG: ![[ALLOCATING_INIT]] = !{i32 0, i32 0
|
||||
// CHECK-DAG: ![[ALLOCATING_INIT]] = !MDLocation(line: 0, scope
|
||||
class Person : Named {
|
||||
var name : String { get { return "No Name" } }
|
||||
var age = 0
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
// CHECK: tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %[[C:.*]], i64 %[[C]]), !dbg ![[MULSCOPE:.*]]
|
||||
// CHECK-DAG: ![[TOPLEVEL:.*]] = {{.*}}; [ DW_TAG_file_type ] [{{.*}}/inlinescopes.swift]
|
||||
// CHECK-DAG: ![[MAIN:.*]] = {{.*}}\00main\00{{.*}}[ DW_TAG_subprogram ]
|
||||
// CHECK-DAG: ![[INLINED_TOPLEVEL:.*]] = !{i32 0, i32 0, ![[MAIN:.*]], null}
|
||||
// CHECK-DAG: ![[INLINED_TOPLEVEL:.*]] = !MDLocation(line: 0, scope: ![[MAIN:.*]])
|
||||
|
||||
import FooBar
|
||||
|
||||
func square(x : Int) -> Int {
|
||||
// CHECK-DAG: ![[MULSCOPE]] = !{i32 [[@LINE+2]], i32 {{.*}}, ![[MUL:.*]], ![[INLINED:.*]]}
|
||||
// CHECK-DAG: ![[MULSCOPE]] = !MDLocation(line: [[@LINE+2]], column: {{.*}}, scope: ![[MUL:.*]], inlinedAt: ![[INLINED:.*]])
|
||||
// CHECK-DAG: ![[MUL:.*]] = {{.*}}[ DW_TAG_lexical_block ]
|
||||
let res = x * x
|
||||
// *(Int, Int) is a transparent function and should not show up in the debug info.
|
||||
@@ -22,7 +22,7 @@ func square(x : Int) -> Int {
|
||||
return res
|
||||
}
|
||||
let c = Int(x)
|
||||
// CHECK-DAG ![[INLINED]] = !{i32 [[@LINE+1]], i32 {{.*}}, !{{.*}}, ![[INLINED_TOPLEVEL:.*]]}
|
||||
// CHECK-DAG ![[INLINED]] = !MDLocation(line: [[@LINE+1]], column: {{.*}}, scope: !{{.*}}, inlinedAt: ![[INLINED_TOPLEVEL:.*]])
|
||||
// CHECK-DAG: ![[TOPLEVEL]]{{.*}} ; [ DW_TAG_variable ] [y] [line [[@LINE+1]]]
|
||||
let y = square(c)
|
||||
println(y)
|
||||
|
||||
@@ -22,6 +22,6 @@ func main() {
|
||||
// CHECK: call void {{.*}}elease({{.*}}) {{#[0-9]+}}, !dbg ![[CLEANUPS:.*]]
|
||||
// CHECK-NEXT: !dbg ![[CLEANUPS]]
|
||||
// CHECK-NEXT: ret void, !dbg ![[CLEANUPS]]
|
||||
// CHECK: ![[CLEANUPS]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK: ![[CLEANUPS]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
main()
|
||||
|
||||
@@ -35,7 +35,7 @@ func main(x: Int) -> Void
|
||||
print ("Here is something you might consider doing: \(result).\n")
|
||||
// CHECK: call {{.*}} @swift_release {{.*}}, !dbg ![[CLOSURE_END:.*]]
|
||||
// CHECK-NEXT: ret void, !dbg ![[CLOSURE_END]]
|
||||
// CHECK: ![[CLOSURE_END]] = !{i32 [[@LINE+1]]
|
||||
// CHECK: ![[CLOSURE_END]] = !MDLocation(line: [[@LINE+1]],
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@ func classifyPoint2(p: (Double, Double)) {
|
||||
// CHECK: call double {{.*}}return_same{{.*}}, !dbg ![[LOC1:.*]]
|
||||
// CHECK: br {{.*}}, label {{.*}}, label {{.*}}, !dbg ![[LOC2:.*]]
|
||||
// CHECK: builtinStringLiteral{{.*}}, !dbg ![[LOC3:.*]]
|
||||
// CHECK: ![[LOC1]] = !{i32 [[@LINE+2]], i32
|
||||
// CHECK: ![[LOC2]] = !{i32 [[@LINE+1]], i32
|
||||
// CHECK: ![[LOC1]] = !MDLocation(line: [[@LINE+2]],
|
||||
// CHECK: ![[LOC2]] = !MDLocation(line: [[@LINE+1]],
|
||||
return_same(x) == return_same(y):
|
||||
// CHECK: ![[LOC3]] = !{i32 [[@LINE+1]], i32
|
||||
// CHECK: ![[LOC3]] = !MDLocation(line: [[@LINE+1]],
|
||||
println("(\(x), \(y)) is on the + diagonal")
|
||||
// SIL-CHECK: dealloc_stack{{.*}}line:[[@LINE-1]]:54:cleanup
|
||||
// Verify that the branch has a location >= the cleanup.
|
||||
@@ -43,5 +43,5 @@ func classifyPoint2(p: (Double, Double)) {
|
||||
// CHECK-SCOPES: ![[SCOPE3]] = {{.*}} ; [ DW_TAG_lexical_block ]
|
||||
println("sqrt(\(x*x + y*y)) units from the origin")
|
||||
}
|
||||
// CHECK: i32 [[@LINE+1]], i32
|
||||
// CHECK: !MDLocation(line: [[@LINE+1]],
|
||||
}
|
||||
|
||||
@@ -15,5 +15,5 @@ func ifelseexpr() -> Int {
|
||||
}
|
||||
// CHECK: @swift_release {{.*}}1X{{.*}}, !dbg ![[RET:.*]]
|
||||
// CHECK: ret{{.*}}, !dbg ![[RET]]
|
||||
return x.x; // CHECK: ![[RET]] = !{i32 [[@LINE]],
|
||||
return x.x; // CHECK: ![[RET]] = !MDLocation(line: [[@LINE]],
|
||||
}
|
||||
|
||||
@@ -13,8 +13,8 @@ func none(inout a: Int) {
|
||||
// CHECK_NONE: !dbg ![[NONE_INIT:.*]]
|
||||
a -= 2;
|
||||
// CHECK_NONE: ret {{.*}}, !dbg ![[NONE_RET:.*]]
|
||||
// CHECK_NONE: ![[NONE_INIT]] = !{i32 [[@LINE-2]], i32
|
||||
// CHECK_NONE: ![[NONE_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_NONE: ![[NONE_INIT]] = !MDLocation(line: [[@LINE-2]], column:
|
||||
// CHECK_NONE: ![[NONE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_EMPTY
|
||||
@@ -22,16 +22,16 @@ func none(inout a: Int) {
|
||||
func empty(inout a: Int) {
|
||||
if a > 24 {
|
||||
// CHECK-DAG_EMPTY: br {{.*}}, !dbg ![[EMPTY_RET1:.*]]
|
||||
// CHECK-DAG_EMPTY_RET1: ![[EMPTY_RET1]] = !{i32 [[@LINE+1]], i32 6,
|
||||
// CHECK-DAG_EMPTY_RET1: ![[EMPTY_RET1]] = !MDLocation(line: [[@LINE+1]], column: 6,
|
||||
return
|
||||
}
|
||||
|
||||
a -= 2;
|
||||
// CHECK-DAG_EMPTY: br {{.*}}, !dbg ![[EMPTY_RET2:.*]]
|
||||
// CHECK-DAG_EMPTY_RET2: ![[EMPTY_RET]] = !{i32 [[@LINE+1]], i32 3,
|
||||
// CHECK-DAG_EMPTY_RET2: ![[EMPTY_RET]] = !MDLocation(line: [[@LINE+1]], column: 3,
|
||||
return
|
||||
// CHECK-DAG_EMPTY: ret {{.*}}, !dbg ![[EMPTY_RET:.*]]
|
||||
// CHECK-DAG_EMPTY: ![[EMPTY_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK-DAG_EMPTY: ![[EMPTY_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_EMPTY_NONE
|
||||
@@ -43,7 +43,7 @@ func empty_none(inout a: Int) {
|
||||
|
||||
a -= 2;
|
||||
// CHECK_EMPTY_NONE: ret {{.*}}, !dbg ![[EMPTY_NONE_RET:.*]]
|
||||
// CHECK_EMPTY_NONE: ![[EMPTY_NONE_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_EMPTY_NONE: ![[EMPTY_NONE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_SIMPLE_RET
|
||||
@@ -54,7 +54,7 @@ func simple(a: Int) -> Int {
|
||||
}
|
||||
return 1
|
||||
// CHECK_SIMPLE_RET: ret i{{.*}}, !dbg ![[SIMPLE_RET:.*]]
|
||||
// CHECK_SIMPLE_RET: ![[SIMPLE_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_SIMPLE_RET: ![[SIMPLE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_COMPLEX_RET
|
||||
@@ -65,7 +65,7 @@ func complex(a: Int) -> Int {
|
||||
}
|
||||
return a/2
|
||||
// CHECK_COMPLEX_RET: ret i{{.*}}, !dbg ![[COMPLEX_RET:.*]]
|
||||
// CHECK_COMPLEX_RET: ![[COMPLEX_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_COMPLEX_RET: ![[COMPLEX_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_COMPLEX_SIMPLE
|
||||
@@ -76,7 +76,7 @@ func complex_simple(a: Int) -> Int {
|
||||
}
|
||||
return 2
|
||||
// CHECK_COMPLEX_SIMPLE: ret i{{.*}}, !dbg ![[COMPLEX_SIMPLE_RET:.*]]
|
||||
// CHECK_COMPLEX_SIMPLE: ![[COMPLEX_SIMPLE_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_COMPLEX_SIMPLE: ![[COMPLEX_SIMPLE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_SIMPLE_COMPLEX
|
||||
@@ -87,7 +87,7 @@ func simple_complex(a: Int) -> Int {
|
||||
}
|
||||
return 2
|
||||
// CHECK_SIMPLE_COMPLEX: ret {{.*}}, !dbg ![[SIMPLE_COMPLEX_RET:.*]]
|
||||
// CHECK_SIMPLE_COMPLEX: ![[SIMPLE_COMPLEX_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_SIMPLE_COMPLEX: ![[SIMPLE_COMPLEX_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ func simple_complex(a: Int) -> Int {
|
||||
func cleanup_none(inout a: NSString) {
|
||||
a = "empty"
|
||||
// CHECK_CLEANUP_NONE: ret void, !dbg ![[CLEANUP_NONE_RET:.*]]
|
||||
// CHECK_CLEANUP_NONE: ![[CLEANUP_NONE_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_CLEANUP_NONE: ![[CLEANUP_NONE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_EMPTY
|
||||
@@ -112,7 +112,7 @@ func cleanup_empty(inout a: NSString) {
|
||||
a = "empty"
|
||||
return
|
||||
// CHECK_CLEANUP_EMPTY: ret void, !dbg ![[CLEANUP_EMPTY_RET:.*]]
|
||||
// CHECK_CLEANUP_EMPTY: ![[CLEANUP_EMPTY_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_CLEANUP_EMPTY: ![[CLEANUP_EMPTY_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_EMPTY_NONE
|
||||
@@ -124,7 +124,7 @@ func cleanup_empty_none(inout a: NSString) {
|
||||
|
||||
a = "empty"
|
||||
// CHECK_CLEANUP_EMPTY_NONE: ret {{.*}}, !dbg ![[CLEANUP_EMPTY_NONE_RET:.*]]
|
||||
// CHECK_CLEANUP_EMPTY_NONE: ![[CLEANUP_EMPTY_NONE_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_CLEANUP_EMPTY_NONE: ![[CLEANUP_EMPTY_NONE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_SIMPLE_RET
|
||||
@@ -136,7 +136,7 @@ func cleanup_simple(a: NSString) -> Int {
|
||||
|
||||
return 1
|
||||
// CHECK_CLEANUP_SIMPLE_RET: ret {{.*}}, !dbg ![[CLEANUP_SIMPLE_RET:.*]]
|
||||
// CHECK_CLEANUP_SIMPLE_RET: ![[CLEANUP_SIMPLE_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_CLEANUP_SIMPLE_RET: ![[CLEANUP_SIMPLE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_COMPLEX
|
||||
@@ -148,7 +148,7 @@ func cleanup_complex(a: NSString) -> Int {
|
||||
|
||||
return a.length/2
|
||||
// CHECK_CLEANUP_COMPLEX: ret i{{.*}}, !dbg ![[CLEANUP_COMPLEX_RET:.*]]
|
||||
// CHECK_CLEANUP_COMPLEX: ![[CLEANUP_COMPLEX_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_CLEANUP_COMPLEX: ![[CLEANUP_COMPLEX_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_COMPLEX_SIMPLE
|
||||
@@ -160,7 +160,7 @@ func cleanup_complex_simple(a: NSString) -> Int {
|
||||
|
||||
return 2
|
||||
// CHECK_CLEANUP_COMPLEX_SIMPLE: ret {{.*}}, !dbg ![[CLEANUP_COMPLEX_SIMPLE_RET:.*]]
|
||||
// CHECK_CLEANUP_COMPLEX_SIMPLE: ![[CLEANUP_COMPLEX_SIMPLE_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_CLEANUP_COMPLEX_SIMPLE: ![[CLEANUP_COMPLEX_SIMPLE_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// RUN: cat %t.ll | FileCheck %s --check-prefix=CHECK_CLEANUP_SIMPLE_COMPLEX
|
||||
@@ -171,7 +171,7 @@ func cleanup_simple_complex(a: NSString) -> Int {
|
||||
}
|
||||
return 2
|
||||
// CHECK_CLEANUP_SIMPLE_COMPLEX: ret {{.*}}, !dbg ![[CLEANUP_SIMPLE_COMPLEX_RET:.*]]
|
||||
// CHECK_CLEANUP_SIMPLE_COMPLEX: ![[CLEANUP_SIMPLE_COMPLEX_RET]] = !{i32 [[@LINE+1]], i32 1,
|
||||
// CHECK_CLEANUP_SIMPLE_COMPLEX: ![[CLEANUP_SIMPLE_COMPLEX_RET]] = !MDLocation(line: [[@LINE+1]], column: 1,
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
@@ -19,8 +19,8 @@ class AppDelegate {
|
||||
// Verify that all debug line table entries for the expression
|
||||
// below are in the same scope.
|
||||
//
|
||||
// CHECK-DAG: !{{.*}} = !{i32 [[@LINE+2]], i32 46, ![[S:.*]], null}
|
||||
// CHECK-DAG: !{{.*}} = !{i32 [[@LINE+1]], i32 11, ![[S]], null}
|
||||
// CHECK-DAG: !{{.*}} = !MDLocation(line: [[@LINE+2]], column: 46, scope: ![[S:.*]])
|
||||
// CHECK-DAG: !{{.*}} = !MDLocation(line: [[@LINE+1]], column: 11, scope: ![[S]])
|
||||
let splitViewController = self.window!.rootViewController as! UISplitViewController
|
||||
}
|
||||
return true
|
||||
|
||||
@@ -17,7 +17,7 @@ bb0(%0 : $Int32):
|
||||
cond_fail %8 : $Builtin.Int1 // id: %9
|
||||
%10 = struct $Int32 (%7 : $Builtin.Int32) // user: %11
|
||||
// CHECK: ret i32 %{{.*}}, !dbg ![[LOC:.*]]
|
||||
// CHECK: ![[LOC]] = !{i32 [[@LINE+1]],
|
||||
// CHECK: ![[LOC]] = !MDLocation(line: [[@LINE+1]],
|
||||
return %10 : $Int32 // id: %11
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ func date() {
|
||||
// IMPORT-CHECK-DAG: [ DW_TAG_module ] [ObjectiveC]
|
||||
|
||||
// LOC-CHECK: ![[THUNK:.*]] = {{.*}}_TToFC4main8MyObjectg5MyArrCSo7NSArray{{.*}} ; [ DW_TAG_subprogram ] [line 0] [def]
|
||||
// LOC-CHECK: ![[DBG]] = !{i32 0, i32 0, ![[THUNK]], null}
|
||||
// LOC-CHECK: ![[DBG]] = !MDLocation(line: 0, scope: ![[THUNK]])
|
||||
|
||||
// These debug locations should all be in ordered by increasing line number.
|
||||
// LOC-CHECK: ![[L1]] =
|
||||
|
||||
@@ -11,4 +11,4 @@ func fn() {
|
||||
// CHECK-NOT: define
|
||||
// CHECK: call void @llvm.trap(), !dbg ![[LOC:.*]]
|
||||
// CHECK-NEXT: unreachable, !dbg ![[LOC]]
|
||||
// CHECK: ![[LOC]] = !{i32 0, i32 0,
|
||||
// CHECK: ![[LOC]] = !MDLocation(line: 0, scope
|
||||
|
||||
@@ -5,11 +5,11 @@ import Swift
|
||||
func f(x : Int) -> Int {
|
||||
if x < 23 {
|
||||
// CHECK-DAG: call void @llvm.trap(), !dbg ![[LOC1:.*]]
|
||||
// CHECK-DAG: ![[LOC1]] = !{i32 [[@LINE+1]],
|
||||
// CHECK-DAG: ![[LOC1]] = !MDLocation(line: [[@LINE+1]],
|
||||
Builtin.int_trap()
|
||||
}
|
||||
if x > 42 {
|
||||
// CHECK-DAG: ![[LOC2:.*]] = !{i32 [[@LINE+1]],
|
||||
// CHECK-DAG: ![[LOC2:.*]] = !MDLocation(line: [[@LINE+1]],
|
||||
Builtin.int_trap()
|
||||
// CHECK-DAG: call void @llvm.trap(), !dbg ![[LOC2]]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user