以前話したgcc6809のビルドに潜んでるバグについてのchatGPTとの 会話ログがダウンロードできたのでそこから該当部分を抜粋して上げる。 まず、会話の概要は SBC6809用の一文字出力関数を作って、「hell world」させるだけのものを作ろうとしたのだが まともに動かない、ステップトレースして putch関数を呼び出すだけ呼び出して、戻って来ることなく PCが際限なくカウントされ続け、想定外の位置でフォールトする。 で、調べて判ったのが関数の始点(prolog)はあるが、終点(epilog)が出てない。 その事について、該当ビルドフォルダの精査などについて相談した chatGPTとの会話が以下になる。 -------------------------------------------------------------- # 今回の症状をコードと対応させると `_putch` では、 ```asm pshs u leas -1,s leau ,s ``` が出ているので、 ```c emit_prologue_insns() ``` は動いています。 一方、 ```asm leas 1,s puls u,pc ``` が全く出ていないので、 ```c emit_epilogue_insns() ``` が動いていない可能性が高いです。 **これはかなり強い状況証拠です。** 次に `TARGET_EXPAND_EPILOGUE` 周辺の grep 結果を見れば、どこが抜けているかを具体的に特定できます。 特にこの結果をください。 ```bash grep -R -n -A8 -B8 \ -E 'TARGET_EXPAND_PROLOGUE|TARGET_EXPAND_EPILOGUE|TARGET_ASM_FUNCTION_PROLOGUE|TARGET_ASM_FUNCTION_EPILOGUE' \ gcc/config/m6809 ``` ここで**プロローグを呼ぶフックはあるのに、エピローグのフックだけ未登録**なら、今回の症状を直接説明できます。 user $ grep -n -E 'emit_prologue_insns|emit_epilogue_insns|prologue_epilogue_requi...