From ecbc5c4f9059dd483cf8b0705cbd4e2e9606aad5 Mon Sep 17 00:00:00 2001 From: Felix Willgerodt Date: Mon, 13 Feb 2023 11:02:23 +0100 Subject: [PATCH] gdb, fortran: Fix quad floating-point type for ifort compiler. I fixed this a while ago for ifx, one of the two Intel compilers, in 8d624a9d8050ca96e154215c7858ac5c2d8b0b19. Apparently I missed that the older ifort Intel compiler actually emits slightly different debug info again: 0x0000007a: DW_TAG_base_type DW_AT_byte_size (0x20) DW_AT_encoding (DW_ATE_complex_float) DW_AT_name ("COMPLEX(16)") 0x00000081: DW_TAG_base_type DW_AT_byte_size (0x10) DW_AT_encoding (DW_ATE_float) DW_AT_name ("REAL(16)") This fixes two failures in gdb.fortran/complex.exp with ifort. Approved-By: Tom Tromey --- gdb/i386-tdep.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index da4950ac259..acf22dba98d 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -8238,12 +8238,14 @@ 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(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 + || strcmp (name, "REAL(16)") == 0) return floatformats_ieee_quad; return default_floatformat_for_type (gdbarch, name, len); -- 2.30.2