aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorJason Merrill <merrill@gnu.org>1997-04-29 19:18:21 +0000
committerJason Merrill <merrill@gnu.org>1997-04-29 19:18:21 +0000
commit9c6cd30ed515ec543a3258e9c96006364a6e42cb (patch)
tree3f6190b2625ed330c67864ae13c3cc5888b741bb /gcc/dwarf2out.c
parentc82ba1b5052c97c190657c0274a3d043a69794e4 (diff)
downloadgcc-9c6cd30ed515ec543a3258e9c96006364a6e42cb.zip
gcc-9c6cd30ed515ec543a3258e9c96006364a6e42cb.tar.gz
gcc-9c6cd30ed515ec543a3258e9c96006364a6e42cb.tar.bz2
x
From-SVN: r13989
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index c30785f..cd7300d 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -3145,7 +3145,7 @@ constant_size (value)
log = log / 8;
log = 1 << (floor_log2 (log) + 1);
- return MIN (log, 4);
+ return log;
}
/* Return the size of a DIE, as it is represented in the
@@ -7198,9 +7198,11 @@ gen_subprogram_die (decl, context_die)
register tree fn_arg_types;
register tree outer_scope;
register dw_die_ref old_die = lookup_decl_die (decl);
- register int declaration = (current_function_decl != decl
- || context_die->die_tag == DW_TAG_structure_type
- || context_die->die_tag == DW_TAG_union_type);
+ register int declaration
+ = (current_function_decl != decl
+ || (context_die
+ && (context_die->die_tag == DW_TAG_structure_type
+ || context_die->die_tag == DW_TAG_union_type)));
if (origin != NULL)
{
@@ -8484,11 +8486,11 @@ dwarf2out_decl (decl)
if (DECL_INITIAL (decl) == NULL_TREE)
return;
- /* Ignore nested functions, since they will be written in decl_for_scope.
- ??? There was an old comment here about methods, which now need to
- be handled. */
+ /* If we're a nested function, initially use a parent of NULL; if we're
+ a plain function, this will be fixed up in decls_for_scope. If
+ we're a method, it will be ignored, since we already have a DIE. */
if (decl_function_context (decl))
- return;
+ context_die = NULL;
break;