<div dir="ltr">The attached patch updates CodeGen to add the llvm 'nonnull' attribute whenever the return or argument type is a reference (lvalue or rvalue reference).<div><br></div><div>There is more we could do here (for instance, 'this' pointers are also never null), but I'm starting here since the bulk of the change is merely updating the tests. In particular I added 'nonnull' whenever the mangled name indicated a reference type was involved. For Microsoft mangling tests and some Objective-C++ tests, I simply updated the tests with no attempt to reason about the correctness.</div>

<div><br></div><div>Please review!</div><div><br></div><div>Nick</div><div><br></div></div>