From 675ad6dc6889dfd69f98a7393d52fdac3796f57e Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Thu, 16 Jun 1994 01:02:18 +0000 Subject: [PATCH] Fri Jun 3 17:25:08 1994 Pat Rankin (rankin@eql.caltech.edu) * config/obj-vms.h (DBG_S_C_COMPLX4, DBG_S_C_COMPLX8): define these new VMS symbol-type macros for `complex float' and `complex double' support. Their values come from the existing DSC$K_DTYPE_FC and DSC$K_DTYPE_DC macros in . (DBG_S_C_REAL8_G, DBG_S_C_COMPLX8_G): G_float versions of REAL8 and COMPLX8; not used yet, because gcc outputs the same .stabs for `double' regardless of whether `-mg' is used. config/obj-vms.c (VMS_typedef_parse) [case 'r']: add entries for gcc2's predefined types "complex float", "complex double", and "complex long double" (identical to complex double). --- gas/config/obj-vms.c | 22 +++++++++++++++++++++- gas/config/obj-vms.h | 6 +++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/gas/config/obj-vms.c b/gas/config/obj-vms.c index fe0465b..fce7fc3 100644 --- a/gas/config/obj-vms.c +++ b/gas/config/obj-vms.c @@ -2466,9 +2466,29 @@ VMS_typedef_parse (str) spnt->VMS_type = DBG_S_C_UQUAD; /* unsigned quadword */ spnt->data_size = 8; } + else if (type_check ("complex float")) + { + spnt->VMS_type = DBG_S_C_COMPLX4; + spnt->data_size = 2 * 4; + } + else if (type_check ("complex double")) + { + /* caveat: this assumes D_float, and is not correct for G_float */ + spnt->VMS_type = DBG_S_C_COMPLX8; + spnt->data_size = 2 * 8; + } + else if (type_check ("complex long double")) + { + /* same as complex double, at least for now */ + spnt->VMS_type = DBG_S_C_COMPLX8; + spnt->data_size = 2 * 8; + } else { - /* something more substantial ought to be done here */ + /* [pr] + * Shouldn't get here, but if we do, something + * more substantial ought to be done... + */ spnt->VMS_type = 0; spnt->data_size = 0; } diff --git a/gas/config/obj-vms.h b/gas/config/obj-vms.h index c645059..8470d27 100644 --- a/gas/config/obj-vms.h +++ b/gas/config/obj-vms.h @@ -427,7 +427,11 @@ extern int vms_resolve_symbol_redef (); #define DBG_S_C_SLINT 0x08 #define DBG_S_C_SQUAD 0x09 #define DBG_S_C_REAL4 0x0a -#define DBG_S_C_REAL8 0x0b /* D_float (G_float is 0x1b) */ +#define DBG_S_C_REAL8 0x0b /* D_float double */ +#define DBG_S_C_COMPLX4 0x0c /* 2xF_float complex float */ +#define DBG_S_C_COMPLX8 0x0d /* 2xD_float complex double */ +#define DBG_S_C_REAL8_G 0x1b /* G_float double */ +#define DBG_S_C_COMPLX8_G 0x1d /* 2xG_float complex double */ #define DBG_S_C_FUNCTION_ADDR 0x17 #define DBG_S_C_ADVANCED_TYPE 0xa3 /* These are the codes that are used to generate the definitions of struct -- 2.7.4