steakhal added inline comments.
================ Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:872-883 + if (NewState && NewState != State) { + StringRef Note = Case.getNote(); + const NoteTag *Tag = C.getNoteTag( + // Sorry couldn't help myself. + [Node, Note]() { + // Don't emit "Assuming..." note when we ended up + // knowing in advance which branch is taken. ---------------- I thought we mostly have one or two cases. If we have two cases, then the constraint should be the opposite of the other one. If this is the case, when does `NewState && NewState != State` not imply `Node->succ_size() > 1` given that `Summary.getCases().size() >= 2`? ================ Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:1326-1330 // The locale-specific range. .Case({ArgumentCondition(0U, WithinRange, {{128, UCharRangeMax}})}) // Is not an unsigned char. .Case({ArgumentCondition(0U, OutOfRange, Range(0, UCharRangeMax)), ReturnValueCondition(WithinRange, SingleValue(0))})); ---------------- Why don't we have notes for these cases? ================ Comment at: clang/test/Analysis/std-c-library-functions-path-notes.c:3 +// RUN: -analyzer-checker=core,apiModeling \ +// RUN: -analyzer-config assume-controlled-environment=false \ +// RUN: -analyzer-output=text ---------------- This is the default value. What's the benefit of passing this? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D122285/new/ https://reviews.llvm.org/D122285 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits