Remove TYPE_NOSIGN "char" hack
init_type (and arch_integer_type) currently use a special hack to set the TYPE_NOSIGN flag if the type name is exactly "char". This commit moves the hack up to the callers of those routines. The special case currently can hit only for types created from dwarf2read, but read_base_type actually implements the "char" check itself, so it is redundant to do it in init_type as well. (Note that stabsread.c and the other type readers always pass NULL as name to init_type, so the special case can never hit for those.) A few other cases create pre-definded types with a hard-coded name of "char"; the commit simply moves setting the TYPE_NOSIGN flag to those places. No functional change intended. gdb/ChangeLog: * gdbtypes.c (init_type): Remove "char" special case. (arch_integer_type): Likewise. (gdbtypes_post_init): Set TYPE_NOSIGN for "char" type. (objfile_type): Likewise. * mdebugread.c (basic_type): Likewise. * stabsread.c (rs6000_builtin_type): Likewise. Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
This commit is contained in:
parent
a9ff5f12cf
commit
c413c44801
|
@ -1,3 +1,12 @@
|
|||
2016-09-05 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* gdbtypes.c (init_type): Remove "char" special case.
|
||||
(arch_integer_type): Likewise.
|
||||
(gdbtypes_post_init): Set TYPE_NOSIGN for "char" type.
|
||||
(objfile_type): Likewise.
|
||||
* mdebugread.c (basic_type): Likewise.
|
||||
* stabsread.c (rs6000_builtin_type): Likewise.
|
||||
|
||||
2016-09-05 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* gdbtypes.h (enum type_flag_value): Remove.
|
||||
|
|
|
@ -2748,11 +2748,6 @@ init_type (struct objfile *objfile, enum type_code code, int length,
|
|||
TYPE_LENGTH (type) = length;
|
||||
TYPE_NAME (type) = name;
|
||||
|
||||
/* C++ fancies. */
|
||||
|
||||
if (name && strcmp (name, "char") == 0)
|
||||
TYPE_NOSIGN (type) = 1;
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
|
@ -4780,8 +4775,6 @@ arch_integer_type (struct gdbarch *gdbarch,
|
|||
t = arch_type (gdbarch, TYPE_CODE_INT, bit / TARGET_CHAR_BIT, name);
|
||||
if (unsigned_p)
|
||||
TYPE_UNSIGNED (t) = 1;
|
||||
if (name && strcmp (name, "char") == 0)
|
||||
TYPE_NOSIGN (t) = 1;
|
||||
|
||||
return t;
|
||||
}
|
||||
|
@ -5046,6 +5039,7 @@ gdbtypes_post_init (struct gdbarch *gdbarch)
|
|||
builtin_type->builtin_char
|
||||
= arch_integer_type (gdbarch, TARGET_CHAR_BIT,
|
||||
!gdbarch_char_signed (gdbarch), "char");
|
||||
TYPE_NOSIGN (builtin_type->builtin_char) = 1;
|
||||
builtin_type->builtin_signed_char
|
||||
= arch_integer_type (gdbarch, TARGET_CHAR_BIT,
|
||||
0, "signed char");
|
||||
|
@ -5193,6 +5187,7 @@ objfile_type (struct objfile *objfile)
|
|||
objfile_type->builtin_char
|
||||
= init_integer_type (objfile, TARGET_CHAR_BIT,
|
||||
!gdbarch_char_signed (gdbarch), "char");
|
||||
TYPE_NOSIGN (objfile_type->builtin_char) = 1;
|
||||
objfile_type->builtin_signed_char
|
||||
= init_integer_type (objfile, TARGET_CHAR_BIT,
|
||||
0, "signed char");
|
||||
|
|
|
@ -1408,6 +1408,7 @@ basic_type (int bt, struct objfile *objfile)
|
|||
|
||||
case btChar:
|
||||
tp = init_integer_type (objfile, 8, 0, "char");
|
||||
TYPE_NOSIGN (tp) = 1;
|
||||
break;
|
||||
|
||||
case btUChar:
|
||||
|
|
|
@ -2102,6 +2102,7 @@ rs6000_builtin_type (int typenum, struct objfile *objfile)
|
|||
break;
|
||||
case 2:
|
||||
rettype = init_integer_type (objfile, 8, 0, "char");
|
||||
TYPE_NOSIGN (rettype) = 1;
|
||||
break;
|
||||
case 3:
|
||||
rettype = init_integer_type (objfile, 16, 0, "short");
|
||||
|
|
Loading…
Reference in New Issue