1
1
// RUN: rm -rf %t && mkdir %t
2
2
//
3
- // RUN: %target-build-swift -parse-stdlib -module-name a %s -o %t.out
3
+ // RUN: %gyb %s -o %t/Runtime.swift
4
+ // RUN: %target-build-swift -parse-stdlib -module-name a %t/Runtime.swift -o %t.out
4
5
// RUN: %target-run %t.out
5
6
// REQUIRES: executable_test
6
7
@@ -356,11 +357,12 @@ Runtime.test("demangleName") {
356
357
expectEqual("Foobar", _stdlib_demangleName("_TtC13__lldb_expr_46Foobar"))
357
358
}
358
359
360
+ % for optionality in ['', '?']:
359
361
Runtime.test("_stdlib_atomicCompareExchangeStrongPtr") {
360
362
typealias IntPtr = UnsafeMutablePointer<Int>
361
- var origP1 = IntPtr ( bitPattern: 0x10101010 ) !
362
- var origP2 = IntPtr ( bitPattern: 0x20202020 ) !
363
- var origP3 = IntPtr ( bitPattern: 0x30303030 ) !
363
+ var origP1: IntPtr${optionality} = IntPtr(bitPattern: 0x10101010)!
364
+ var origP2: IntPtr${optionality} = IntPtr(bitPattern: 0x20202020)!
365
+ var origP3: IntPtr${optionality} = IntPtr(bitPattern: 0x30303030)!
364
366
365
367
do {
366
368
var object = origP1
@@ -383,32 +385,33 @@ Runtime.test("_stdlib_atomicCompareExchangeStrongPtr") {
383
385
384
386
struct FooStruct {
385
387
var i: Int
386
- var object : IntPtr
387
- var expected : IntPtr
388
+ var object: IntPtr${optionality}
389
+ var expected: IntPtr${optionality}
388
390
389
- init ( _ object: IntPtr , _ expected: IntPtr ) {
391
+ init(object: IntPtr${optionality}, expected: IntPtr${optionality} ) {
390
392
self.i = 0
391
393
self.object = object
392
394
self.expected = expected
393
395
}
394
396
}
395
397
do {
396
- var foo = FooStruct ( origP1, origP1)
398
+ var foo = FooStruct(object: origP1, expected: origP1)
397
399
let r = _stdlib_atomicCompareExchangeStrongPtr(
398
400
object: &foo.object, expected: &foo.expected, desired: origP2)
399
401
expectTrue(r)
400
402
expectEqual(origP2, foo.object)
401
403
expectEqual(origP1, foo.expected)
402
404
}
403
405
do {
404
- var foo = FooStruct ( origP1, origP2)
406
+ var foo = FooStruct(object: origP1, expected: origP2)
405
407
let r = _stdlib_atomicCompareExchangeStrongPtr(
406
408
object: &foo.object, expected: &foo.expected, desired: origP3)
407
409
expectFalse(r)
408
410
expectEqual(origP1, foo.object)
409
411
expectEqual(origP1, foo.expected)
410
412
}
411
413
}
414
+ % end
412
415
413
416
Runtime.test("casting AnyObject to class metatypes") {
414
417
do {
0 commit comments