configure.ac: When passing --enable-languages to subdir configure when host != build...
* configure.ac: When passing --enable-languages to subdir
configure when host != build, make sure we don't pass an empty
value.
* configure: Regenerate.
* sinfo.ads: Remove obsolete comment on validate unchecked conversion
node. We now do generate them for gcc back end.
* table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
warning.
* sinput-c.adb: Fix bad name in header.
Add pragma Warnings Off to suppress aliasing warning.
* sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
* snames.h, snames.ads, snames.adb: Add entry for pragma
No_Strict_Aliasing.
2004-03-05 Vincent Celier <celier@gnat.com>
* prj-com.ads: Add hash table Files_Htable to check when a file name
is already a source of another project.
* prj-nmsc.adb (Record_Source): Before recording a new source, check
if its file name is not already a source of another project. Report an
error if it is.
* gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
source file name, call gnatpp with all the sources of the main project.
* vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
of file names.
* vms_data.ads: Correct documentation of new /OPTIMIZE keyword
NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
/RUNTIME_SYSTEM=, converted to --RTS=
/NOTABS, converted to -notabs
2004-03-05 Pascal Obry <obry@gnat.com>
* make.adb: Minor reformatting.
2004-03-05 Ed Schonberg <schonberg@gnat.com>
Part of implemention of AI-262.
* par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
* sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
procedure.
* sem_ch3.adb (Analyze_Component_Declaration): Improve error message
when component type is a partially constrained class-wide subtype.
(Constrain_Discriminated_Type): If parent type has unknown
discriminants, a constraint is illegal, even if full view has
discriminants.
(Build_Derived_Record_Type): Inherit discriminants when deriving a type
with unknown discriminants whose full view is a discriminated record.
* sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
flag, to handle properly derivations of tagged types with unknown
discriminants.
(Analyze_Package_Spec, Analyze_Package_Body): Install
Private_With_Clauses before analyzing private part or body.
* einfo.ads: Indicate that both Has_Unknown_Discriminants and
Has_Discriminants can be true for a given type (documentation).
2004-03-05 Arnaud Charlet <charlet@act-europe.fr>
* s-restri.ads: Fix license (GPL->GMGPL).
* s-tassta.adb: Minor reformatting.
* s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
by calls to Exit_One_ATC_Level, since additional clean up is performed
by this function.
* s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
by calls to Exit_One_ATC_Level, since additional clean up is performed
by this function.
Paolo Bonzini [Fri, 5 Mar 2004 10:17:40 +0000 (10:17 +0000)]
cse.c (cse_end_of_basic_block): Make static.
2004-02-18 Paolo Bonzini <bonzini@gnu.org>
* cse.c (cse_end_of_basic_block): Make static.
* local-alloc.c (function_invariant_p): Move to
reload1.c.
* loop.c (libcall_other_reg, record_excess_regs):
Make static.
* reload1.c (function_invariant_p): Moved here
from local-alloc.c, made static.
* rtl.h (cse_end_of_basic_block, function_invariant_p,
libcall_other_reg, record_excess_regs): Remove
declarations.
ggc-common.c (gt_pch_restore): Don't unmap addr unless we are going to call mmap again.
* ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
going to call mmap again. Read the file into the right place.
Give a fatal error if we have to relocate.
Forgot to mark PR for <URL:http://gcc.gnu.org/ml/gcc-cvs/2004-03/msg00237.html>
PR other/14354
* config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
round the same. When rounding, clear bits that would cause a
second rounding in pack_d.
(_fpmul_parts): Ditto. Remove #if 0:d code.
fp-bit.c (_fpdiv_parts): Do not round when pack_d would round the same.
* config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
round the same. When rounding, clear bits that would cause a
second rounding in pack_d.
(_fpmul_parts): Ditto. Remove #if 0:d code.
Ziemowit Laski [Thu, 4 Mar 2004 23:19:29 +0000 (23:19 +0000)]
PR c++/14425, c++/14426
[gcc/ChangeLog]
2004-03-04 Ziemowit Laski <zlaski@apple.com>
PR c++/14425, c++/14426
* config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
Change C++ definitions to accept a 'const int' argument;
the prototypes already do.
* config/rs6000/rs6000.c (rs6000_common_init_builtins):
Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
end in ..._int; change them to accept an int instead of a char
as the last parameter.
[gcc/testsuite/ChangeLog]
2004-03-04 Ziemowit Laski <zlaski@apple.com>
PR c++/14425, c++/14426
* g++.dg/ext/altivec-4.C: New test.
* g++.dg/ext/altivec-5.C: New test.
* g++.old-deja/g++.other/linkage1.C: Expect errors about
global variables of a type with no linkage.
* g++.old-deja/g++.other/qual1.C: Name class for 'action'.
* g++.old-deja/g++.mike/misc13.C: Name enum for 'want'.
* g++.old-deja/g++.bugs/900210_01.C: Name enum for 'ep'.
* g++.old-deja/g++.bugs/900210_02.C: Likewise.
* g++.old-deja/g++.bugs/900210_03.C: Likewise.
* g++.old-deja/g++.brendan/bit-fields2.C: Name structure for 's'.
* g++.old-deja/g++.brendan/init10.C: Name structure for 'a'.
* g++.dg/warn/deprecated.C: Name enum Color.
* g++.dg/overload/VLA.C: Name structure for 'b'.
* g++.dg/lookup/anon2.C: Expect diagnostic about type linkage.
Stuart Hastings [Thu, 4 Mar 2004 19:24:21 +0000 (19:24 +0000)]
darwin.h: Darwin/x86 doesn't support CPUs before 686...
2004-03-04 Stuart Hastings <stuart@apple.com>
* gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
686, tell Darwin assembler to allow prefetch insns, non-empty def
of SUBTARGET_OPTION_TRANSLATE_TABLE.
Eric Botcazou [Thu, 4 Mar 2004 09:01:03 +0000 (10:01 +0100)]
re PR rtl-optimization/14235 (ICE in verify_local_live_at start (flow.c:546))
PR optimization/14235
* expr.c (convert_move): Copy the source to a new pseudo
when converting from a sub-word source to a larger-than-word
register which conflicts with the source.
Zack Weinberg [Thu, 4 Mar 2004 05:49:06 +0000 (05:49 +0000)]
re PR c/13728 (Duplicate parameter names not detected)
PR 13728
* c-decl.c (diagnose_mismatched_decls): Issue an error for two
parameters with the same name, unless one is a forward decl.
Do not issue a redundant-redeclaration warning for forward
decls of parameters.
* gcc.dg/decl-4.c: New testcase.
Kazu Hirata [Thu, 4 Mar 2004 02:57:05 +0000 (02:57 +0000)]
builtin-explog-1.c (PREC): Make it the same as PRECF if sizeof (float) > sizeof (double).
* gcc.dg/torture/builtin-explog-1.c (PREC): Make it the same
as PRECF if sizeof (float) > sizeof (double).
(PRECL): Make it the same as PRECF if
sizeof (float) > sizeof (long double).
Per Bothner [Wed, 3 Mar 2004 23:50:03 +0000 (15:50 -0800)]
Channels.java (newInputStream, [...]): Optimize when argument is a FileChannelImpl.
* java/nio/channels/Channels.java (newInputStream, newOutputStream):
Optimize when argument is a FileChannelImpl.
(newInputStream(FileChannelImpl), newOutputStream(FileChannelImpl)):
New native methods.
* java/nio/channels/natChannels.cc: New file for new native methods.
* Makefile.am: Update accordingly.
Mostafa Hagog [Wed, 3 Mar 2004 16:32:45 +0000 (16:32 +0000)]
common.opt: Add description of the new -fgcse-after-reload flag.
2004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
* common.opt: Add description of the new -fgcse-after-reload flag.
* flags.h (flag_gcse_after_reload): Declaration of global variable.
* gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
is_jump_table_basic_block, bb_has_well_behaved_predecessors,
get_bb_avail_insn, hash_scan_set_after_reload,
compute_hash_table_after_reload, eliminate_partially_redundant_loads,
gcse_after_reload, get_bb_avail_insn): New functions to implement
gcse-after-reload.
(gcse_after_reload_main): New function, the main entry point to
gcse-after-reload.
* rtl.h (gcse_after_reload_main): Declaration of the new function.
* opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
* params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
the gcse after reload optimization.
* params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
parameters.
* doc/invoke.texi: Documentation for the new flag gcse-after-reload.
* 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.
* 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.
re PR middle-end/11767 (different code behaviour with -fnon-call-exceptions -fprofile-arcs)
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.
re PR middle-end/14327 (-O0 -fdefer-pop generates wrong code)
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.
Stephane Carrez [Tue, 2 Mar 2004 22:40:57 +0000 (23:40 +0100)]
m68hc11.c (m68hc11_addr_mode): New variable.
* 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.
Paolo Carlini [Tue, 2 Mar 2004 22:25:51 +0000 (22:25 +0000)]
locale_facets.tcc (money_get<>::_M_extract): Reorganize a bit the main parsing loop...
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.
Stephane Carrez [Tue, 2 Mar 2004 22:16:15 +0000 (23:16 +0100)]
m68hc11.md (move peephole2): New peepholes to optimize sequences of moves.
* 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.
Stephane Carrez [Tue, 2 Mar 2004 21:06:24 +0000 (22:06 +0100)]
m68hc11.md (SOFT_TMP_REGNUM): Define.
* 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.
Arnaud Charlet [Tue, 2 Mar 2004 13:50:15 +0000 (14:50 +0100)]
[multiple changes]
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