summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/dbxout.c
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2002-05-09 21:24:44 +0000
committerobrien <obrien@FreeBSD.org>2002-05-09 21:24:44 +0000
commit03d718bf2580a83e8ed889fdaf397ea1099ddb72 (patch)
treec07755fd2a571c15b191362a462a98f3c11caec3 /contrib/gcc/dbxout.c
parentda84150b6c3ee697384a10e2595fd5dc5b14999e (diff)
downloadFreeBSD-src-03d718bf2580a83e8ed889fdaf397ea1099ddb72.zip
FreeBSD-src-03d718bf2580a83e8ed889fdaf397ea1099ddb72.tar.gz
Use the stock (3.1) file.
Diffstat (limited to 'contrib/gcc/dbxout.c')
-rw-r--r--contrib/gcc/dbxout.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/contrib/gcc/dbxout.c b/contrib/gcc/dbxout.c
index 6e5d1ff..b7907a5 100644
--- a/contrib/gcc/dbxout.c
+++ b/contrib/gcc/dbxout.c
@@ -1221,7 +1221,20 @@ dbxout_type (type, full)
write it as a subtype. */
else if (TREE_TYPE (type) != 0
&& TREE_CODE (TREE_TYPE (type)) == INTEGER_TYPE)
- dbxout_range_type (type);
+ {
+ /* If the size is non-standard, say what it is if we can use
+ GDB extensions. */
+
+ if (use_gnu_debug_info_extensions
+ && TYPE_PRECISION (type) != TYPE_PRECISION (integer_type_node))
+ {
+ have_used_extensions = 1;
+ fprintf (asmfile, "@s%d;", TYPE_PRECISION (type));
+ CHARS (5);
+ }
+
+ dbxout_range_type (type);
+ }
else
{
@@ -2200,7 +2213,8 @@ dbxout_symbol_location (decl, type, suffix, home)
{
rtx tmp = get_pool_constant (current_sym_addr);
- if (GET_CODE (tmp) == SYMBOL_REF)
+ if (GET_CODE (tmp) == SYMBOL_REF
+ || GET_CODE (tmp) == LABEL_REF)
current_sym_addr = tmp;
}
@@ -2632,6 +2646,10 @@ dbxout_parms (parms)
FORCE_TEXT;
fprintf (asmfile, "%s\"%s:v", ASM_STABS_OP, decl_name);
+
+ current_sym_value
+ = DEBUGGER_ARG_OFFSET (current_sym_value,
+ XEXP (XEXP (DECL_RTL (parms), 0), 0));
dbxout_type (TREE_TYPE (parms), 0);
dbxout_finish_symbol (parms);
}
OpenPOWER on IntegriCloud