基本的に実行時のチェックを追加することで呼び出し元/呼び出し先のマッピングを行います。 各C/C++の戻り値が になる前に許容範囲を調べます。仮想関数のすべての戻り値を対応する戻り値のアドレスにマップします
私はすべての仮想オブジェクトディスパッチを、指定されたクラス階層の仮想テーブルエントリ に順方向マッピングしています。 このデータはLLVM LTO中に収集されます。今私は のために同じことをしたいすべての仮想関数が返します。前方マッピングはどの機能がアクセス可能であるべきか私に を教えているので、私は を次の情報を正確に後方にマッピングするように決定する必要があります。
クラン/ LLVMで仮想関数に含まれる各 リターンのリターンアドレスを取得する場所から。コンパイル時に この情報を取得することは可能ですか?
特定のリターンがどの機能に含まれているかを判断する方法。 次の関数が属するクラスを特定する方法は?事前に
おかげで、 ポール
1.もちろん、リターンアドレスは実行時にスタックにプッシュされます。コンパイル時には使用できません。 2.私はこの質問の馬小屋や尻尾をすることはできません。 – EJP
質問を編集して[これまでに試したこと](http://whathaveyoutried.com)を表示してください。問題のあるコードの[mcve]を含める必要があります。次に、特定の問題を解決するために役立つことができます。 [ask]も読んでください。 –