Skip to content

C++ MOODYCAMEL_CONSTEXPR_IF/CATCH blocks are statements; oracle names template dtor calls; re-bless eternity (Part of #5630) - #6764

Merged
squid-shepherd[bot] merged 1 commit into
mainfrom
churn/5630-20261027T0429Z
Oct 27, 2026
Merged

squid-shepherd[bot] merged 1 commit into
mainfrom
churn/5630-20261027T0429Z

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #5630 (slice 6).

What

  • cpp.py: MOODYCAMEL_CONSTEXPR_IF (c) {..} and MOODYCAMEL_CATCH(...) {..} open a block like if/catch; they were read as functions (eternity concurrentqueue.h: 12 phantom units, the enclosing function lost the block's calls). Same negative-lookahead mechanism as the IFVM / DE_FOR_EACH macros.
  • callgraph_oracle.py: text fallback now names a template destructor call p->~TArray<FString>() as ~TArray (template args between the name and (). The engine already did.
  • Tests: test_cpp_vm_call_macro_5630.py (3 shapes + calls stay in caller), test_callgraph_oracle.py (template dtor, a = b < c; not misread).
  • Re-bless: DOOM-rosetta eternity only (functions 7332 -> 7320, callgraph_misses 20 -> 8, recall 0.9987 -> 0.9995; all in concurrentqueue.h). Call-graph baseline regenerated at 590c805 (23 ports): eternity unparsed 12 -> 3, statement 8 -> 5. Language-crucible goldens (both legs): no drift.

Gates

pr_gates --fast 9/9, --ratchets 9/9, 0 skipped.

Class / Sibling gaps

Class: C/C++ macros that open a block like a control keyword (if, catch, for) and so look like a function header to func_start. Handled: DE_FOR_EACH*/DE_FOR_OBSERVERS/DE_NOTIFY* (#6756), IFVM/IFVIRTUAL* (#6760), MOODYCAMEL_CONSTEXPR_IF/MOODYCAMEL_CATCH (here). Sibling gaps: MOODYCAMEL_TRY { (no parens, not matched as a function: no change needed); gzdoom miss:statement residue (macros TriggerSectorActions, ScreenJobValidate); doomsday ~230 absent class-head edges; libclang C-subset reference (#3784). The block-macro list is per-name: a general rule (all-caps identifier + (...) + { at statement level inside a function body) would cover unseen macros but needs its own proof.

Remaining slices

None for this scope.

🤖 Generated with Claude Code

… not functions; oracle names template destructor calls; re-bless eternity (Part of #5630)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol added the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Oct 27, 2026
@squid-shepherd

Copy link
Copy Markdown
Contributor

No description provided.

@squid-shepherd
squid-shepherd Bot marked this pull request as ready for review October 27, 2026 05:12
@squid-shepherd

Copy link
Copy Markdown
Contributor

No description provided.

@squid-shepherd
squid-shepherd Bot enabled auto-merge (squash) October 27, 2026 05:12
@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-shepherd
squid-shepherd Bot merged commit 0801eb0 into main Oct 27, 2026
123 checks passed
@squid-shepherd
squid-shepherd Bot deleted the churn/5630-20261027T0429Z branch October 27, 2026 05:22
@squid-protocol squid-protocol added shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md labels Oct 27, 2026
@squid-shepherd

Copy link
Copy Markdown
Contributor

No description provided.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant