Я пишу компилятор для языка, на котором пользователь может выбирать между вызовом по значению или ссылкой
Последний этап заключается в создании сборки llvm.Я прочитал, что массивы / векторы передаются по ссылке, но я не могу понять, как передать целые числа по ссылке.
Я думал о создании указателя, а затем передать указатель, что-то вроде:
foo(ref var1) { var1 = var1 + 1 }
main { a=1; foo(a); }
переводится на
foo(int* var1) { (*var1) = (*var1) + 1 }
main {a=1; foo(&a ); }
, но я не могу найти, как это сделать в llvm.
Любые идеи, как об указателях, так и о том, как вызывать аргумент по ссылке, были бы потрясающими (янадеюсь, что это не слишком большой вопрос RTFM: /)