* c-common.c (fix_string_type): Split out of ...
(combine_strings): ... here. Take a varray, not a tree list.
(c_expand_builtin_printf): Use fix_string_type.
* c-common.h: Update decls.
* c-parse.in (string): Remove. Update all uses to use STRING
instead, and not call combine_strings.
(yylexstring): New.
(_yylex): Use it.
* c-typeck.c (simple_asm_stmt): Don't call combine_strings.
(build_asm_stmt): Likewise.
* objc/objc-act.c (my_build_string): Use fix_string_type.
(build_objc_string_object): Build varray for combine_strings.
* parse.y (string): Remove. Update all uses to use STRING
instead, and not call combine_strings.
* rtti.c (tinfo_name): Use fix_string_type.
* semantics.c (finish_asm_stmt): Don't call combine_strings.
* spew.c (yylexstring): New.
(read_token): Use it.
Neil Booth [Fri, 26 Apr 2002 06:32:50 +0000 (06:32 +0000)]
cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
* cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
(HAVE_NO_R_OPERAND): Remove.
(HAVE_VALUE): Remove.
(op_to_prio): Update.
(UNARY): Don't alter flags.
(_cpp_parse_expr): want_value used to indicate whether
a number or unary operator is expected next. Distinguish
unary and binary +/-.
(op_as_text): Update for unary operators.
Matt Hiller [Thu, 25 Apr 2002 19:31:45 +0000 (19:31 +0000)]
mips.c (mips_class_max_nregs, [...]): New functions.
2002-04-24 Matt Hiller <hiller@redhat.com>
* mips.c (mips_class_max_nregs, mips_register_move_cost): New
functions.
* mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
of the corresponding functions.
* mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
New prototypes.
2002-04-24 Matt Hiller <hiller@redhat.com>
* config/mips/mips.h (mips_sw_reg_names): Declare as extern.
(ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
(FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
registers, adjust comment accordingly.
(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
for coprocessor registers.
(ADDITIONAL_REGISTER_NAMES): Include
ALL_COP_ADDITIONAL_REGISTER_NAMES.
(mips_char_to_class): Adjust comment to include coprocessor
constraint letters.
* config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
New functions.
(mips_reg_names, mips_regno_to_class): Include coprocessor
information.
(mips_sw_reg_names): Ditto, make non-static.
(mips_move_1word): Handle moves to and from coprocessor registers.
(mips_move_2words): Handle moves to and from coprocessor
registers.
(mips_class_max_nregs, mips_register_move_cost): Handle
coprocessor register classes.
(override_options): Initialize mips_char_to_class and
mips_hard_regno_mode_ok properly for coprocessor registers.
* config/mips/mips.md (movdi_internal, movdi_internal2,
movsi_internal1, movsi_internal2): Add constraint-sets for
coprocessor registers.
* testsuite/gcc.c-torture/mipscop-1.c: New testcase.
* testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
isn't mips.
* testsuite/gcc.c-torture/mipscop-2.c: New testcase.
* testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
isn't mips.
* testsuite/gcc.c-torture/mipscop-3.c: New testcase.
* testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
isn't mips.
* testsuite/gcc.c-torture/mipscop-4.c: New testcase.
* testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
isn't mips.
Mark Mitchell [Thu, 25 Apr 2002 01:05:25 +0000 (01:05 +0000)]
mangle.c (write_type): Don't use TYPE_MAIN_VARIANT when writing out an array type.
* mangle.c (write_type): Don't use TYPE_MAIN_VARIANT when writing
out an array type.
(write_CV_qualifiers_for_type): Use TYPE_QUALS, not cp_type_quals,
to determine qualifiers.
Jason Merrill [Thu, 25 Apr 2002 00:13:45 +0000 (20:13 -0400)]
typeck.c (build_modify_expr): The pedwarn for array assignment is now unconditional.
* typeck.c (build_modify_expr): The pedwarn for array assignment is
now unconditional.
* tree.c (build_cplus_array_type_1): Still process simple array types
normally in templates.
Tom Tromey [Wed, 24 Apr 2002 23:05:17 +0000 (23:05 +0000)]
natCore.cc (create): Use __builtin_alloca, and compute correct length of UTF-8 encoded name.
* gnu/gcj/natCore.cc (create): Use __builtin_alloca, and compute
correct length of UTF-8 encoded name. Strip leading `/'.
(_Jv_RegisterResource): Use _Jv_Malloc.
Matthew Hiller [Wed, 24 Apr 2002 22:27:37 +0000 (22:27 +0000)]
cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
2002-04-24 Matt Hiller <hiller@redhat.com>
* cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
* c-lex.c: Ditto.
* cpplex.c (skip_line_comment): Process comment one multibyte
character at a time rather than one char at a time, if
appropriate.
(parse_string): Process string one multibyte character at a time
rather than one char at a time, if appropriate.
* c-lex.c (lex_string): Lex and copy multibyte strings
appropriately.
* cpplib.h (cppchar_t): Change to unsigned.
Matthew Hiller [Wed, 24 Apr 2002 22:27:19 +0000 (22:27 +0000)]
cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
2002-04-24 Matt Hiller <hiller@redhat.com>
* cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
* c-lex.c: Ditto.
* cpplex.c (skip_line_comment): Process comment one multibyte
character at a time rather than one char at a time, if
appropriate.
(parse_string): Process string one multibyte character at a time
rather than one char at a time, if appropriate.
* c-lex.c (lex_string): Lex and copy multibyte strings
appropriately.
* cpplib.h (cppchar_t): Change to unsigned.
Matthew Hiller [Wed, 24 Apr 2002 22:18:25 +0000 (22:18 +0000)]
cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
2002-04-24 Matt Hiller <hiller@redhat.com>
* cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
* c-lex.c: Ditto.
* cpplex.c (skip_line_comment): Process comment one multibyte
character at a time rather than one char at a time, if
appropriate.
(parse_string): Process string one multibyte character at a time
rather than one char at a time, if appropriate.
* c-lex.c (lex_string): Lex and copy multibyte strings
appropriately.
* cpplib.h (cppchar_t): Change to unsigned.
sh.md (divsi3_i4_media): Use match_operand for input values rather than hard registers.
* sh.md (divsi3_i4_media): Use match_operand for input values
rather than hard registers.
(divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
unnecessarily through hard registers. Keep copies of pseudo
registers outside of the libcall sequence.
* dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
* dwarf2out.c (dwarf_attr_name): Support it.
(gen_array_type_die): Emit it.
(lookup_type_die): No special handling for VECTOR_TYPE.
(gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
Tom Tromey [Tue, 23 Apr 2002 22:58:09 +0000 (22:58 +0000)]
For PR java/6314:
* jvspec.c (lang_specific_driver): Use --resource, not -R. Also
recognize `-fcompile-resource='.
* gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text
a bit.
Jason Merrill [Tue, 23 Apr 2002 21:01:22 +0000 (17:01 -0400)]
re PR libstdc++/6414 (g++ 3.1 tellg() regression within last week)
PR libstdc++/6414
* include/bits/fstream.tcc (basic_filebuf::seekoff): Adjust return
value properly in the trivial case.
* testsuite/27_io/istream_seeks.cc (test04): Make sure that
tellg() returns the right value after a read.
David O'Brien [Tue, 23 Apr 2002 16:39:03 +0000 (16:39 +0000)]
g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
2002-04-23 David O'Brien <obrien@FreeBSD.org>
* cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
* config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
these libraries.
Approved by: Richard Henderson <rth@redhat.com>
Message-ID: <20020422223253.A32678@redhat.com>
David O'Brien [Tue, 23 Apr 2002 15:05:33 +0000 (15:05 +0000)]
g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
2002-04-23 David O'Brien <obrien@FreeBSD.org>
* g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
* config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
these libraries.
Approved by: Richard Henderson <rth@redhat.com>
Message-ID: <20020422223253.A32678@redhat.com>
Roger Sayle [Tue, 23 Apr 2002 10:17:37 +0000 (10:17 +0000)]
builtins.c (builtin_memset_gen_str): New function.
2002-04-23 Roger Sayle <roger@eyesopen.com>
* builtins.c (builtin_memset_gen_str): New function.
(expand_builtin_memset): Optimize the case of constant length, but
unknown value.
testsuite:
* gcc.c-torture/execute/string-opt-17.c: New test case.
* gcc.c-torture/execute/memset-2.c: New test case.
Eric Christopher [Tue, 23 Apr 2002 02:06:02 +0000 (02:06 +0000)]
mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert patch of 2002-04-09 due to binutils issues.
2002-04-22 Eric Christopher <echristo@redhat.com>
* config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
patch of 2002-04-09 due to binutils issues.
(FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
Janis Johnson [Mon, 22 Apr 2002 23:22:33 +0000 (23:22 +0000)]
rtl.h (RTX_FLAG): New macro.
* rtl.h (RTX_FLAG): New macro.
* emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
* final.c (alter_subreg): Use macro to access rtx flag.
* integrate.c (copy_rtx_and_substitute): Use new access macro.
* print-rtl.c (print_rtx): Use new access macro.
* cse.c (insert): Check rtx code before accessing flag.
re PR c/6300 (sparc-sun-solaris2.7 gcc-3.1 C testsuite failure in gcc.dg/cpp/charconst.c)
* c-lex.c (lex_charconst): Call convert to get constant in
proper type; don't just smash the type field.
Fixes PR c/6300.
* config.gcc: Add list of obsolete configurations. Disallow
building these without --enable-obsolete.
* doc/install.texi: Document --enable-obsolete and obsoletion
policy. Mention obsoletion of individual targets in
appropriate places.
alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
* alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
* gcse.c (free_insn_expr_list_list): New.
(clear_modify_mem_tables): Use it. Fix bit set usage.
(canon_list_insert): Use EXPR_LISTs for expressions.
(record_last_mem_set_info): Factor BLOCK_NUM (insn).
Andrew Haley [Mon, 22 Apr 2002 16:55:39 +0000 (16:55 +0000)]
jcf-write.c (push_long_const): lo, hi: New variables.
2002-04-19 Andrew Haley <aph@redhat.com>
* jcf-write.c (push_long_const): lo, hi: New variables.
Use rshift_double to extract the high part of a 64-bit long.
Use WORD_TO_INT to extract the low part.
* jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
altivec.h (vec_xor): Add variant for both args being vector signed int.
2002-04-22 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/altivec.h (vec_xor): Add variant for both args
being vector signed int.
(vec_andc): Same.
(vec_xor): Add variant for both args being vector signed char.
Remove redundant variant.
(vec_andc): Same.