I didn't really understand what situation was the assertion guarding against. If someone knows, maybe we can invent a weaker assertion that still guards against the bug, while allowing this code to pass. http://llvm-reviews.chandlerc.com/D1186