Call graph: calls missed after a prefix ++/-- in the same expression (C --x[f()], Java for(;;--i, x.f())) and inside Java synchronized blocks

クローズ
#5,633 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
c, csharp, java, python

調査の方向性

Start with the call-extraction logic exercised by the independent body oracle in #5630, then inspect the cited examples in p_acs.c, Blocks.java, Rectangles.java, Engine.java, DoomFrame.java, and PathTraversal.cs. Add tests for prefix increment/decrement calls, Java synchronized blocks, and the isolated C# miss across the supported C-family languages. Done means the oracle reports zero misses for these shapes and any golden drift is explained.

索引モデルが issue の本文から書いたものです。

説明

bug core-engine metrics needs:doom-corpus priority: medium scope:core

Problem

Small, cross-language call-extraction shapes found by the independent body oracle (engine 0e2bf4ade):

  1. A call after a prefix --/++ in the same expression is missed.
    • C, chocolate-doom src/hexen/p_acs.c:1389-1401: --ACScript->vars[ReadScriptVar()], --MapVars[ReadMapVar()], --WorldVars[ReadWorldVar()] (also 3 in dsda-doom).
    • Java, mochadoom src/v/graphics/Blocks.java:129: for (; times > 0; --times, rel.shift(blockWidth)) (and Rectangles.java:47).
  2. Java: functions whose body is a synchronized (X.class) { ... } block record no calls (2 of the 6 such functions in mochadoom): src/mochadoom/Engine.java:147 getEngine has new Engine(), Logger.getLogger(Engine.class.getName()).log(...), new Error(...) and records []; also src/awt/DoomFrame.java:145 getGraphics2D. Determine whether synchronized, the .class literal or the nested try/catch is the trigger.
  3. One isolated C# miss to explain: managed-doom ManagedDoom/src/Doom/World/PathTraversal.cs:71 s1 = Geometry.PointOnDivLineSide(...) inside AddLineIntercepts.

Acceptance

  • Tests per shape (C, Java, and the C-family languages sharing the call rule); the oracle in #5630 reports 0 for these shapes on the licensed DOOM ports; goldens with drift explained.

Found by the DOOM corpus call-graph checks (independent body oracle + mochadoom/kocoa-doom pairwise consensus; #5630, #5457). Licensed ports only.

🤖 Generated with Claude Code

主要言語
Python
スター
57
フォーク
11
平均マージ
1時間 26分
マージ済み PR(30日)
974

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

squid-protocol/gitgalaxy のほかの issue

squid-protocol/gitgalaxy の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。