Hi, I apologize upfront if this email is outside the scope of this email listing.
I've recently wrote an article about "Automatic Enum Stringification in C via Build-Time Code Generation" (https://medium.com/@yair.lenga/automatic-enum-stringification-in-c-via-build-time-code-generation-659b67133125) The short version is that it extracts enum definitions from the debug (DWARF) section, and generates functions: enum labels->values, enum value->enum, enum value iterators. There are no runtime dependencies on DWARF. Sample Code: enum country_code { ISO3_AFG = 4, ... } ; // This macro trigger including of enum metadata structures. ENUM_DESCRIBE(country3, country_code) char * country_label(enum country_code c){ // Use the meta data to lookup matching label return ENUM_LABEL_OF(country3, c) ; } Current implementation relies on python tool (using pyelftools) to extract the enum definition and generate C structures to support the runtime lookup/enumerations. As an experiment, I work on GCC plugin that will perform this generation at compile time - injecting the data structures (mostly name/value pairs) directly into the object file. I have a prototype that works (most of the time ...). It is 'ugly', as this is my first attempt to develop a GCC plugin. Looking for any feedback about the 1, Idea/concept. 2. The implementation of the pugin (Github URL) 3. Is there a path for making it an experimental/official GCC extension? (after cleanup, reviews, adding test cases/, etc.) Github URL:https://github.com/yairlenga/c-enum-reflect/tree/main/gcc-plugin Thanks for you time! Yair
