Commits

David Farler committed 3c4428dd78d
Emit unique metadata for functions with inout References to functions that take inout parameters crash the compiler because InOutType isn't a "real" type in itself and has no special type metadata to emit. It merely further qualifies the function's input types. For example, we would like to have a unique entry in the cache for: var f: (T, T) -> () and var f2: (inout T, T) -> () For each argument type metadata pointer in the function's input, take advantage of pointer alignment and mark the lowest bit if it is inout. Since the metadata cache uses pointers to create the key, this creates a unique entry while still being able to extract the actual pointer. This fixes <rdar://problem/17655125>, and a couple of other similar crashes. Swift SVN r23557