Call graph: macro invocations in a function's header (the defining macro, macros in the parameter list) are recorded as calls (gzdoom 2,327 false edges)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Start in the call-graph extraction code that identifies a function header before { and scans NAME( patterns; separate the defining macro and parameter-list macros from invocations inside the body. Add tests for C and C++ defining macros, TXT_UNCAST_ARG-style parameter macros, and a real macro call in the body. The change is done when headers no longer produce those false edges while body calls remain and the licensed DOOM-port rescan reports zero for these cases.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
For macro-defined functions (#5461/#5563) the defining macro itself is recorded as a callee of the function it defines, and macros in a C parameter list are recorded as calls:
port (engine 0e2bf4ade) |
false edges |
|---|---|
| gzdoom | 2,327 (e.g. src/am_map.cpp am_setmark -> CCMD, am_showalllines -> CUSTOM_CVAR) |
| odamex | 691 (snd_nomusic -> CVAR_FUNC_IMPL) |
| eternity | 669 (winmm_reset_type -> CONSOLE_VARIABLE) |
| doomsday | 339 |
| doom3-bfg | 202 (idkfa -> CONSOLE_COMMAND_SHIP) |
| chocolate-doom | 18 (src/setup/display.c:139 GenerateSizesTable -> TXT_UNCAST_ARG, a macro in the parameter list) |
Counted as: callee is an ALL-CAPS name that appears as NAME( in the function's header (before its body {) and not in the body. Probably a side effect of macro-defined functions becoming functions in #5483: the header line CCMD(map) { is scanned for calls.
Acceptance
- Calls are collected from the body only (or the header's macro invocation that defines the unit is excluded, plus macros used inside the parameter list); a macro called inside the body stays a call.
- Tests per shape (defining macro C and C++,
TXT_UNCAST_ARG-style parameter macro, a real macro call in the body). - Rescan: these counts go to 0 on the licensed DOOM C/C++ ports; goldens with drift explained.
Found by the DOOM corpus call-graph consensus check (#5620, #5457): near-identical ports vote on each call edge, and an independent body oracle re-extracts calls from source. Licensed ports only.
🤖 Generated with Claude Code
- Lingua principale
- Python
- Stelle
- 57
- Fork
- 11
- Merge medio
- 1h 41m
- PR unite (30g)
- 978
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di squid-protocol/gitgalaxy
-
lane:nyx needs:corpus priority: medium testing
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
squid-protocol/gitgalaxy#5784 ·
I maintainer di solito rispondono entro 1 giorno
-
lane:nyx needs:corpus priority: medium testing
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
squid-protocol/gitgalaxy#5783 ·
I maintainer di solito rispondono entro 1 giorno
-
keyword-rosetta: ACS (acs) has no control folder; author data/acs/ and backfill its cost recordApertalane:nyx needs:corpus priority: medium testing
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
squid-protocol/gitgalaxy#5782 ·
I maintainer di solito rispondono entro 1 giorno
-
lane:nyx needs:corpus priority: medium testing
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
squid-protocol/gitgalaxy#5781 ·
I maintainer di solito rispondono entro 1 giorno
-
keyword-rosetta: F# (fsharp) has no control folder; author data/fsharp/ and backfill its cost recordApertalane:nyx needs:corpus priority: medium testing
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
squid-protocol/gitgalaxy#5780 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di squid-protocol/gitgalaxy
Issue simili
-
[Bug]: `hermes plugins update` clones an entire monorepo twice - `subdir` is resolved but dropped at both catalog-update call sitesForse già presa @HootRock l’ha presa oggi. Apertacomp/cli P2 type/perf
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
NousResearch/hermes-agent#142417 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
bug enhancement python
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
DewaldOosthuizen/tech-cheat-sheets-and-notes#392 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
bug p2
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Restore postgresql_vm_test_charm actions.yaml change (removed in canonical/postgresql-operator#2054)Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
canonical/postgresql-single-kernel-library#390 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni