Files
swift-mirror/test/SILGen/toplevel_errors.swift
Michael Gottesman e2419b75fd [semantic-arc] Qualify most of the stores in SILGen as store [init].
All of these cases were trivially inits since they involved storing into
a newly created temporary allocation.

rdar://28685236
2016-10-31 15:51:26 -07:00

25 lines
787 B
Swift

// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
enum MyError : Error {
case A, B
}
throw MyError.A
// CHECK: sil @main
// CHECK: [[ERR:%.*]] = alloc_existential_box $Error, $MyError
// CHECK: [[ADDR:%.*]] = project_existential_box $MyError in [[ERR]] : $Error
// CHECK: [[T0:%.*]] = enum $MyError, #MyError.A!enumelt
// CHECK: store [[T0]] to [trivial] [[ADDR]] : $*MyError
// CHECK: builtin "willThrow"([[ERR]] : $Error)
// CHECK: br bb2([[ERR]] : $Error)
// CHECK: bb1([[T0:%.*]] : $Int32):
// CHECK: return [[T0]] : $Int32
// CHECK: bb2([[T0:%.*]] : $Error):
// CHECK: builtin "errorInMain"([[T0]] : $Error)
// CHECK: [[T0:%.*]] = integer_literal $Builtin.Int32, 1
// CHECK: [[T1:%.*]] = struct $Int32 ([[T0]] : $Builtin.Int32)
// CHECK: br bb1([[T1]] : $Int32)