Repository navigation
fix(c): initialize typed repeat arrays inside their value wrapper - #6038
Merged
dmitrii-f-t27 merged 1 commit intoOct 4, 2026
Merged
Conversation
This was referenced Oct 4, 2026
Merged
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.
Typed
[T; N]repeat locals and returned array values emitted C range designators at the structure level. Clang and GCC rejected the generated api_documenter and traffic_animator modules. Initialize the known by-value wrapper'svmember while retaining plain arrays, existing lists, function signatures and value-return lifetimes.The source fixture and six native integration tests compile and execute the generated C, check four indices over256 values plus boundary values, and reject source fill/extent mutants and an oversized initializer. The accepted baseline passes two controls and fails four actual compilation regressions; the corrected compiler passes all six on Clang21 and Linux GCC12.2.0. The existing Clang limitation for effectful GNU range fills remains outside this repair.
Validation: actual bootstrap2828 passed/0 failed/2 ignored across123 targets; native corpus ratchet retains95 expected failures/cap126; all75 tri-net C modules compile and execute on Clang and real Linux GCC with unchanged workflow flags. Exactly two of284 outputs change;102Rust/107Zig/113Verilog outputs remain byte-identical to the accepted baseline. Complete804 sealed-spec audit finds zero existing hash/alias changes; coverage1449/1325/124 and the debt ledger stay unchanged. FROZEN matches the actual compiler source.
tri-net product source, generated files, PIN and budgets remain unchanged. Its separate Zig and Verilog adoption blockers remain.
Closes #6013.