From: Nick Clifton Date: Mon, 18 May 1998 15:34:05 +0000 (+0000) Subject: Undid previous delta to dbxout.c X-Git-Tag: prereleases/egcs-1.1-prerelease~1219 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=53f2d03397ef63911a713001853dd40500b01645;p=thirdparty%2Fgcc.git Undid previous delta to dbxout.c Added comment explaining why. From-SVN: r19855 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5d298e822013..d8e83c5d5223 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 fac184e85125..f3cb7ed08f2d 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); }