このブログ投稿、このドキュメントページ、およびこの例を読みましたが、C++以外の言語でLLVMのIRBuilderを使用して基本的な例外をスローする方法をまだ理解していません。
私の理解から、私はしなければなりません:
llvm::Value
スローされた値を含むを作成します。- 「関数」を呼び出して、スローされた値を渡します。この関数は戻りません。
この例では、C ++例外をスローするためにシステム巻き戻し関数(_Unwind_RaiseException
)を使用していますが、代わりに独自のレイズ関数を使用する方法がよくわかりません(オブジェクトポインターをスローするだけでよいため)。私は何が欠けていますか?