| // RUN: %target-build-swift %s -emit-ir -o - |
| // REQUIRES: executable_test |
| |
| // Make sure we are not crashing here. |
| |
| sil_stage canonical |
| |
| import Builtin |
| import Swift |
| import SwiftShims |
| |
| class Hash { |
| init() |
| func update() |
| func hash() |
| @objc deinit |
| } |
| |
| final class MD5 : Hash { |
| override init() |
| @objc deinit |
| } |
| |
| sil @_TFC4main4HashcfMS0_FT_S0_ : $@convention(method) (@owned Hash) -> @owned Hash |
| sil @_TFC4main4HashCfMS0_FT_S0_ : $@convention(thin) (@thick Hash.Type) -> @owned Hash |
| |
| sil @_TFC4main4Hash6updatefS0_FT_T_ : $@convention(method) (@guaranteed Hash) -> () { |
| bb0(%0 : $Hash): |
| %1 = class_method %0 : $Hash, #Hash.hash!1 : (Hash) -> () -> () , $@convention(method) (@guaranteed Hash) -> () // user: %9 |
| checked_cast_br [exact] %0 : $Hash to $MD5, bb2, bb3 // id: %2 |
| |
| bb1: // Preds: bb2 bb3 |
| %3 = tuple () // user: %4 |
| return %3 : $() // id: %4 |
| |
| bb2(%5 : $MD5): // Preds: bb0 |
| br bb1 // id: %8 |
| |
| bb3: // Preds: bb0 |
| %9 = apply %1(%0) : $@convention(method) (@guaranteed Hash) -> () |
| br bb1 // id: %10 |
| } |
| |
| sil @_TFC4main4Hash4hashfS0_FT_T_ : $@convention(method) (@guaranteed Hash) -> () |
| sil @_TFC4main3MD5cfMS0_FT_S0_ : $@convention(method) (@owned MD5) -> @owned MD5 |
| sil @_TFC4main3MD5CfMS0_FT_S0_ : $@convention(thin) (@thick MD5.Type) -> @owned MD5 |
| |
| sil_vtable Hash { |
| #Hash.init!initializer.1: _TFC4main4HashcfMS0_FT_S0_ // main.Hash.init (main.Hash.Type)() -> main.Hash |
| #Hash.update!1: _TFC4main4Hash6updatefS0_FT_T_ // main.Hash.update (main.Hash)() -> () |
| #Hash.hash!1: _TFC4main4Hash4hashfS0_FT_T_ // main.Hash.hash (main.Hash)() -> () |
| } |
| |
| sil_vtable MD5 { |
| #Hash.init!initializer.1: _TFC4main3MD5cfMS0_FT_S0_ // main.MD5.init (main.MD5.Type)() -> main.MD5 |
| #Hash.update!1: _TFC4main4Hash6updatefS0_FT_T_ // main.Hash.update (main.Hash)() -> () |
| #Hash.hash!1: _TFC4main4Hash4hashfS0_FT_T_ // main.Hash.hash (main.Hash)() -> () |
| } |
| |
| |
| |