LLVMとJavaVMの相性
最高です。もう発狂するレベル。
仕事でC++のコードをJavaで動かしたいとかってことやらされてて、「C++からLLVMを経由してJavaVMにしてね☆」ってとこのLLVM->JavaVMをやってるんだけど、以下のコード
struct hoge1 { int fuga; }; struct hoge2 { int fuga; };
が、llvm-gccでちゃんと生成されるかの様に見えるんだけど、hoge2のインスタンスを作ろうとすると、hoge1とhoge2のメンバ配置が同じなので、hoge1で作ってctor呼び出しをhoge2のを使うとか。で、出てきたコードをJavaVMにしようとするからctorの型が一致しないって怒られる。
JavaVMは型付けが強いおかげでキャストが出来ないのでLLVMの段階で型の情報が落ちてると死ぬ。
やっぱ言語間変換は可逆な言語使わんと悲しくなるな...
でも仕事だから...