Change how complex types are created
This patch changes how complex types are created. init_complex_type and arch_complex_type are unified, and complex types are reused, by attaching them to the underlying scalar type. gdb/ChangeLog 2020-04-01 Tom Tromey <tom@tromey.com> * stabsread.c (rs6000_builtin_type, read_sun_floating_type) (read_range_type): Update. * mdebugread.c (basic_type): Update. * go-lang.c (build_go_types): Use init_complex_type. * gdbtypes.h (struct main_type) <complex_type>: New member. (init_complex_type): Update. (arch_complex_type): Don't declare. * gdbtypes.c (init_complex_type): Remove "objfile" parameter. Make name if none given. Use alloc_type_copy. Look for cached complex type. (arch_complex_type): Remove. (gdbtypes_post_init): Use init_complex_type. * f-lang.c (build_fortran_types): Use init_complex_type. * dwarf2/read.c (read_base_type): Update. * d-lang.c (build_d_types): Use init_complex_type. * ctfread.c (read_base_type): Update.
This commit is contained in:
parent
3d1cfd43be
commit
5b930b4538
10 changed files with 71 additions and 57 deletions
|
@ -741,14 +741,11 @@ build_fortran_types (struct gdbarch *gdbarch)
|
|||
= arch_type (gdbarch, TYPE_CODE_ERROR, 128, "real*16");
|
||||
|
||||
builtin_f_type->builtin_complex_s8
|
||||
= arch_complex_type (gdbarch, "complex*8",
|
||||
builtin_f_type->builtin_real);
|
||||
= init_complex_type ("complex*8", builtin_f_type->builtin_real);
|
||||
builtin_f_type->builtin_complex_s16
|
||||
= arch_complex_type (gdbarch, "complex*16",
|
||||
builtin_f_type->builtin_real_s8);
|
||||
= init_complex_type ("complex*16", builtin_f_type->builtin_real_s8);
|
||||
builtin_f_type->builtin_complex_s32
|
||||
= arch_complex_type (gdbarch, "complex*32",
|
||||
builtin_f_type->builtin_real_s16);
|
||||
= init_complex_type ("complex*32", builtin_f_type->builtin_real_s16);
|
||||
|
||||
return builtin_f_type;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue