diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/config/obj-vms.c | 22 | ||||
-rw-r--r-- | 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 |