Apply the nonnull attribute to constructor expressions too.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128253 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp
index de5a796..15644c9 100644
--- a/lib/Sema/SemaChecking.cpp
+++ b/lib/Sema/SemaChecking.cpp
@@ -313,7 +313,8 @@
   for (specific_attr_iterator<NonNullAttr>
          i = FDecl->specific_attr_begin<NonNullAttr>(),
          e = FDecl->specific_attr_end<NonNullAttr>(); i != e; ++i) {
-    CheckNonNullArguments(*i, TheCall);
+    CheckNonNullArguments(*i, TheCall->getArgs(),
+                          TheCall->getCallee()->getLocStart());
   }
 
   return false;
@@ -1030,15 +1031,15 @@
 
 void
 Sema::CheckNonNullArguments(const NonNullAttr *NonNull,
-                            const CallExpr *TheCall) {
+                            const Expr * const *ExprArgs,
+                            SourceLocation CallSiteLoc) {
   for (NonNullAttr::args_iterator i = NonNull->args_begin(),
                                   e = NonNull->args_end();
        i != e; ++i) {
-    const Expr *ArgExpr = TheCall->getArg(*i);
+    const Expr *ArgExpr = ExprArgs[*i];
     if (ArgExpr->isNullPointerConstant(Context,
                                        Expr::NPC_ValueDependentIsNotNull))
-      Diag(TheCall->getCallee()->getLocStart(), diag::warn_null_arg)
-        << ArgExpr->getSourceRange();
+      Diag(CallSiteLoc, diag::warn_null_arg) << ArgExpr->getSourceRange();
   }
 }