File: rdar114699006.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (40 lines) | stat: -rw-r--r-- 1,864 bytes parent folder | download
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
// RUN: %target-swift-frontend \
// RUN:     -primary-file %s   \
// RUN:     -module-name main  \
// RUN:     -O                 \
// RUN:     -g                 \
// RUN:     -target x86_64-apple-macos10.13 \
// RUN:     -emit-ir           \
// RUN:     -o /dev/null       \
// RUN:     -Xllvm -sil-print-function='$s4main1CCACycfc' \
// RUN:     2>&1 | %FileCheck %s

// REQUIRES: CPU=x86_64

// This test expects the stdlib to be in its properly optimized form.
// REQUIRES: swift_stdlib_no_asserts,optimized_stdlib

// No need to run this test that has a hard-coded target of macos10.13 on other
// platforms.
// REQUIRES: OS=macosx

// Verify that after RetainSinking runs, the retain of the __EmptyArrayStorage
// is _above_ the call to $sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_SSTg5
// which consumes the reference.
// rdar://114699006

// CHECK-LABEL: *** SIL function after {{.*}} RetainSinking (retain-sinking)
// CHECK-LABEL: sil {{.*}}@$s4main1CCACycfc : {{.*}} {
// CHECK:         [[REF:%[^,]+]] = raw_pointer_to_ref {{%[^,]+}} : $Builtin.RawPointer to $__EmptyArrayStorage
// CHECK:         [[BRIDGE_OBJECT:%[^,]+]] = unchecked_ref_cast [[REF]] : $__EmptyArrayStorage to $Builtin.BridgeObject
// CHECK:         [[BRIDGE_STORAGE:%[^,]+]] = struct $_BridgeStorage<__ContiguousArrayStorageBase> ([[BRIDGE_OBJECT]] :
// CHECK:         [[ARRAY_BUFFER:%[^,]+]] = struct $_ArrayBuffer<(String, String)> ([[BRIDGE_STORAGE]] :
// CHECK:         [[ARRAY:%[^,]+]] = struct $Array<(String, String)> ([[ARRAY_BUFFER]] :
// CHECK:         [[DICTIONARY_INIT:%[^,]+]] = function_ref @$sSD17dictionaryLiteralSDyxq_Gx_q_td_tcfCSS_SSTg{{m?}}5
// CHECK-NEXT:    strong_retain [[REF]] : $__EmptyArrayStorage
// CHECK-NEXT:    apply [[DICTIONARY_INIT]]([[ARRAY]]
// CHECK-LABEL: } // end sil function '$s4main1CCACycfc'

class C {
    var d: [String : String] = [:]
}