Я пишу компилятор моего языка для LLVM-IR. Я определил некоторый тип структуры, представляющий собой массив:LLVM malloc массив указателей
{ i32, [ 0 x i32] }
Теперь мне нужно Alloc память для реального массива указателей на эти структур, т.е.
[{ i32, [ 0 x i32] }* x 10]
Но сказать таНос выделить память , Мне нужен размер указателя. Как я могу это узнать?
P.S. Я вижу, что 8 байт на указатель должны быть в порядке, так как там не существует архитектуры с большими указателями, но я ищу более общее решение.
Это не работает для меня, так как я генерируя текстовое представление от LLVM-IR. Есть ли способ сделать это в таком случае? – ki92
Что вы имеете в виду с текстовым представлением? Представление DataLayout в текстовой форме для модуля. Если вы укажете свои указатели на 8 байт в вашем DL, то размер вашего malloc всегда будет 8 для типа указателя. –
Я имею в виду, что я создаю текстовый файл, который затем скомпилирован в биткод с использованием 'llvm-as' и не использует API. – ki92