diff options
author | Richard Stallman <rms@gnu.org> | 1992-07-31 06:15:53 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-07-31 06:15:53 +0000 |
commit | 4ee194ec2ba00f7d19cbc2649b89ceeaa751a4c4 (patch) | |
tree | d615cb42cc69fcbdce2236443c9692accd4b3828 | |
parent | 27f427f88810b4026ab24cd438d5eecb6d7ec007 (diff) | |
download | gcc-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.c | 40 |
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 } } |