Implement nonnull-attribute sanitizer

Summary:
This patch implements a new UBSan check, which verifies
that function arguments declared to be nonnull with __attribute__((nonnull))
are actually nonnull in runtime.

To implement this check, we pass FunctionDecl to CodeGenFunction::EmitCallArgs
(where applicable) and if function declaration has nonnull attribute specified
for a certain formal parameter, we compare the corresponding RValue to null as
soon as it's calculated.

Test Plan: regression test suite

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: cfe-commits, rnk

Differential Revision: http://reviews.llvm.org/D5082

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@217389 91177308-0d34-0410-b5e6-96231b3b80d8
Revert accidental change

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@217391 91177308-0d34-0410-b5e6-96231b3b80d8
Report source location of returns_nonnull attribute in UBSan reports.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@217400 91177308-0d34-0410-b5e6-96231b3b80d8
Remove extra semicolon [-Wpedantic]

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@217407 91177308-0d34-0410-b5e6-96231b3b80d8