Skip to content

Fix issue_400 terminal propagation and stabilize issue tests#7

Merged
gabewillen merged 3 commits into
issues-testfrom
fix/issue-400-terminal-propagation
Feb 23, 2026
Merged

Fix issue_400 terminal propagation and stabilize issue tests#7
gabewillen merged 3 commits into
issues-testfrom
fix/issue-400-terminal-propagation

Conversation

@gabewillen

Copy link
Copy Markdown

Summary

  • fix terminal propagation behavior for nested sub-state-machine transitions (issue_400)
  • harden dispatch table lookup bounds to avoid UB for out-of-range ids (issue_174 path)
  • stabilize filesystem-dependent issue tests under CTest working directories
  • keep clang-analyzer false positive from failing gates for issue_458 test path

Validation

  • ran ./scripts/quality_gates.sh
  • format, clang-tidy, regression matrix, sanitizers, coverage, and benchmark smoke all passed

Copilot AI review requested due to automatic review settings February 23, 2026 19:52

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses multiple “issue_*” regressions and hardens runtime behavior in Boost.SML, focusing on correct terminal-state propagation for nested sub-state-machines and improving test stability across differing CTest working directories.

Changes:

  • Propagate sub-state-machine termination to matching parent transitions for the same event (issue_400).
  • Add bounds checking to dispatch table indexing to avoid out-of-range UB (issue_174 path).
  • Stabilize/adjust filesystem-dependent issue tests and reduce analyzer-related flakiness in CI.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
include/boost/sml.hpp Implements termination propagation logic and makes is_terminated() SFINAE-safe when no terminate state exists.
include/boost/sml/utility/dispatch_table.hpp Adds range checks around dispatch table indexing.
test/ft/issues_test.cpp Updates issue tests for stable paths, adjusts expectations for fixed behaviors, and adds analyzer guard for a false positive.
scripts/quality_gates.sh Adds Clang-only warning suppressions to avoid specific warnings failing -Werror gates.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/quality_gates.sh Outdated
Comment thread include/boost/sml/utility/dispatch_table.hpp Outdated
@gabewillen gabewillen merged commit 39651c3 into issues-test Feb 23, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants