forked from Imagelibrary/binutils-gdb
gdb/fortran: Fix quad floating-point type for Intel compilers.
Intel Fortran compilers emit the following DWARF for gdb.fortran/complex.f90:
0x00000071: DW_TAG_base_type
DW_AT_name ("COMPLEX*32")
DW_AT_encoding (DW_ATE_complex_float)
DW_AT_byte_size (0x20)
0x00000078: DW_TAG_base_type
DW_AT_name ("REAL*16")
DW_AT_encoding (DW_ATE_float)
DW_AT_byte_size (0x10)
This results in GDB not reading the right values, as it wrongly assumes the
default floatformat "floatformat_i387_ext" instead of
"floatformat_ia64_quad_little".
gdb/ChangeLog:
2021-03-15 Felix Willgerodt <felix.willgerodt@intel.com>
* i386-tdep.c (i386_floatformat_for_type): Add COMPLEX*32 and REAL*16.
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
2021-03-15 Felix Willgerodt <felix.willgerodt@intel.com>
|
||||
|
||||
* i386-tdep.c (i386_floatformat_for_type): Add COMPLEX*32 and REAL*16.
|
||||
|
||||
2021-03-15 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* python/python.c (gdbpy_source_objfile_script): Use
|
||||
|
||||
@@ -8162,9 +8162,12 @@ i386_floatformat_for_type (struct gdbarch *gdbarch,
|
||||
|| strcmp (name, "_Float128") == 0
|
||||
|| strcmp (name, "complex _Float128") == 0
|
||||
|| strcmp (name, "complex(kind=16)") == 0
|
||||
|| strcmp (name, "complex*32") == 0
|
||||
|| strcmp (name, "COMPLEX*32") == 0
|
||||
|| strcmp (name, "quad complex") == 0
|
||||
|| strcmp (name, "real(kind=16)") == 0
|
||||
|| strcmp (name, "real*16") == 0)
|
||||
|| strcmp (name, "real*16") == 0
|
||||
|| strcmp (name, "REAL*16") == 0)
|
||||
return floatformats_ia64_quad;
|
||||
|
||||
return default_floatformat_for_type (gdbarch, name, len);
|
||||
|
||||
Reference in New Issue
Block a user