================
@@ -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