Commits
Chris Lattner committed f8ce2a3a870
Fix <rdar://problem/16871284> silgen crashes on weak capture This reworks handling of weak/unowned values to represent them as logical lvalues instead of as physical lvalues. Representing them as physical lvalues breaks a lot of assumptions throughout silgen because (while they have the same in-memory representation) weak pointers and optional have different dynamic behavior. This will hopefully make weak pointers generally more reliable than they have been. One causualty of this is that the "copy_addr" peephole is defeated for the case that you copy a weak lvalue to another weak lvalue, but correctness needs to win, and this can be added back later when it becomes a priority. Swift SVN r17842