Мне нужно обновить адресное пространство свойств в некоторых структурах модуля llvm. Достаточно просто обновить один тип структуры, клонируя его на новый тип с соответствующим новым типом структуры. Это требует рекурсивного применения метода для любых дочерних структур, но работает нормально.Как изменить тип структуры в модуле llvm?
Но моя задача - как обновить использование этой структуры в модуле? Есть две проблемы, которые я вижу:
- Нет очевидного способа запроса, который
Values
s использует старый тип структуры? - возможно иметь типы указателей, которые также используют старый тип, поэтому мне нужно будет искать их тоже, возможно, путем поиска исчерпывающего каждого типа указателя, с которым я сталкиваюсь?
Несомненно, 'Value :: uses()' применяется только к значению, а не по типу. Я не использую константу, это структура, используемая как аргумент функции, и во всей этой функции, и в других функциях внутри одного и того же модуля. –