diff options
author | obrien <obrien@FreeBSD.org> | 2002-05-09 21:24:44 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-05-09 21:24:44 +0000 |
commit | 03d718bf2580a83e8ed889fdaf397ea1099ddb72 (patch) | |
tree | c07755fd2a571c15b191362a462a98f3c11caec3 /contrib | |
parent | da84150b6c3ee697384a10e2595fd5dc5b14999e (diff) | |
download | FreeBSD-src-03d718bf2580a83e8ed889fdaf397ea1099ddb72.zip FreeBSD-src-03d718bf2580a83e8ed889fdaf397ea1099ddb72.tar.gz |
Use the stock (3.1) file.
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/gcc/dbxout.c | 22 |
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); } |