diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-30 15:28:48 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-30 15:28:48 +0000 |
commit | 092b1d6f29c36a1496c539d276bc9d0e1ce66082 (patch) | |
tree | 4ca6b4e112f696c8ceed5ba25d4dd59e1b129aba /gcc/cp/decl2.c | |
parent | d6e1a335bca7a6d63ada7dedc95671be86e1a1fe (diff) | |
download | gcc-092b1d6f29c36a1496c539d276bc9d0e1ce66082.tar.gz |
* call.c (check_dtor_name): Replace abort with gcc_assert or
gcc_unreachable.
(build_call, add_builtin_candidate, build_new_op,
convert_like_real, build_over_call, in_charge_arg_for_name,
source_type, joust): Likewise.
* class.c (build_simple_base_path, get_vcall_index,
finish_struct_1, instantiate_type, get_enclosing_class,
add_vcall_offset_vtbl_entries_1, cp_fold_obj_type_ref): Likewise.
* cp-gimplify.c (cp_genericize): Likewise.
* cp-lang.c (cp_expr_size, cp_tree_size): Likewise.
* cvt.c (cp_convert_to_pointer, ocp_convert): Likewise.
* decl.c (poplevel, make_unbound_class_template, reshape_init,
check_special_function_return_type, grokdeclarator,
grok_op_properties, tag_name, xref_tag, start_preparsed_function,
finish_function): Likewise.
* decl2.c (grokfield, maybe_emit_vtables):Likewise.
* error.c (dump_global_iord, dump_decl, dump_template_decl,
language_to_string): Likewise.
* except.c (choose_personality_routine): Likewise.
* friend.c (do_friend): Likewise.
* g++spec.c (lang_specific_driver): Likewise.
* init.c (build_zero_init, expand_default_init, build_new_1,
build_vec_delete_1, build_vec_init, build_dtor_call): Likewise.
* lex.c (retrofit_lang_decl, cp_type_qual_from_rid): Likewise.
* mangle.c (add_substitution, write_unscoped_name,
write_template_prefix, write_identifier,
write_special_name_destructor, write_type, write_builtin_type,
write_expression, write_template_param,
write_java_integer_type_codes): Likewise.
* method.c (implicitly_declare_fn): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86778 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/decl2.c')
-rw-r--r-- | gcc/cp/decl2.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 2d852f71481..5e0651e79bd 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -953,14 +953,14 @@ grokfield (const cp_declarator *declarator, if (attrlist) cplus_decl_attributes (&value, attrlist, 0); - if (TREE_CODE (value) == VAR_DECL) + switch (TREE_CODE (value)) { + case VAR_DECL: finish_static_data_member_decl (value, init, asmspec_tree, flags); return value; - } - if (TREE_CODE (value) == FIELD_DECL) - { + + case FIELD_DECL: if (asmspec) error ("`asm' specifiers are not permitted on non-static data members"); if (DECL_INITIAL (value) == error_mark_node) @@ -969,9 +969,8 @@ grokfield (const cp_declarator *declarator, DECL_INITIAL (value) = init; DECL_IN_AGGR_P (value) = 1; return value; - } - if (TREE_CODE (value) == FUNCTION_DECL) - { + + case FUNCTION_DECL: if (asmspec) set_user_assembler_name (value, asmspec); if (!DECL_FRIEND_P (value)) @@ -985,9 +984,10 @@ grokfield (const cp_declarator *declarator, DECL_IN_AGGR_P (value) = 1; return value; + + default: + gcc_unreachable (); } - abort (); - /* NOTREACHED */ return NULL_TREE; } @@ -1586,9 +1586,10 @@ maybe_emit_vtables (tree ctype) if (TREE_TYPE (DECL_INITIAL (vtbl)) == 0) { + tree expr = store_init_value (vtbl, DECL_INITIAL (vtbl)); + /* It had better be all done at compile-time. */ - if (store_init_value (vtbl, DECL_INITIAL (vtbl))) - abort (); + gcc_assert (!expr); } /* Write it out. */ |