Repository navigation
Resolve nightly Windows native analysis warnings - #694
Merged
Merged
Conversation
Make existing bounds and allocation invariants visible to analysis, reuse purification and nominal flags consistently, initialize update pointers, and replace the strcpy wrapper. Restore BoosterCore analysis and ignore MSBuild-only unused driver arguments without disabling source diagnostics. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a145ac79-0374-48e4-b265-e745cb43bb0d
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #694 +/- ##
==========================================
+ Coverage 67.30% 67.32% +0.01%
==========================================
Files 77 77
Lines 11739 11739
==========================================
+ Hits 7901 7903 +2
+ Misses 3838 3836 -2 Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Keep the zero-dimensional and one-dimensional exits unchanged while recording the nonempty-surface invariant for higher-dimensional randomized purification. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a145ac79-0374-48e4-b265-e745cb43bb0d
Use the fixed decimal-point position of the validated float format instead of relying on character contents for the lower traversal bound. Keep the character invariant checked in debug builds. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a145ac79-0374-48e4-b265-e745cb43bb0d
Restore Flatten's original ppBinCur checks and initialize pUpdateScore only in the non-nominal branch. State the non-nominal invariant with ANALYSIS_ASSERT and use MSVC's analysis-only __analysis_assume intrinsic so C6001 is resolved without changing the runtime branching. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a145ac79-0374-48e4-b265-e745cb43bb0d
Restore strcpy instead of strlen plus memcpy. Document why the validated exponent fits after truncation and suppress only clang-analyzer-security.insecureAPI.strcpy at that call, without stopping subsequent path analysis. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a145ac79-0374-48e4-b265-e745cb43bb0d
Keep clang first because clang-cl defines both __clang__ and _MSC_VER. Use __analysis_assume only for MSVC and a no-op for compilers without the supported analysis intrinsics. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a145ac79-0374-48e4-b265-e745cb43bb0d
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Resolve the diagnostics in the Windows x64
win test_native (Schedule)step from run 39065771156.StopClangAnalysis()inBoosterCore.Flatten's originalppBinCur-based branches and conditionalpUpdateScoreinitialization. AddANALYSIS_ASSERT(!bNominal).ANALYSIS_ASSERTexplicit clang, MSVC, and no-op fallback branches. Clang comes first because clang-cl also defines_MSC_VER; MSVC uses analysis-only__analysis_assume.strcpycall, as requested. Remove thestrcpy_NO_WARNINGSanalysis-stopping wrapper and document a suppression scoped only toclang-analyzer-security.insecureAPI.strcpyat this call. All other path analysis remains enabled. Bound mantissa traversal by the validated decimal-point position./c; keep other source analyzer diagnostics enabled.Verification
The earlier revision
ef7312cdcompleted the scheduled Windows release x64 job with zero warning diagnostics, four ClangTidy invocations, passing C API tests, and a final build reporting 0 warnings and 0 errors.Latest revision:
1039c9023d6c3a305f1e44785f02de5deabae281.strcpyNOLINT suppresses only the known-safe API-use diagnostic; no other diagnostics are emitted.strcpy; all 189 existing numeric/purification regression cases passed.git diff --checkis clean.Manually dispatched nightly run 39103196729 with
run_as_scheduled=truefor the exact latest commit. The scheduled Windows x64 job passed: checkout confirmed1039c9023d6c3a305f1e44785f02de5deabae281,win test_native (Schedule)succeeded, and the ordinary CI step was skipped. Its log contains all four ClangTidy invocations, passing C API tests, zero emitted warning diagnostics, and a final build reporting 0 warnings and 0 errors. Clang-tidy explicitly reports the one intentionalstrcpyNOLINT suppression described above. This verifies the requested step, not the completion of the entire workflow.Additional earlier checks: native release suite (346 cases); 120 randomized purification checks across one through four dimensions including singleton dimensions; LLVM 19 and LLVM 22 analysis of the initial fixes.
Superseded CI runs for earlier PR commits were canceled.