に複数のリターンで関数からASTを構築する私はこの機能を持っています。 これをよく理解すれば、本体のノードはReturnInst *を返します。例えばLLVM
私のASTでは、このボディは2つのノード(式として)に含まれています.1つは最初のifともう1つはもう一方のノードです。
いくつかのトリックやデザインが間違っていますか?
編集:私はちょうどタフきたのかもしれない被-ソリューション:
- CreateAlloca体の開始で。
- CreateStoreを呼び出し、すべてのリターン時にエンドラベルにジャンプします。
- 最後のラベルで、varを返します。
いいですか?そしてllvmでジャンプ/ジャンプする方法は?
ありがとう私はそのサイトを使用します:) –
いいね、リンクありがとう! – Stringer
デモページのC++バックエンドは厳しく時代遅れであり、最近のバージョンのLLVM(3.0)では動作しないコードをレンダリングします。ただし、この特定の構造については問題はありませんが、 APIを理解するための – lurscher