aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/config/obj-vms.c22
-rw-r--r--gas/config/obj-vms.h6
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