Task: Fix every remaining gcc-only diagnostic in the tree
Table of Contents
This page documents a task in the Hotfix: Continuous Linux gcc jobs red on further gcc-only diagnostics story. It captures the goal, current status, acceptance, and any notes or results.
1. Goal
The Continuous Linux gcc jobs compile the whole tree again. Every remaining gcc-only diagnostic is fixed, so the jobs no longer stop on a warning that gcc treats as an error.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Hotfix: Continuous Linux gcc jobs red on further gcc-only diagnostics |
| Now | Nothing. |
| Waiting on | The next scheduled Continuous Linux run. |
| Next | Nothing. |
| Last touched | 2026-09-15 |
3. Acceptance
- The local gcc sweep build reports no diagnostic.
- The Continuous Linux gcc debug and release jobs build the whole tree.
- The Windows and MacOS jobs stay green.
4. Plan
Fix every remaining gcc-only diagnostic in one pass, then raise one PR.
- Reproduce the failure locally. Take the gcc command for the failing
file from
build/output/linux-gcc-debug-make/compile_commands.json, swap in-fsyntax-only, and compile. This reproduces the CI diagnostics without a full CI cycle. - Fix each diagnostic. Prefer the smallest edit that removes the warning without changing behaviour.
- Sweep the whole tree. Run every entry of
compile_commands.jsonthrough the same command, so no translation unit is skipped. - Keep a keep-going build running in parallel, as a second oracle.
- Raise one PR. Record the debug evidence in the PR body, and state the release gap in the Limitations paragraph.
5. Notes
6. Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario, run
through the QA Validation Runner panel) that verify this task. Link
new ones here as they're created; the scenario doc itself links back
via its "Verifies task" field.
| Scenario | State | Notes |
|---|---|---|
7. PRs
| PR | Title |
|---|---|
8. Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| 1 | Carried the scaffold placeholder as its #+description, "Initial task for: <story>", and the parent story's Tasks row mirrored it. |
task_implement_ci-builds-red-gcc-test-tree-warnings-hotfix.org, story.org | Accepted | Replaced both with a description of the actual work. |
9. Result
feed_controller_tests.cpp no longer binds a const std::string& to a
braced list of string literals. The loop iterates a
std::vector<std::string> built once, which is the change gcc asks for
in -Wrange-loop-construct. The file also gained the <string> and
<vector> includes it was getting transitively.
The first acceptance bullet is only partly verified. The changed
translation unit compiles with no diagnostic under both the debug flags
and the release flags (O3 -DNDEBUG), taken from compile_commands.json.
The wider debug and release sweeps reached 800 of 4162 and 200 of 563
translation units with no diagnostic before they were stopped, so the
rest of the tree is not covered by them.
The second bullet is not verified locally at all. The Continuous Linux
workflows carry no pull_request trigger, so the gcc debug and release
jobs can only be observed on the next scheduled run after merge.
The third bullet is partly observed. The Windows and MacOS runs on 8892520f are past the setup step that failed before, and their build jobs are still running.