aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@cygnus>1994-06-16 01:02:18 +0000
committerKen Raeburn <raeburn@cygnus>1994-06-16 01:02:18 +0000
commit675ad6dc6889dfd69f98a7393d52fdac3796f57e (patch)
treec7d059c47bfce312f67fe3b70d129826540997bb
parent54eacbe683ddaa9c5ba6a3ab576d21344bf16802 (diff)
downloadgdb-675ad6dc6889dfd69f98a7393d52fdac3796f57e.zip
gdb-675ad6dc6889dfd69f98a7393d52fdac3796f57e.tar.gz
gdb-675ad6dc6889dfd69f98a7393d52fdac3796f57e.tar.bz2
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 <descrip.h>. (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).
-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