================
@@ -576,8 +576,14 @@ ProgramStateRef 
CStringChecker::CheckLocation(CheckerContext &C,
 
   auto [StInBound, StOutBound] = state->assumeInBoundDual(*Idx, Size);
   if (StOutBound && !StInBound) {
+    // FIXME: We detected a fatal error here, we should stop the analysis even
+    // if we choose not to emit a report here. Instead, we choose to continue
+    // the analysis with a slightly broken state, so that other checkers can
+    // still emit possibly relevant reports. One such checker would be the
+    // alpha.unix.cstring.OutOfBounds. Sinking the state here could lead to
+    // loss reports from those checkers.
----------------
gamesh411 wrote:

@NagyDonat Good point. I went over all the special cases and highlighted the 
jankiness of the special case handling more precisely. Both here and in the 
CheckOverlap function.

https://github.com/llvm/llvm-project/pull/186802
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to