Tagged arrays not being initialized correctly with `...` syntax
まだ誰も着手していません。
評価
調査の方向性
まず Pawn compiler 3.10.11 で MVCE を再現し、タグ付き enum サイズの初期化と整数サイズ形式を比較します。両方の宣言について、コンパイラーが { 5, ... } をどのように処理するかを追跡します。タグ付き形式がすべての要素で 5 を繰り返し、期待される出力と一致すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Compiler version: Pawn compiler 3.10.11 downloaded from open.mp v1.4.0.2779 server build
When initializing an array using a tagged enum size with the ellipsis (...) syntax, the array is not being properly initialized. Specifically, elements after the first one are set to 0 instead of being repeated as expected.
MVCE:
enum e_TEST_ENUM {
TEST_ITEM_1,
TEST_ITEM_2,
TEST_ITEM_3,
TEST_ITEM_4
};
new NotWorking[e_TEST_ENUM] = { 5, ... };
const TEST_ENUM_SIZE = _:e_TEST_ENUM;
new Working[e_TEST_ENUM:TEST_ENUM_SIZE] = { 5, ... };
#assert sizeof NotWorking == sizeof Working
main() {
for(new i = 0; i != sizeof NotWorking; ++ i) {
printf("%d, %d", NotWorking[e_TEST_ENUM:i], Working[e_TEST_ENUM:i]);
}
}
Output:
5, 5
0, 5
0, 5
0, 5
Expected behavior:
5, 5
5, 5
5, 5
5, 5
- 主要言語
- C
- スター
- 23
- フォーク
- 17
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
openmultiplayer/compiler のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
openmultiplayer/compiler#4 · コメント 3 件 ·
openmultiplayer/compiler の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
FujiNetWIFI/fujinet-lib#115 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
firmware: transmit() doesn't reset rfTxCurBufIdx, so RFxmit after RFxmitLong can send wrong bytes対応中かも @hermes-crew-337 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
atlas0fd00m/rfcat#182 ·
-
followup
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 4 日以内に返信
-
question
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100