* config/mips/mips.h (MASK_FIX_SB1): Bump.
(MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
(TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
* config/mips/mips.c (mips_output_division): Fill the branch delay
slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to
TARGET_FIX_R4400.
(mips_output_division): Adjust accordingly.
(override_options): Make -march=r4400 imply -mfix-r4400 by default.
* doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
Co-Authored-By: Richard Sandiford <rsandifo@redhat.com>
From-SVN: r78825
* coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
* optabs.c (prepare_cmp_insn): Force trapping memories to registers
before the compare, if flag_non_call_exceptions.
* g++.dg/other/profile1.C: New.
From-SVN: r78806
PR middle-end/11767
* coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
* optabs.c (prepare_cmp_insn): Force trapping memories to registers
before the compare, if flag_non_call_exceptions.
* g++.dg/other/profile1.C: New.
From-SVN: r78805
PR middle-end/14327
* stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
emitting the label, not after.
* gcc.c-torture/execute/20040302-1.c: New.
From-SVN: r78798
* config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
(m68hc11_mov_addr_mode): Likewise.
(m68hc11_override_options): Initialize them based on target.
(register_indirect_p): Allow a MEM for indirect addressing modes and
use flags to control what is allowed.
(m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
supported addressing modes.
(m68hc11_register_indirect_p): Use m68hc11_addr_mode.
(go_if_legitimate_address_internal): Likewise.
(m68hc11_indirect_p): Likewise and check the mode.
(print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
From-SVN: r78792
2004-03-02 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (money_get<>::_M_extract):
Reorganize a bit the main parsing loop, thus early detecting
an empty value component.
* testsuite/22_locale/money_get/get/char/16.cc: New.
* testsuite/22_locale/money_get/get/wchar_t/16.cc: New.
From-SVN: r78788
* config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
sequences of moves.
(add peepholes): New peepholes to optimize sequences adding small
constants.
(bset peepholes): New peepholes to transform an OR in a bset form
(bclr peepholes): Likewise for bclr form.
(cmp peepholes): New peepholes to avoid register copies when comparing.
From-SVN: r78787
* config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
(SOFT_XY_REGNUM): Define.
(cmp split): Use the above instead of hard coded numbers.
(8-bit op split): No need to check the mode; allow Q_REG.
(ashift split): Adjust the first operand if it uses the SP and we
are pushing the shifted value.
(plus shift split): Fix when a source is in register D+X.
("doloop_end"): Pass dummy arguments to gen_rtx_NE.
From-SVN: r78781
2004-03-02 Emmanuel Briot <briot@act-europe.fr>
* ali.adb (Read_Instantiation_Instance): Do not modify the
current_file_num when reading information about instantiations, since
this corrupts files in later references.
2004-03-02 Vincent Celier <celier@gnat.com>
* bcheck.adb (Check_Consistency): Get the full path of an ALI file
before checking if it is read-only.
* bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
of SRC_DIRS and eliminate duplicates.
* gprcmd.adb: Replace command "path" with command "path_sep" to return
the path separator.
(Usage): Document path_sep
* Makefile.generic: For Ada and GNU C++ cases, link directly with the
C++ compiler. No need for a script.
Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
subst.
* prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
where there are Ada sources.
(Set_Ada_Paths): Only add to the include path the source dirs of project
with Ada sources.
(Add_To_Path): Add the Display_Values of the directories, not their
Values.
* prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
data.
* prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
is not No_Name.
(Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
Value is canonicalized.
(Language_Independent_Check): Do not copy Value to Display_Value when
canonicalizing Value.
* prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
path to find limited with cycles.
(Parse_Single_Project): Use canonical cased path to find the end of a
with cycle.
2004-03-02 Ed Schonberg <schonberg@gnat.com>
* sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
and not a child unit.
* sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
appear in a with_clause.
* decl.c (gnat_to_gnu_type): If entity is a generic type, which can
only happen in type_annotate mode, do not try to elaborate it.
* exp_util.adb (Force_Evaluation): If expression is a selected
component on the left of an assignment, use a renaming rather than a
temporary to remove side effects.
* freeze.adb (Freeze_Entity): Do not freeze a global entity within an
inlined instance body, which is analyzed before the end of the
enclosing scope.
2004-03-02 Robert Dewar <dewar@gnat.com>
* par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
sem_ch4.adb: Use new feature for substitution of keywords in VMS
* errout.ads, errout.adb: Implement new circuit for substitution of
keywords in VMS.
* sem_case.adb (Analyze_Choices): Place message properly when case is
a subtype reference rather than an explicit range.
* sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
2004-03-02 Doug Rupp <rupp@gnat.com>
* init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
2004-03-02 Thomas Quinot <quinot@act-europe.fr>
* s-tporft.adb: Add missing locking around call to Initialize_ATCB.
2004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
BLKmode bitfield.
From-SVN: r78758
* config/h8300/h8300.md (pushqi1_h8300hs): Rename to
pushqi1_h8300hs_advanced. Adjust its caller.
(pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
Adjust its caller.
From-SVN: r78749
PR c++/14369
* pt.c (build_non_dependent_expr): Do not create a
NON_DEPENDENT_EXPR for a THROW_EXPR.
PR c++/14369
* g++.dg/template/cond4.C: New test.
From-SVN: r78746
PR c++/14360
* parser.c (cp_parser_postfix_expression): Do not perform Koenig
lookup if ordinary name-lookup finds a non-function.
* pt.c (tsubst_copy_and_build): Likewise.
PR c++/14361
* parser.c (cp_parser_late_parsing_default_args): Check that there
are no extra tokens after the end of the default-argument
expression.
PR c++/14360
* g++.old-deja/g++.ns/koenig5.C: Remove some error markers.
PR c++/14361
* g++.dg/parse/defarg7.C: New test.
PR c++/14359
* g++.dg/template/friend26.C: New test.
From-SVN: r78739
PR c++/14324
* lex.c (retrofit_lang_decl): Treat entities with no linkage as
having C++ linkage for name-mangling purposes.
PR c++/14260
* parser.c (cp_parser_direct_declarator): Recognize constructor
declarators that use a template-id to name the class being
constructed.
PR c++/14337
* pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
(tsubst_expr): Do not call tsubst_copy, even when
processing_template_decl.
PR c++/14324
* g++.dg/abi/mangle21.C: New test.
PR c++/14260
* g++.dg/parse/constructor2.C: New test.
PR c++/14337
* g++.dg/template/sfinae1.C: New test.
From-SVN: r78720