Jason Merrill [Thu, 30 Sep 1999 00:50:29 +0000 (00:50 +0000)]
Support normal type_info-based EH mechanisms with -fno-rtti.
* except.c (build_eh_type_type): Remove special -fno-rtti handling.
(build_eh_type_type_ref): Likewise.
(build_eh_type): Remove.
(expand_throw): Call build_eh_type_type, not build_eh_type.
* decl2.c (import_export_decl): Don't associate the tinfo fn with
the vtable if -fno-rtti.
* decl.c (init_decl_processing): Always init_rtti_processing.
* rtti.c (get_typeid): Don't complain about -fno-rtti.
Mark Mitchell [Wed, 29 Sep 1999 08:16:38 +0000 (08:16 +0000)]
cp-tree.h (UPT_TEMPLATE): Remove.
* cp-tree.h (UPT_TEMPLATE): Remove.
(UPT_PARMS): Likewise.
(DECL_NEEDED_P): New macro.
* decl2.c (finish_vtable_vardecl): Use it.
(finish_objects): Don't crash with -fsyntax-only.
(finish_file): Use DECL_NEEDED_P. Don't prune vtables when
-fsyntax-only.
* pt.c (tsubst_friend_function): Remove FIXME that talks about
obstacks.
(tsubst_expr): Correct handling of function try-blocks.
* semantics.c: Include flags.h.
(expand_body): Don't do RTL generation if -fsyntax-only.
* Makefile.in (semantics.o): Depends on flags.h.
Mark Mitchell [Wed, 29 Sep 1999 08:06:21 +0000 (08:06 +0000)]
cp-tree.h (UPT_TEMPLATE): Remove.
* cp-tree.h (UPT_TEMPLATE): Remove.
(UPT_PARMS): Likewise.
(DECL_NEEDED_P): New macro.
* decl2.c (finish_vtable_vardecl): Use it.
(finish_objects): Don't crash with -fsyntax-only.
(finish_file): Use DECL_NEEDED_P. Don't prune vtables when
-fsyntax-only.
* pt.c (tsubst_friend_function): Remove FIXME that talks about
obstacks.
(tsubst_expr): Correct handling of function try-blocks.
* semantics.c: Include flags.h.
(expand_body): Don't do RTL generation if -fsyntax-only.
* Makefile.in (semantics.o): Depends on flags.h.
* error.c (dump_template_value): Rename to ...
(dump_template_argument): This.
(dump_template_argument_list): New function.
(dump_type): Use it.
(dump_template_parameter): New function.
(dump_template_decl): Use it.
(dump_template_bindings): New function.
(dump_function_decl): Use it. Pretty print function template
instantiations.
* xcoffout.c (xcoffout_declare_function): Add documentation.
* rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
TARGET_64BIT. Compare constant to -1, not bit pattern.
(easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
(expand_block_move): Allow 8 DImode loads for PowerPC64. Fix
gen_movsi typos.
c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined, call it.
* c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
call it.
* reg-stack.c (straighten_stack): Copy hard reg set with
COPY_HARD_REG_SET.
decl.c (grokdeclarator): Distinguish parameter context for diagnostics.
* decl.c (grokdeclarator): Distinguish parameter context for
diagnostics. Tidy up missing type diagnostic.
Diagnose `explicit' in one place. Diagnose `mutable' in one place.
builtins.c (stabilize_va_list): Stabilize array type va_list to a pointer type, not the base record type.
* builtins.c (stabilize_va_list): Stabilize array type va_list
to a pointer type, not the base record type.
(expand_builtin_va_copy): Dereference the pointers explicitly;
use the correct size for the copy.
* rs6000.c (rs6000_va_start): Dereference valist to get to the record.
(rs6000_va_arg): Likewise.
alloca-conf.h (alloca): Don't use Gcc builtin or <alloca.h>.
* alloca-conf.h (alloca) [C_ALLOCA]: Don't use Gcc builtin
or <alloca.h>.
* clock.c (GNU_HZ): New definition.
(clock): Use it.
* getruntime.c: Likewise.
* config.table: Use mh-beos.
* config/mh-beos: New file.
configure.in: Recognize target *vxworks* and add fragment vxworks.mt.
* configure.in: Recognize target *vxworks* and add fragment vxworks.mt.
* config/vxworks.mt: New file.
* gen-params: Let configure override HAVE_PRINTF_FP.
Andreas Schwab [Mon, 27 Sep 1999 08:43:01 +0000 (08:43 +0000)]
m68k.c (output_function_prologue, [...]): Use current_function_uses_pic_offset_table instead of regs_ever_live to decide...
* config/m68k/m68k.c (output_function_prologue,
output_function_epilogue): Use
current_function_uses_pic_offset_table instead of regs_ever_live
to decide whether to save/restore pic register.
(legitimize_pic_address): Don't modify regs_ever_live any more.
Mark Mitchell [Mon, 27 Sep 1999 01:27:18 +0000 (01:27 +0000)]
cp-tree.h (expand_throw): Remove prototype.
* cp-tree.h (expand_throw): Remove prototype.
* except.c (expand_throw): Make it static. Use tree-generation
functions, rather than RTL-generation functions.
(build_throw): Use it.
* expr.c: Include except.h.
(cplus_expand_expr): Don't call expand_throw here.
* Makefile.in (expr.o): Depend on except.h.
* ir.texi: Update documentation for THROW_EXPR.
* decl.c (start_function): Set x_dont_save_pending_sizes rather
than calling get_pending_sizes.
* init.c (build_new): Don't save and restore
immediate_size_expand; instead, assert that it has the expected
value already.
Mark Mitchell [Sun, 26 Sep 1999 18:16:47 +0000 (18:16 +0000)]
decl.c (start_function): Set x_dont_save_pending_sizes rather than calling get_pending_sizes.
* decl.c (start_function): Set x_dont_save_pending_sizes rather
than calling get_pending_sizes.
* init.c (build_new): Don't save and restore
immediate_size_expand; instead, assert that it has the expected
value already.
* function.h (struct function): Add x_dont_save_pending_sizes_p.
* stor-layout.c (variable_size): Don't add sizes to the pending
sizes list if x_dont_save_pending_sizes_p is set.
Jeffrey A Law [Sat, 25 Sep 1999 19:13:18 +0000 (19:13 +0000)]
cse.c: Update comments.
* cse.c: Update comments.
(cse_insn): When converting a conditional/computed jump into
an unconditional jump, always make sure a BARRIER immediately
follows the converted jump. Do not delete unreachable code.
(cse_basic_block): Do not delete unreachable code.
* toplev.c (rest_of_compilation): Move call to
delete_trivially_dead_insns after the conditional call to
jump_optimize.
Mark Mitchell [Sat, 25 Sep 1999 18:10:04 +0000 (18:10 +0000)]
cp-tree.h (check_return_expr): New function.
* cp-tree.h (check_return_expr): New function.
* decl.c (finish_constructor_body): New function.
(pushdecl): Put global friend functions in namespace binding
level, not the class binding level.
(finish_destructor_body): Make sure the dtor_label is always
defined. Fix typo in comment.
(finish_function): Move generation of constructor-termination code
to semantic-analysis time. Move generation of implicit `main'
return value to semantic-analysis time.
* semantics.c (finish_return_stmt): Generate goto's to
ctor_label/dtor_label here. Use check_return_expr to do semantic
analysis on the returned expression.
* typeck.c (maybe_warn_about_returning_address_of_local): New
function split out from c_expand_return.
(check_return_expr): Likewise.
(c_expand_return): Just generate the RTL for the return.
Mark Mitchell [Fri, 24 Sep 1999 20:54:08 +0000 (20:54 +0000)]
cp-tree.h (CPTI_CLEANUP_TYPE): New macro.
* cp-tree.h (CPTI_CLEANUP_TYPE): New macro.
(cleanup_type): Likewise.
(search_tree): Change prototype.
* decl.c (local_variable_p): Adjust for new interface to
search_tree.
(check_default_argument): Likewise.
* error.c (dump_expr): Handle INIT_EXPR.
* except.c (expand_throw): Don't make cleanup_type a local static.
* expr.c (cplus_expand_expr): Don't handle NEW_EXPR.
* init.c (build_new): Call build_new_1 directly, rather than
building a NEW_EXPR.
(build_new_1): Tidy. Don't build a VEC_INIT_EXPR except when
processing file-scope initializers.
* lex.c (init_parse): Add an opname_tab entry for INIT_EXPR.
* tree.c: Include splay-tree.h
(no_linkage_helper): Adjust for new interface to search_tree.
(search_tree): Pass around pointers to tree nodes, rather than the
nodes themselves. Handle VEC_INIT_EXPR.
(no_linkage_check): Adjust for new interface to search_tree.
(mapcar): Handle VEC_INIT_EXPR.
(target_remap): New variable.
(bot_manip): Use it.
(bot_replace): New function.
(break_out_target_exprs): Use it to remap all variables used in a
default argument expression.
* typeck.c (build_modify_expr): Don't crash when outside a
function and presented with an INIT_EXPR assignment
* Makefile.in (tree.o): Depend on splay-tree.h.
Mark Mitchell [Fri, 24 Sep 1999 08:03:42 +0000 (08:03 +0000)]
decl.c (pushdecl): Don't make local declarations of extern variables give the variable a...
* decl.c (pushdecl): Don't make local declarations of extern
variables give the variable a DECL_CONTEXT for the function.
(make_rtl_for_nonlocal_decl): Don't fuss with obstacks. Simplify.
Don't accidentally make RTL for local declarations.
(emit_local_var): Handle declarations with asm-specifiers here.
elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol in .sbss if appropriate.
* config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
in .sbss if appropriate.
(EXTRA_SECTION_FUNCTIONS): Add sbss.
(SBSS_SECTION_ASM_OP): New macro.
* config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
(EXTRA_SECTIONS): Add in_sbss.
* config/mips/mips.h: Prototype sbss_section.
Martin v. Löwis [Thu, 23 Sep 1999 22:20:08 +0000 (22:20 +0000)]
cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): New macro.
* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): New macro.
(RECORD_OR_UNION_TYPE_CHECK, LANG_IDENTIFIER_CAST): Likewise.
(DEFARG_NODE_CHECK): Remove; replace with DEFAULT_ARG_CHECK.
* cp-tree.h: Add tree checking macros to various tree access
macros.
* ptree.c (print_lang_decl): Test for function or variable
before accessing template info.
Jason Merrill [Thu, 23 Sep 1999 21:04:10 +0000 (21:04 +0000)]
lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
* lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
* lang-specs.h: If -fshort-wchar, override __WCHAR_TYPE__.
* decl2.c (lang_f_options): Add -fshort-wchar.
* cp-tree.h: Declare flag_short_wchar.
* decl.c (init_decl_processing): If -fshort-wchar, use 'short unsigned
int' for wchar_t.