struct c_switch { /* The SWITCH_EXPR being built. */ tree switch_expr;
/* The original type of the testing expression, i.e. before the default conversion is applied. */ tree orig_type;
/* A splay-tree mapping the low element of a case range to the high element, or NULL_TREE if there is no high element. Used to determine whether or not a new case label duplicates an old case label. We need a tree, rather than simply a hash table, because of the GNU case range extension. */ splay_tree cases;
/* The bindings at the point of the switch. This is used for warnings crossing decls when branching to a case label. */ struct c_spot_bindings *bindings;
/* The next node on the stack. */ struct c_switch *next;
/* Remember whether the controlling expression had boolean type before integer promotions for the sake of -Wswitch-bool. */ bool bool_cond_p;
/* Remember whether there was a case value that is outside the range of the ORIG_TYPE. */ bool outside_range_p; };
GCC主要数据结构之c_switch
最新推荐文章于 2023-03-02 20:13:46 发布