Я пишу плагин G CC для G CC 9, и у меня возникает следующая проблема:
Представьте себе простую инициализацию:
enum en{ENUM_VAL1, ENUM_VAL2, ...};
int a = ENUM_VAL1;
То, что я хотел бы, чтобы это было в состоянии сделать, - это извлечение информации о том, что значение a является значением enum, определенным перечислением en.
Что я делаю в данный момент подключается к событию PLUGIN_ON_FINISH_DECL, давая мне дерево VAR_DECL, представляющее это объявление.
Используя макрос DECL_INITIAL, я могу получить узел значения этого объявления. Однако возвращенный узел этого макроса является узлом INTEGER_CST. Я до сих пор не могу извлечь из этого, что это значение на самом деле является значением перечисления.
Есть ли способ сделать это?