[clang] 57adc37 - [analyzer] Nullability: Don't infer nullable when passing as nullable parameter.

Artem Dergachev via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 8 18:27:22 PST 2019


Author: Artem Dergachev
Date: 2019-11-08T18:27:14-08:00
New Revision: 57adc37fe57c6edabc006e6de41523319e874c65

URL: https://github.com/llvm/llvm-project/commit/57adc37fe57c6edabc006e6de41523319e874c65
DIFF: https://github.com/llvm/llvm-project/commit/57adc37fe57c6edabc006e6de41523319e874c65.diff

LOG: [analyzer] Nullability: Don't infer nullable when passing as nullable parameter.

You can't really infer anything from that.

Added: 
    clang/test/Analysis/nullability.m

Modified: 
    clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
index 4322ac207112..922048733c7c 100644
--- a/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
@@ -728,11 +728,6 @@ void NullabilityChecker::checkPreCall(const CallEvent &Call,
       }
       continue;
     }
-    // No tracked nullability yet.
-    if (ArgExprTypeLevelNullability != Nullability::Nullable)
-      continue;
-    State = State->set<NullabilityMap>(
-        Region, NullabilityState(ArgExprTypeLevelNullability, ArgExpr));
   }
   if (State != OrigState)
     C.addTransition(State);

diff  --git a/clang/test/Analysis/nullability.m b/clang/test/Analysis/nullability.m
new file mode 100644
index 000000000000..f777900006de
--- /dev/null
+++ b/clang/test/Analysis/nullability.m
@@ -0,0 +1,12 @@
+// RUN: %clang_analyze_cc1 -analyzer-checker core,nullability -w -verify %s
+
+// expected-no-diagnostics
+
+id _Nonnull conjure_nonnull();
+void use_nullable(_Nullable id x);
+
+id _Nonnull foo() {
+  void *j = conjure_nonnull();
+  use_nullable(j);
+  return j; // no-warning
+}


        


More information about the cfe-commits mailing list