Есть ли способ получить тип перечисления значения в древовидной структуре 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. Я пока не могу извлечь из этого, что это значение фактически является значением перечисления.

Есть ли способ сделать это?

0 ответов

Другие вопросы по тегам