インライン化されない次の関数を検討し、プラットフォームとして x86 を想定します。
void doSomething(int & in){
//do something
}
まず、そのようなシナリオが発生するかどうかはわかりませんが、可能だと思うので、呼び出し元でこの関数が呼び出されるたびに、提供される引数が呼び出し元のスタックフレームの正確に一番上にあるように尋ねるつもりです。呼び出された関数は、アセンブリ言語で ebp レジスタ (呼び出し先が esp の内容を ebp に移動した後) を介してアクセスすることが可能です。関数定義をそのままにして、それが何をするかをコンパイラに任せますか? コンパイラーがそのような例外的なケースを呼び出し規則の要因と見なすことをどこにも読んだことがないので、引数へのポインターを呼び出し先スタックフレームまたはレジスターの1つに渡すコードを生成するだけだと思います