llvm GEP, какова цель первого типа - PullRequest
0 голосов
/ 17 мая 2019

Я новичок в llvm, и в инструкции GEP мне было интересно, какова цель первого указанного типа. Если я изменю его на любой другой тип, отличный от MyType, я получу следующее сообщение об ошибке. Так зачем мне вообще это явно указывать и какова его цель?

error: explicit pointee type doesn't match operand's pointee type

getelementptr %MyType, %MyType* %7, i64 0, i32 0

1 Ответ

0 голосов
/ 18 мая 2019

Существует общий план в конечном итоге отбросить второй тип, сделав указатель единственным типом указателя.В настоящее время LLVM содержит несколько переходных механизмов, которые действительно имеют смысл только в контексте этого перехода.

Когда этот переход будет завершен (в этом году - в следующем - кто знает), тип результата GEP будет зависеть от его первого аргумента.Во время этого перехода GEP проверяет, что первый и второй аргументы не подразумевают разные типы результатов.

...