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