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:
Tom Tromey
2020-04-01 14:09:52 -06:00
committed by Tom Tromey
parent 3d1cfd43be
commit 5b930b4538
10 changed files with 71 additions and 57 deletions

View File

@ -1429,13 +1429,11 @@ basic_type (int bt, struct objfile *objfile)
break;
case btComplex:
tp = init_complex_type (objfile, "complex",
basic_type (btFloat, objfile));
tp = init_complex_type ("complex", basic_type (btFloat, objfile));
break;
case btDComplex:
tp = init_complex_type (objfile, "double complex",
basic_type (btFloat, objfile));
tp = init_complex_type ("double complex", basic_type (btFloat, objfile));
break;
case btFixedDec: