Skip to content

gcc-wrapper: HOMEBREW_PREFIX の test をクォート(常に真になるガードの修正) - #175

Open
k-yoshimi wants to merge 2 commits into
developfrom
fix/169-gcc-wrapper-quoting
Open

gcc-wrapper: HOMEBREW_PREFIX の test をクォート(常に真になるガードの修正)#175
k-yoshimi wants to merge 2 commits into
developfrom
fix/169-gcc-wrapper-quoting

Conversation

@k-yoshimi

Copy link
Copy Markdown
Collaborator

概要

Fixes #169

tools/gcc-wrapper/install.sh[ -n ${HOMEBREW_PREFIX} ] は、変数が空のとき [ -n ] に展開され、POSIX の 1 引数 test(文字列 -n 自体が非空 → 真)として 常に真 になっていました。16 行目の [ -z ${HOMEBREW_PREFIX} ] も同型(こちらは偶然正しく動作)。両方をクォートしました。

検証

  • sh -n で構文チェック OK
  • 挙動の再現確認: unset X; [ -n ${X} ] が真になること(バグ)、[ -n "${X}" ] が偽になること(修正後)を sh で確認済み

🤖 Generated with Claude Code

k-yoshimi and others added 2 commits July 7, 2026 18:00
Unquoted, "[ -n ${HOMEBREW_PREFIX} ]" expands to "[ -n ]" when the
variable is empty, which is always true, so the guard never failed
and the version loop probed paths like /bin/gcc-14.

Fixes #169

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@k-yoshimi

Copy link
Copy Markdown
Collaborator Author

AI review cycle (Codex + Antigravity) 結果

Phase 1 (Codex): must_fix 0 / should_fix 0 / optional 0。brew 不在時に FOUND=0 経路で正しく exit 127 することを確認。

Phase 2 (Antigravity): must_fix_docs 0。指摘への対応:

  • エラーメッセージに解決策(brew install gcc / https://brew.sh)を追記(コミット e5bd6fc、Codex 再レビュー済み・指摘ゼロ)
  • README への Homebrew 前提条件追記は「チュートリアルが Homebrew 手順を記載済み + 実行時メッセージで案内される」ため見送り
  • 「/bin/gcc-N フォールバックが失われる」というリスク指摘は、当該経路がクォートバグの副作用でしかなく(素の macOS に /bin/gcc-N は存在しない)、サポートされたパスではないと判断

→ 両フェーズ収束。

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.

[P2] tools/gcc-wrapper/install.sh: HOMEBREW_PREFIX のクォート漏れで存在チェックが常に真になる

2 participants