summaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2002-01-20 23:46:30 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2002-01-20 23:46:30 +0000
commitcfd66c04964074b77a2f30acf283a7ef797232c9 (patch)
treebc0e94a3b168a48f8a7f630b35bd1acc7b956b83 /gcc/dwarf2out.c
parent77d18ca5d2126372740b85f5534da41557ab0746 (diff)
downloadgcc-cfd66c04964074b77a2f30acf283a7ef797232c9.tar.gz
* dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
(gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL in incomplete case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49022 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index a5073214e1d..c0b9958b2c7 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -8066,14 +8066,19 @@ loc_descriptor_from_tree (loc, addressp)
return 0;
break;
+ case TRUTH_AND_EXPR:
+ case TRUTH_ANDIF_EXPR:
case BIT_AND_EXPR:
op = DW_OP_and;
goto do_binop;
+ case TRUTH_XOR_EXPR:
case BIT_XOR_EXPR:
op = DW_OP_xor;
goto do_binop;
+ case TRUTH_OR_EXPR:
+ case TRUTH_ORIF_EXPR:
case BIT_IOR_EXPR:
op = DW_OP_or;
goto do_binop;
@@ -8167,6 +8172,7 @@ loc_descriptor_from_tree (loc, addressp)
add_loc_descr (&ret, new_loc_descr (op, 0, 0));
break;
+ case TRUTH_NOT_EXPR:
case BIT_NOT_EXPR:
op = DW_OP_not;
goto do_unop;
@@ -10829,7 +10835,8 @@ gen_struct_or_union_type_die (type, context_die)
add_AT_flag (type_die, DW_AT_declaration, 1);
/* We don't need to do this for function-local types. */
- if (! decl_function_context (TYPE_STUB_DECL (type)))
+ if (TYPE_STUB_DECL (type)
+ && ! decl_function_context (TYPE_STUB_DECL (type)))
VARRAY_PUSH_TREE (incomplete_types, type);
}
}