Index: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp =================================================================== --- clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp +++ clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp @@ -1813,7 +1813,7 @@ if (BR.addTrackedCondition(N)) { bugreporter::trackExpressionValue( N, Condition, BR, bugreporter::TrackingKind::Condition, - /*EnableNullFPSuppression=*/false); + /*EnableNullFPSuppression=*/true); return constructDebugPieceForTrackedCondition(Condition, N, BRC); } } Index: clang/test/Analysis/inlining/inline-defensive-checks.m =================================================================== --- clang/test/Analysis/inlining/inline-defensive-checks.m +++ clang/test/Analysis/inlining/inline-defensive-checks.m @@ -108,11 +108,9 @@ unsigned zero = 0; fPtr = retNil(); // On a path where fPtr is nil, mem should be nil. - // The warning is not suppressed because the receiver being nil is not - // directly related to the value that triggers the warning. Foo *mem = [fPtr getFooPtr]; if (!mem) - return 5/zero; // expected-warning {{Division by zero}} + return 5/zero; return 0; }