STORAGE_CLASS_TYPEDEF,
STORAGE_CLASS_AUTO,
STORAGE_CLASS_REGISTER,
- STORAGE_CLASS_THREAD,
- STORAGE_CLASS_THREAD_EXTERN,
- STORAGE_CLASS_THREAD_STATIC,
} storage_class_tag_t;
typedef unsigned char storage_class_t;
typedef enum decl_modifier_t {
+ DM_NONE = 0,
DM_DLLIMPORT = 1 << 0,
DM_DLLEXPORT = 1 << 1,
DM_THREAD = 1 << 2,
struct compound_t {
entity_base_t base;
+ entity_t *alias; /* used for name mangling of anonymous types */
scope_t members;
decl_modifiers_t modifiers;
bool complete : 1;
struct enum_t {
entity_base_t base;
+ entity_t *alias; /* used for name mangling of anonymous types */
bool complete : 1;
/* ast2firm info */
struct variable_t {
declaration_t base;
+ bool thread_local : 1; /**< GCC __thread */
bool address_taken : 1; /**< Set if the address of this declaration was taken. */
bool read : 1;
unsigned char alignment; /**< Alignment of the declaration, 0 for default. */