Neil Booth [Sun, 28 Apr 2002 23:14:56 +0000 (23:14 +0000)]
cppexp.c (lex): Move some code to _cpp_parse_expr, but keep most cases as function eval_token.
* cppexp.c (lex): Move some code to _cpp_parse_expr, but
keep most cases as function eval_token.
(eval_token): New function.
(_cpp_parse_expr): Read token here for improved diagnostics.
Don't use op_as_text. Detect bad ':' here.
(reduce): Don't detect bad ':' here.
(op_as_text): Remove.
* cpphash.h (_cpp_test_assertion): Change prototype.
* cpplib.c (_cpp_test_assertion): Change prototype.
testsuite:
* gcc.dg/cpp/if-cexp.c: Add a test.
Jakub Jelinek [Sun, 28 Apr 2002 19:57:42 +0000 (21:57 +0200)]
configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working %r_disp32().
* configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
%r_disp32().
* src/sparc/v8.S: Use it.
* src/sparc/v9.S: Likewise.
* fficonfig.h.in: Rebuilt.
* configure: Rebuilt.
Jakub Jelinek [Sun, 28 Apr 2002 19:47:12 +0000 (21:47 +0200)]
re PR rtl-optimization/6475 (zlib miscompilation with gcc-3.1)
PR optimization/6475
* reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
register of REGNO_DECL (i).
* Makefile.in (reload1.o): Add $(TREE_H).
Franz Sirl [Sun, 28 Apr 2002 18:31:34 +0000 (18:31 +0000)]
re PR c/6343 (attribute((weak)) not working on second declaration)
2002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
PR c/6343
* c-decl.c (duplicate_decls): Call merge_weak.
* c-pragma.c (apply_pragma_weak): Warn about misuse.
* output.h (merge_weak): Prototype merge_weak.
* varasm.c (merge_weak): New function.
(declare_weak): Make sure we don't give an error on VAR_DECLs.
Mark RTL with SYMBOL_REF_WEAK.
Kurt Garloff [Sat, 27 Apr 2002 18:59:40 +0000 (11:59 -0700)]
tree-inline.c (inlinable_function_p): Improve heuristics by using a smoother function to cut down allowable inlinable...
* tree-inline.c (inlinable_function_p): Improve heuristics
by using a smoother function to cut down allowable inlinable size.
* param.def: Add parameters max-inline-insns-single,
max-inline-slope, min-inline-insns that determine the exact
shape of the above function.
* param.h: Likewise.
Mark Mitchell [Sat, 27 Apr 2002 00:26:36 +0000 (00:26 +0000)]
re PR bootstrap/6445 (ICE bootstrapping objc for i386-rtems)
PR bootstrap/6445
* config/i386/i386.md (untyped_call): Return the value in a float
register if TARGET_FLOAT_RETURNS_IN_80387, not just if
TARGET_80387.
David S. Miller [Sat, 27 Apr 2002 00:07:16 +0000 (17:07 -0700)]
re PR target/6422 (libjava failures on sparc-linux)
2002-04-25 David S. Miller <davem@redhat.com>
PR target/6422
* reorg.c (optimize_skip): Do not allow exception causing
instructions to be considered for delay slots.
(fill_simply_delay_slots, fill_slots_from_thread): Likewise.
(relax_delay_slots): Do not try to consider exception causing
instructions as redundant.
David S. Miller [Sat, 27 Apr 2002 00:04:14 +0000 (17:04 -0700)]
re PR target/6422 (libjava failures on sparc-linux)
2002-04-25 David S. Miller <davem@redhat.com>
PR target/6422
* include/dwarf2-signal.h (MAKE_THROW_FRAME for sparc*): Set
program counter to next program counter minus 8. Update
comments in this macro to explain why.
Mark Mitchell [Fri, 26 Apr 2002 21:28:47 +0000 (21:28 +0000)]
re PR bootstrap/6445 (ICE bootstrapping objc for i386-rtems)
PR bootstrap/6445
* config/i386/i386.md (untyped_call): Return the value in a float
register if TARGET_FLOAT_RETURNS_IN_80387, not just if
TARGET_80387.
PR c++/6497
* method.c (do_build_assign_ref): Pass a derivation to
build_method_call when calling base class assignment operators.
PR c++/6497
* g++.dg/inherit/access2.C: New test.
PR bootstrap/6445
* gcc.dg/20020426-1.c: New test.
* 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.