TCE失敗時にエラーが出ない問題 factorialでテストした時に、-O2だとひとつだけcallのfactorialがあった。 code segmentのTCEチェックはtail callの条件チェック後に行っていたのにエラーが出なかった。
TCE失敗時にエラーが出ない問題(調査結果) 最適化によって、計算処理を全部main内で行っていた。 print_factorialだけが使用されて、mainから直接呼び出されていた。 アセンブリファイルに色々残っているけど実際は下のmainの部分しか通らない。 llvmアセンブリコードより。
TCE失敗時にエラーが出ない問題、TCEされない問題 callとなっていたprint_factorialはmainから呼ばれているのでcallなのは当然。 code segmentからcode segmentへのgotoじゃないのでエラーが出ないのも当然。