Check that assignment to parameters in function calls are null-safe.

For example, it is unsafe to pass a nullable value as a nonnull parameter.
```
void foo(int * _Nonnull x);
int * _Nullable x = ...;
foo(x); // Unsafe
```

PiperOrigin-RevId: 468782730
diff --git a/nullability_verification/pointer_nullability.cc b/nullability_verification/pointer_nullability.cc
index 09a0f1f..c53dfd9 100644
--- a/nullability_verification/pointer_nullability.cc
+++ b/nullability_verification/pointer_nullability.cc
@@ -52,6 +52,13 @@
   initPointerBoolProperty(PointerVal, kNotNull, NotNullConstraint, Env);
 }
 
+bool isNullable(const PointerValue& PointerVal, const Environment& Env) {
+  auto [PointerKnown, PointerNotNull] = getPointerNullState(PointerVal, Env);
+  auto& PointerNotKnownNull =
+      Env.makeNot(Env.makeAnd(PointerKnown, Env.makeNot(PointerNotNull)));
+  return !Env.flowConditionImplies(PointerNotKnownNull);
+}
+
 }  // namespace nullability
 }  // namespace tidy
 }  // namespace clang