File: struct_layout.sil

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 (54 lines) | stat: -rw-r--r-- 1,428 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// RUN: %target-swift-frontend %s -module-name main -emit-ir -o - | %FileCheck -check-prefix=%target-ptrsize  --check-prefix=CHECK %s

import Builtin
import Swift

// 64: %T4main14Rdar15410780_CV = type <{ %TSSSg }>
// 64: %TSSSg = type <{ [16 x i8] }>

// 64: @"$s4main14Rdar15410780_AVWV" = internal constant {{.*}} i64 257
// 64: @"$s4main14Rdar15410780_BVWV" = internal constant {{.*}} i64 258
// 64: @"$s4main14Rdar15410780_CVWV" = internal constant {{.*}} i64 16


// 32: %T4main14Rdar15410780_CV = type <{ %TSSSg }>
// 32: %TSSSg = type <{ [12 x i8] }>

// 32: @"$s4main14Rdar15410780_AVWV" = internal constant {{.*}} i32 257
// 32: @"$s4main14Rdar15410780_BVWV" = internal constant {{.*}} i32 258
// 32: @"$s4main14Rdar15410780_CVWV" = internal constant {{.*}} i32 12


// <rdar://problem/15410780>
struct Rdar15410780_A {
  var a: Builtin.Int2048
  var b: Int8
}

struct Rdar15410780_B {
  var c: Rdar15410780_A?
}

struct Rdar15410780_C {
  var d: String?
}

enum EmptyEnum {
  case A
}

struct S {
  @_hasStorage let x: Int
  @_hasStorage let e: EmptyEnum
}

// CHECK-LABEL: define {{.*}} @testOffsetOfEmptyType
// CHECK:         ret ptr null
// CHECK:       }
sil @testOffsetOfEmptyType : $@convention(thin) () -> Builtin.RawPointer {
bb0:
  %0 = base_addr_for_offset $*S
  %1 = struct_element_addr %0 : $*S, #S.e
  %2 = address_to_pointer %1 : $*EmptyEnum to $Builtin.RawPointer
  return %2 : $Builtin.RawPointer
}