From: Nick Clifton Date: Mon, 18 May 1998 15:34:05 +0000 (+0000) Subject: Undid previous delta to dbxout.c X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=53f2d03397ef63911a713001853dd40500b01645;p=gcc.git Undid previous delta to dbxout.c Added comment explaining why. From-SVN: r19855 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5d298e82201..d8e83c5d522 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon May 18 15:30:42 1998 Nick Clifton + + * dbxout.c (dbxout_parms): Revert to using DECL_ARG_TYPE. Add + comment explaining why. + Mon May 18 13:20:23 1998 Richard Henderson * tree.h (TYPE_SIZE_UNIT): New. diff --git a/gcc/dbxout.c b/gcc/dbxout.c index fac184e8512..f3cb7ed08f2 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -2274,7 +2274,21 @@ dbxout_parms (parms) DBX_MEMPARM_STABS_LETTER); } - dbxout_type (TREE_TYPE (parms), 0, 0); + /* It is quite tempting to use: + + dbxout_type (TREE_TYPE (parms), 0, 0); + + as the next statement, rather than using DECL_ARG_TYPE(), so + that gcc reports the actual type of the parameter, rather + than the promoted type. This certainly makes GDB's life + easier, at least for some ports. The change is a bad idea + however, since GDB expects to be able access the type without + performing any conversions. So for example, if we were + passing a float to an unprototyped function, gcc will store a + double on the stack, but if we emit a stab saying the type is a + float, then gdb will only read in a single value, and this will + produce an erropneous value. */ + dbxout_type (DECL_ARG_TYPE (parms), 0, 0); current_sym_value = DEBUGGER_ARG_OFFSET (current_sym_value, addr); dbxout_finish_symbol (parms); }