Skip to content

fix(gcc): silence GCC CI false positives (-Wmaybe-uninitialized, -Wtsan)#293

Merged
mvandeberg merged 1 commit into
cppalliance:develop-2from
mvandeberg:pr/gcc-maybe-uninit
Jun 30, 2026
Merged

fix(gcc): silence GCC CI false positives (-Wmaybe-uninitialized, -Wtsan)#293
mvandeberg merged 1 commit into
cppalliance:develop-2from
mvandeberg:pr/gcc-maybe-uninit

Conversation

@mvandeberg

Copy link
Copy Markdown
Contributor

GCC mis-analyzes the structured-binding-from-co_await idiom (auto [ec, ...] = co_await op) inside coroutine frames and reports a bogus -Wmaybe-uninitialized. The pattern is the core async API and is used by most async tests, so suppress it for GCC across the test project (the library itself is warning-clean). Mirrors capy.

Also wrap the two POSIX scheduler post_handler acquire fences (reactor_scheduler, io_uring_scheduler) with the existing -Wtsan suppression macros. TSan cannot instrument standalone fences; these acquire fences pair with the posting thread's release and are intentional. They compile only on Linux, so they slipped past every non-tsan job and failed solely under GCC 15 + -fsanitize=thread, matching the suppression already applied in continuation_op.hpp.

GCC mis-analyzes the structured-binding-from-co_await idiom
(auto [ec, ...] = co_await op) inside coroutine frames and reports a
bogus -Wmaybe-uninitialized. The pattern is the core async API and is
used by most async tests, so suppress it for GCC across the test
project (the library itself is warning-clean). Mirrors capy.

Also wrap the two POSIX scheduler post_handler acquire fences
(reactor_scheduler, io_uring_scheduler) with the existing -Wtsan
suppression macros. TSan cannot instrument standalone fences; these
acquire fences pair with the posting thread's release and are
intentional. They compile only on Linux, so they slipped past every
non-tsan job and failed solely under GCC 15 + -fsanitize=thread,
matching the suppression already applied in continuation_op.hpp.
@cppalliance-bot

Copy link
Copy Markdown

An automated preview of the documentation is available at https://293.corosio.prtest3.cppalliance.org/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-06-30 16:24:17 UTC

@cppalliance-bot

Copy link
Copy Markdown

GCOVR code coverage report https://293.corosio.prtest3.cppalliance.org/gcovr/index.html
LCOV code coverage report https://293.corosio.prtest3.cppalliance.org/genhtml/index.html
Coverage Diff Report https://293.corosio.prtest3.cppalliance.org/diff-report/index.html

Build time: 2026-06-30 16:36:04 UTC

@mvandeberg mvandeberg merged commit f2856d6 into cppalliance:develop-2 Jun 30, 2026
38 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Beast2 Jun 30, 2026
@mvandeberg mvandeberg deleted the pr/gcc-maybe-uninit branch June 30, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants