case TYPE_ATOMIC: {
const atomic_type_t *const atomic_type = &type->atomic;
switch (atomic_type->akind) {
- /* should not be reached */
- case ATOMIC_TYPE_INVALID:
- tc = no_type_class;
- goto make_const;
-
/* gcc cannot do that */
case ATOMIC_TYPE_VOID:
tc = void_type_class;
static char get_atomic_type_mangle(atomic_type_kind_t kind)
{
switch (kind) {
- case ATOMIC_TYPE_INVALID: break;
case ATOMIC_TYPE_VOID: return 'v';
case ATOMIC_TYPE_WCHAR_T: return 'w';
case ATOMIC_TYPE_BOOL: return 'b';
const char *get_atomic_kind_name(atomic_type_kind_t kind)
{
switch(kind) {
- case ATOMIC_TYPE_INVALID: break;
case ATOMIC_TYPE_VOID: return "void";
case ATOMIC_TYPE_WCHAR_T: return "wchar_t";
case ATOMIC_TYPE_BOOL: return c_mode & _CXX ? "bool" : "_Bool";
assert(size < 32);
atomic_type_kind_t kind = kinds[size];
- if (kind == ATOMIC_TYPE_INVALID) {
+ if (kind == (atomic_type_kind_t)0) {
static const atomic_type_kind_t possible_kinds[] = {
ATOMIC_TYPE_SCHAR,
ATOMIC_TYPE_SHORT,
assert(size < 32);
atomic_type_kind_t kind = kinds[size];
- if (kind == ATOMIC_TYPE_INVALID) {
+ if (kind == (atomic_type_kind_t)0) {
static const atomic_type_kind_t possible_kinds[] = {
ATOMIC_TYPE_UCHAR,
ATOMIC_TYPE_USHORT,
/* note that the constant values represent the rank of the types as defined
* in ยง 6.3.1 */
typedef enum atomic_type_kind_t {
- ATOMIC_TYPE_INVALID = 0,
- ATOMIC_TYPE_VOID,
+ ATOMIC_TYPE_VOID = 1,
ATOMIC_TYPE_BOOL,
ATOMIC_TYPE_WCHAR_T, /* only used in C++, in C code wchar_t is a pp-macro */
ATOMIC_TYPE_CHAR,
type_t *type_valist;
/* microsoft types */
-atomic_type_kind_t int8_type_kind = ATOMIC_TYPE_INVALID;
-atomic_type_kind_t int16_type_kind = ATOMIC_TYPE_INVALID;
-atomic_type_kind_t int32_type_kind = ATOMIC_TYPE_INVALID;
-atomic_type_kind_t int64_type_kind = ATOMIC_TYPE_INVALID;
-atomic_type_kind_t int128_type_kind = ATOMIC_TYPE_INVALID;
-atomic_type_kind_t unsigned_int8_type_kind = ATOMIC_TYPE_INVALID;
-atomic_type_kind_t unsigned_int16_type_kind = ATOMIC_TYPE_INVALID;
-atomic_type_kind_t unsigned_int32_type_kind = ATOMIC_TYPE_INVALID;
-atomic_type_kind_t unsigned_int64_type_kind = ATOMIC_TYPE_INVALID;
-atomic_type_kind_t unsigned_int128_type_kind = ATOMIC_TYPE_INVALID;
+atomic_type_kind_t int8_type_kind;
+atomic_type_kind_t int16_type_kind;
+atomic_type_kind_t int32_type_kind;
+atomic_type_kind_t int64_type_kind;
+atomic_type_kind_t int128_type_kind;
+atomic_type_kind_t unsigned_int8_type_kind;
+atomic_type_kind_t unsigned_int16_type_kind;
+atomic_type_kind_t unsigned_int32_type_kind;
+atomic_type_kind_t unsigned_int64_type_kind;
+atomic_type_kind_t unsigned_int128_type_kind;
type_t *type_int8;
type_t *type_int16;