mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
LLVM r356789 changed the format of textual IR to print nameless blocks with labels instead of comments with "; <label>". Adjust Swift tests to match. I also updated the utils/viewcfg script to match.
59 lines
1.8 KiB
Swift
59 lines
1.8 KiB
Swift
// RUN: %target-swift-frontend %s -emit-ir -g -o - | %FileCheck %s
|
|
|
|
@_fixed_layout
|
|
public struct UnicodeScalar {
|
|
var _value: UInt32
|
|
public var value: UInt32 { return _value }
|
|
}
|
|
|
|
public func mangle(s: [UnicodeScalar]) -> [UnicodeScalar] {
|
|
let replacementUnichar = UnicodeScalar(_value: 0)
|
|
var mangledUnichars: [UnicodeScalar] = s.map {
|
|
switch $0.value {
|
|
case
|
|
// A-Z
|
|
0x0041...0x005A,
|
|
// a-z
|
|
0x0061...0x007A,
|
|
// 0-9
|
|
0x0030...0x0039,
|
|
// _
|
|
0x005F,
|
|
// Latin (1)
|
|
0x00AA...0x00AA:
|
|
return $0
|
|
default:
|
|
return replacementUnichar
|
|
}
|
|
}
|
|
return mangledUnichars
|
|
}
|
|
|
|
// The patterns in the first case statement each define an anonymous variable,
|
|
// which shares the storage with the expression in the switch statement. Make
|
|
// sure we emit a dbg.value once per basic block.
|
|
|
|
// CHECK: define {{.*}}@"$s11patternvars6mangle1sSayAA13UnicodeScalarVGAF_tFA2EXEfU_"
|
|
// CHECK: %[[VAL:[0-9]+]] = call swiftcc i32 @"$s11patternvars13UnicodeScalarV5values6UInt32Vvg"(i32 %0)
|
|
// CHECK-NEXT: call void @llvm.dbg.value(metadata i32 %[[VAL]]
|
|
// CHECK: {{[0-9]+}}:
|
|
// CHECK: call void @llvm.dbg.value(metadata i32 %[[VAL]]
|
|
// CHECK-NOT: call void @llvm.dbg.value
|
|
// CHECK-NOT: call void asm sideeffect "", "r"
|
|
|
|
// CHECK: {{[0-9]+}}:
|
|
// CHECK: call void @llvm.dbg.value(metadata i32 %[[VAL]]
|
|
// CHECK-NOT: call void @llvm.dbg.value
|
|
// CHECK-NOT: call void asm sideeffect "", "r"
|
|
|
|
// CHECK: {{[0-9]+}}:
|
|
// CHECK: call void @llvm.dbg.value(metadata i32 %[[VAL]]
|
|
// CHECK-NOT: call void @llvm.dbg.value
|
|
// CHECK-NOT: call void asm sideeffect "", "r"
|
|
|
|
// CHECK: {{[0-9]+}}:
|
|
// CHECK: call void @llvm.dbg.value(metadata i32 %[[VAL]]
|
|
// CHECK-NOT: call void @llvm.dbg.value
|
|
// CHECK-NOT: call void asm sideeffect "", "r"
|
|
|