mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
their types. - DebugTypeInfo holds all type info we need to emit debug information. - Type info is limited to name, location, and storage size. - As a side-effect: verbose LLVM IR allocas in debug builds! Swift SVN r5980
44 lines
2.3 KiB
Swift
44 lines
2.3 KiB
Swift
// RUN: %swift -triple x86_64-apple-darwin10 %s -emit-llvm -g -o - | FileCheck %s
|
|
|
|
// Global variables.
|
|
var glob_v: Void;
|
|
var glob_i8: Int8 = 8;
|
|
// CHECK-DAG: i32 [[@LINE-1]], metadata ![[I8:[0-9]+]]{{.*}}DW_TAG_variable{{.*}}glob_i8
|
|
var glob_i16: Int16 = 16;
|
|
// CHECK-DAG: i32 [[@LINE-1]], metadata ![[I16:[0-9]+]]{{.*}}DW_TAG_variable{{.*}}glob_i16
|
|
var glob_i32: Int32 = 32;
|
|
// CHECK-DAG: i32 [[@LINE-1]], metadata ![[I32:[0-9]+]]{{.*}}DW_TAG_variable{{.*}}glob_i32
|
|
var glob_i64: Int64 = 64;
|
|
// CHECK-DAG: i32 [[@LINE-1]], metadata ![[I64:[0-9]+]]{{.*}}DW_TAG_variable{{.*}}glob_i64
|
|
var glob_i128: Int128 = 128;
|
|
// CHECK-DAG: i32 [[@LINE-1]], metadata ![[I128:[0-9]+]]{{.*}}DW_TAG_variable{{.*}}glob_i128
|
|
var glob_f: Float = 2.89;
|
|
// CHECK-DAG: i32 [[@LINE-1]], metadata ![[F:[0-9]+]]{{.*}}DW_TAG_variable{{.*}}glob_f
|
|
var glob_d: Double = 3.14;
|
|
// CHECK-DAG: i32 [[@LINE-1]], metadata ![[D:[0-9]+]]{{.*}}DW_TAG_variable{{.*}}glob_d
|
|
var glob_b: Bool = true
|
|
// CHECK-DAG: i32 [[@LINE-1]], metadata ![[B:[0-9]+]]{{.*}}DW_TAG_variable{{.*}}glob_b
|
|
var glob_s: String = "😄"
|
|
// CHECK-DAG: i32 [[@LINE-1]], metadata ![[S:[0-9]+]]{{.*}}DW_TAG_variable{{.*}}glob_s
|
|
print("\(glob_v), \(glob_i8), \(glob_i16), \(glob_i32), \(glob_i64), \(glob_i128), \(glob_f), \(glob_d), \(glob_b), \(glob_s)")
|
|
var unused: Int32 = -1
|
|
// CHECK-DAG: ![[RT:[0-9]+]] ={{.*}}"swift.swift"
|
|
// CHECK-DAG: ![[I8]] ={{.*}}metadata ![[RT]]{{.*}}[ DW_TAG_structure_type ] [Int8]
|
|
// CHECK-DAG: ![[I16]] ={{.*}}metadata ![[RT]]{{.*}}[ DW_TAG_structure_type ] [Int16]
|
|
// CHECK-DAG: ![[I32]] ={{.*}}metadata ![[RT]]{{.*}}[ DW_TAG_structure_type ] [Int32]
|
|
// CHECK-DAG: ![[I64]] ={{.*}}metadata ![[RT]]{{.*}}[ DW_TAG_structure_type ] [Int64]
|
|
// CHECK-DAG: ![[I128]] ={{.*}}metadata ![[RT]]{{.*}}[ DW_TAG_structure_type ] [Int128]
|
|
// CHECK-DAG: ![[F]] ={{.*}}metadata ![[RT]]{{.*}}[ DW_TAG_structure_type ] [Float32]
|
|
// CHECK-DAG: ![[D]] ={{.*}}metadata ![[RT]]{{.*}}[ DW_TAG_structure_type ] [Float64]
|
|
// CHECK-DAG: ![[S]] ={{.*}}metadata ![[RT]]{{.*}}[ DW_TAG_structure_type ] [String]
|
|
|
|
// Stack variables.
|
|
func foo(dt: Float) -> Float {
|
|
// CHECK-DAG: call void @llvm.dbg.declare
|
|
// CHECK-DAG: [ DW_TAG_auto_variable ] [f] [line [[@LINE+1]]]
|
|
var f: Float = 9.78;
|
|
// CHECK-DAG: [ DW_TAG_auto_variable ] [r] [line [[@LINE+1]]]
|
|
var r: Float = f*dt;
|
|
return r;
|
|
}
|