+2016-09-05 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * gdbtypes.c (set_type_code): New function.
+ (init_type, arch_type): Use it.
+
2016-09-05 Ulrich Weigand <uweigand@de.ibm.com>
* ada-lang.c (ada_language_arch_info): Use gdbarch_long_double_bit
*(TYPE_GNAT_SPECIFIC (type)) = gnat_aux_default;
}
+/* Helper function to initialize a newly allocated type. Set type code
+ to CODE and initialize the type-specific fields accordingly. */
+
+static void
+set_type_code (struct type *type, enum type_code code)
+{
+ TYPE_CODE (type) = code;
+
+ switch (code)
+ {
+ case TYPE_CODE_STRUCT:
+ case TYPE_CODE_UNION:
+ case TYPE_CODE_NAMESPACE:
+ INIT_CPLUS_SPECIFIC (type);
+ break;
+ case TYPE_CODE_FLT:
+ TYPE_SPECIFIC_FIELD (type) = TYPE_SPECIFIC_FLOATFORMAT;
+ break;
+ case TYPE_CODE_FUNC:
+ INIT_FUNC_SPECIFIC (type);
+ break;
+ }
+}
+
/* Helper function to initialize the standard scalar types.
If NAME is non-NULL, then it is used to initialize the type name.
struct type *type;
type = alloc_type (objfile);
- TYPE_CODE (type) = code;
+ set_type_code (type, code);
TYPE_LENGTH (type) = length;
gdb_assert (!(flags & (TYPE_FLAG_MIN - 1)));
if (name && strcmp (name, "char") == 0)
TYPE_NOSIGN (type) = 1;
- switch (code)
- {
- case TYPE_CODE_STRUCT:
- case TYPE_CODE_UNION:
- case TYPE_CODE_NAMESPACE:
- INIT_CPLUS_SPECIFIC (type);
- break;
- case TYPE_CODE_FLT:
- TYPE_SPECIFIC_FIELD (type) = TYPE_SPECIFIC_FLOATFORMAT;
- break;
- case TYPE_CODE_FUNC:
- INIT_FUNC_SPECIFIC (type);
- break;
- }
return type;
}
\f
struct type *type;
type = alloc_type_arch (gdbarch);
- TYPE_CODE (type) = code;
+ set_type_code (type, code);
TYPE_LENGTH (type) = length;
if (name)