Я знаю, что это очень трудно сделать, и что мне следует этого избегать, но у меня есть свои причины для этого.
Я хочу изменить порядок некоторых объявлений полей во время компиляции, например:
class A {
char c;
int i;
}
должен обратиться к:
class A {
int i;
char c;
}
если я решил поменять порядок i
а также c
,
Я хочу знать, как изменить location
объявления поля, имеющего tree
Кто-нибудь знает, как я могу это сделать?
Спасибо !
Я использую версию плагинов g ++ 4.9.2
Если бы я собирался попробовать это, я бы попробовал два разных подхода.
Зацепиться за PLUGIN_FINISH_TYPE
событие и переписать тип там. Чтобы переписать его, измените порядок полей и принудительно введите тип реле. Вам нужно будет немного прочитать исходный код GCC, чтобы понять, как сделать макет недействительным и создать новый.
Если это не сработало, добавьте новый проход, который выполняется сразу после упрощения, и попробуйте переписать там типы. Я подозреваю, что это вряд ли сработает, хотя.