aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-07-31 06:15:53 +0000
committerRichard Stallman <rms@gnu.org>1992-07-31 06:15:53 +0000
commit4ee194ec2ba00f7d19cbc2649b89ceeaa751a4c4 (patch)
treed615cb42cc69fcbdce2236443c9692accd4b3828
parent27f427f88810b4026ab24cd438d5eecb6d7ec007 (diff)
downloadgcc-4ee194ec2ba00f7d19cbc2649b89ceeaa751a4c4.zip
gcc-4ee194ec2ba00f7d19cbc2649b89ceeaa751a4c4.tar.gz
gcc-4ee194ec2ba00f7d19cbc2649b89ceeaa751a4c4.tar.bz2
(dbxout_parms): Do something for structures
passed by invisible reference, and living in memory. From-SVN: r1727
-rw-r--r--gcc/dbxout.c40
1 files changed, 37 insertions, 3 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index 5f9e4b5..d5d2842 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -1920,9 +1920,9 @@ dbxout_parms (parms)
dbxout_finish_symbol (parms);
}
else if (GET_CODE (DECL_RTL (parms)) == MEM
- && GET_CODE (XEXP (DECL_RTL (parms), 0)) == REG
- && rtx_equal_p (XEXP (DECL_RTL (parms), 0),
- DECL_INCOMING_RTL (parms)))
+ && GET_CODE (XEXP (DECL_RTL (parms), 0)) == REG)
+/* && rtx_equal_p (XEXP (DECL_RTL (parms), 0),
+ DECL_INCOMING_RTL (parms))) */
{
/* Parm was passed via invisible reference.
That is, its address was passed in a register.
@@ -2084,6 +2084,40 @@ dbxout_reg_parms (parms)
dbxout_type (TREE_TYPE (parms), 0, 0);
dbxout_finish_symbol (parms);
}
+#if 0
+ else if (GET_CODE (DECL_RTL (parms)) == MEM
+ && GET_CODE (XEXP (DECL_RTL (parms), 0)) == REG)
+ {
+ /* Parm was passed via invisible reference.
+ That is, its address was passed in a register.
+ Output it as if it lived in that register.
+ The debugger will know from the type
+ that it was actually passed by invisible reference. */
+
+ current_sym_code = N_RSYM;
+
+ /* DECL_RTL looks like (MEM (REG...). Get the register number. */
+ current_sym_value = REGNO (XEXP (DECL_RTL (parms), 0));
+ current_sym_addr = 0;
+
+ FORCE_TEXT;
+ if (DECL_NAME (parms))
+ {
+ current_sym_nchars = 2 + strlen (IDENTIFIER_POINTER (DECL_NAME (parms)));
+
+ fprintf (asmfile, "%s \"%s:r", ASM_STABS_OP,
+ IDENTIFIER_POINTER (DECL_NAME (parms)));
+ }
+ else
+ {
+ current_sym_nchars = 8;
+ fprintf (asmfile, "%s \"(anon):r", ASM_STABS_OP);
+ }
+
+ dbxout_type (TREE_TYPE (parms), 0, 0);
+ dbxout_finish_symbol (parms);
+ }
+#endif
}
}