* config/avr/avr.c (avr_case_values_threshold): New.
(avr_override_options): Set it depending on options, make it large
when not optimizing to work around "unable to generate reloads".
* config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
(EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
executable if not AVR_MEGA. Make sure jump tables are word-aligned.
(JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
(ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
(avr_case_values_threshold): Declare as extern int.
(CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
* config/avr/avr.md (tablejump): Removed.
(*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
(*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
index in the table, not multiplied by 2.
(casesi): Change to match the above insns. Always enable.
* config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
Change to expect the word address of the table, multiply it by 2
here and not in the caller. Change "adiw" to faster "inc".
From-SVN: r37465
* builtins.c (expand_builtin_setjmp): Set
current_function_calls_setjmp.
(expand_builtin_longjmp): Set current_function_calls_longjmp.
* config/sparc/sparc.md (builtin_setjmp_setup): New expand.
(do_builtin_setjmp_setup): New insn.
From-SVN: r37461
* varasm.c (struct deferred_string): New structure.
(const_str_htab): New variable.
(STRHASH): New macro.
(mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
constr_str_htab_eq, const_str_htab_del): New functions.
(output_constant_def): Add DEFER argument, defer string
constants until mark_constant_pool time if requested.
(mark_constant_pool): Walk the insn chain even if const_str_htab is
not empty.
(mark_constants): If a SYMBOL_REF for deferred string is found,
output it and remove from hash table.
(output_addressed_constants): Set DEFER to 0 in call to
output_constant_def.
* rtl.h (STRING_POOL_ADDRESS_P): Define.
(output_constant_def): Adjust prototype.
* expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
* gcc.c-torture/execute/20000801-4.c: Make sure the second string is
output.
From-SVN: r37459
2000-11-14 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPOR): Set LIBS back to
initial value.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* include/bits/c++config (__GLIBCPP__): Set release version for 2.91.
From-SVN: r37457
2000-11-14 Phil Edwards <pme@sources.redhat.com>
* mkcheck.in: On a platform where we don't know how to extract
section sizes, just set them to zero. Use old method of reading
file contents.
From-SVN: r37454
* varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
to array of pool_constnat pointers.
(struct pool_constant): Add next_sym and label members.
(struct pool_sym): Remove.
(init_varasm_status): Change pool_sym into pool_constant.
(mark_pool_constant): Mark pc->label string as well.
(mark_pool_sym_hash_table): Remove.
(mark_varasm_status): Remove it from caller as well.
(free_varasm_status): Don't free pool_sym structures.
(force_const_mem): Don't allocate pool_sym structure, instead
fill pool->label and chain it into rtx_sym hash table.
(find_pool_constant, mark_constant_pool): Use pool_constant instead
of pool_sym.
From-SVN: r37451
* typeck.c (c_sizeof): Be strict about casting result value
back to c_size_type_node.
(expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
From-SVN: r37446
2000-11-12 David Edelsohn <edelsohn@gnu.org>
* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Add test for
libiconv.a providing wchar_t support functions.
* aclocal.m4: Regenerate.
From-SVN: r37441
* c-lex.c (cb_leave_file): Harmonize conditions and order of
statements to those of process_directive for (action == act_pop).
* collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
* local-alloc.c (equiv_init_movable_p): References to CC0 are not
movable.
From-SVN: r37438
2000-11-12 Brent Verner <brent@rcfile.org>
* include/c_std/bits/wrap_langinfo.h: New file.
* include/c_std/langinfo.h: New file.
* include/bits/codecvt.h (__enc_trants::__enc_traits()): Bring in
CODESET from _C_legacy::CODESET if using shadow headers.
* src/Makefile.am: Add new files.
* src/Makefile.in: Regenerate.
From-SVN: r37437
2000-11-12 Brent Verner <brent@rcfile.org>
* include/c_std/bits/wrap_langinfo.h: New file.
* include/c_std/langinfo.h: New file.
* include/bits/codecvt.h (__enc_trants::__enc_traits()): Bring in
CODESET from _C_legacy::CODESET if using shadow headers.
From-SVN: r37436
* c-parse.in (stmts_and_decls): Deprecate use of label at end of
compound statement.
testsuite:
* gcc.dg/wtr-label-1.c, gcc.dg/990214-1.c: Add semicolons after
labels at end of compound statements.
From-SVN: r37435
* cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
cases return without MI check.
* cpplib.c (do_diagnostic): Take boolean of whether to
print the directive name.
(do_error, do_warning): Update.
(do_pragma_dependency): Use it.
* cpplib.h (VARARGS_FIRST): Delete.
(struct cpp_token): Delete integer.
* cppmacro.c (enter_macro_context): Move disabled check
to _cpp_get_token.
(_cpp_get_token): Simplify into a single loop.
From-SVN: r37434
* arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change.
Rewrite to avoid use of match_dup. Don't try to tie registers that
are not in the same mode.
From-SVN: r37425
* configure: Provide the original toplevel configure arguments
(including $0) to subprocesses in the environment rather than
through gcc/configargs.h.
gcc:
* configure.in: Take toplevel configure arguments from the
environment to create configargs.h and substitute
gcc_config_arguments, taking account of any existing configargs.h
if reconfiguring.
* configure: Regenerate.
* gccbug.in: Include toplevel configure arguments in gccbug.
From-SVN: r37423
* c-parse.in (initelt): Give appropriate pedantic warnings,
depending on flag_isoc99, for non-ISO syntax and for C99 syntax
outside C99 mode.
(designator): If pedantic, pedwarn for a designator specifying a
range of elements.
* c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
these cases.
* extend.texi: Document the C99 syntax as the preferred syntax,
and the pre-2.5 syntax as obsolete. Mention use of designator
lists for nested subobjects.
From-SVN: r37421