gcc/
* config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
(FUNCTION_PROFILER): Save the static chain pointer into $2
beforehand and restore it aftewards.
(TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target
address directly into $25 and call the function through $25;
do not clobber $3. Pad the DImode version to cover the space
left by the deleted $25 <- $3 move.
(TRAMPOLINE_SIZE): Adjust the size of the SImode version after
the removal of the $25 <- $3 move.
(INITIALIZE_TRAMPOLINE): Update offsets accordingly.
* config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
2008-08-09 Richard Guenther <rguenther@suse.de>
* gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
* gimple.h (gimple_call_fn): Adjust comment.
(gimple_call_set_fndecl): New function.
(gimple_call_fndecl): Adjust for GIMPLE_CALL no
longer having bare FUNCTION_DECL operand.
(gimple_call_return_type): Likewise.
* tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
* value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
(gimple_mod_pow2): Likewise.
(gimple_mod_subtract): Likewise.
(gimple_ic): Likewise.
(gimple_stringop_fixed_value): Likewise.
(gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
longer having bare FUNCTION_DECL operand.
* ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
* omp-low.c (optimize_omp_library_calls): Likewise.
* cgraphunit.c (update_call_expr): Likewise.
* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
(execute_convert_to_rsqrt): Likewise.
* cfgexpand.c (gimple_to_tree): Simplify.
(release_stmt_tree): Fix for GIMPLE_CALL no longer having
bare FUNCTION_DECL operand.
* tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
(convert_gimple_call): Use gimple_call_fndecl.
* c-common.c (c_warn_unused_result): Likewise.
Paul Thomas [Fri, 8 Aug 2008 23:22:51 +0000 (23:22 +0000)]
re PR fortran/37011 (F2003, type extension: multiple inheritence not rejected)
2008-08-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37011
* symbol.c (gfc_add_extension): New function.
* decl.c (gfc_get_type_attr_spec): Call it.
(gfc_match_derived_decl): Set symbol extension attribute from
attr.extension.
* gfortran.h : Add prototype for gfc_add_extension.
Dorit Nuzman [Fri, 8 Aug 2008 19:00:36 +0000 (19:00 +0000)]
tree-vect-transform.c (vectorizable_conversion): Pass the integral type to vectorize.builtin_conversion.
2008-08-08 Dorit Nuzman <dorit@il.ibm.com>
* tree-vect-transform.c (vectorizable_conversion): Pass the integral
type to vectorize.builtin_conversion.
(vectorizable_conversion): Likewise.
* config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
integral type as input.
* config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
FIX_TRUNC_EXPR.
(rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
and ALTIVEC_BUILTIN_VCTSXS.
(rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
formatting.
Daniel Kraft [Fri, 8 Aug 2008 18:19:46 +0000 (20:19 +0200)]
gfortran.h (gfc_finalizer): Replaced member `procedure' by two new members `proc_sym' and `proc_tree' to...
2008-08-08 Daniel Kraft <d@domob.eu>
* gfortran.h (gfc_finalizer): Replaced member `procedure' by two
new members `proc_sym' and `proc_tree' to store the symtree after
resolution.
(gfc_find_sym_in_symtree): Made public.
* decl.c (gfc_match_final_decl): Adapted for new member name.
* interface.c (gfc_find_sym_in_symtree): Made public.
(gfc_extend_expr), (gfc_extend_assign): Changed call accordingly.
* module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived):
New methods for module-file IO of f2k_derived.
(mio_symbol): Do IO of f2k_derived namespace.
* resolve.c (gfc_resolve_finalizers): Adapted for new member name and
finding the symtree for the symbol here.
* symbol.c (gfc_free_finalizer): Adapted for new members.
2008-08-08 Daniel Kraft <d@domob.eu>
* gfortran.dg/finalize_9.f03: New test.
* gfortran.dg/module_md5_1.f90: Adapted MD5-sum for changed module
file format.
tree-ssa-ccp.c (likely_value): Calls are not all varying.
2008-08-08 Richard Guenther <rguenther@suse.de>
* tree-ssa-ccp.c (likely_value): Calls are not all varying.
(surely_varying_stmt_p): Calls are varying only if they are
non-builtin and not indirect or have no result.
(ccp_fold): Re-instantiate code before the tuples merge.
Ed Schonberg [Fri, 8 Aug 2008 13:09:37 +0000 (13:09 +0000)]
freeze.adb (Generate_Prim_Op_References): New procedure, abstracted from Freeze_Entity.
2008-08-08 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
from Freeze_Entity. Used to generate cross-reference information for
types declared in generic packages.
Arnaud Charlet [Fri, 8 Aug 2008 13:00:00 +0000 (15:00 +0200)]
gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow checking for integer...
2008-08-08 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
checking for integer operations (including division by zero)", which
is wrong -- divide by zero is not part of overflow checking.
Also added misc clarification about what check-suppression means.
* gnat_rm.texi: Clarify the meaning of pragma Suppress.
Thomas Quinot [Fri, 8 Aug 2008 12:59:28 +0000 (14:59 +0200)]
g-soccon.ads: New file.
2008-08-08 Thomas Quinot <quinot@adacore.com>
* g-soccon.ads: New file.
* g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
unit, to allow building software that depends on this internal unit
with both older and newer compilers.
Jan Hubicka [Fri, 8 Aug 2008 10:09:37 +0000 (12:09 +0200)]
i386.h (ix86_size_cost): Declare.
* i386.h (ix86_size_cost): Declare.
(ix86_cur_cost): New function macro.
* i386.md (peepholes expanding size and splitters): Predicate by
optimize_insn_for_speed_p.
(peepholes reduce size and splitters): Predicate by
optimize_insn_for_size_p.
* i386.c (ix86_size_cost): Rename from ...
(size_cost): This one.
(override_options): Update.
(decide_alg): Likewise.
(ix86_expand_clear): Use RTL profile.
(ix86_pad_returns): Use RTL profile.
Paolo Carlini [Fri, 8 Aug 2008 09:54:09 +0000 (09:54 +0000)]
ios_base.h: Undef _IOS_BASE_SEEK_CUR and _IOS_BASE_SEEK_END at the end of the file.
2008-08-08 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/ios_base.h: Undef _IOS_BASE_SEEK_CUR and
_IOS_BASE_SEEK_END at the end of the file.
* include/bits/char_traits.h: Likewise for _CHAR_TRAITS_EOF.
Jan Hubicka [Thu, 7 Aug 2008 07:35:51 +0000 (09:35 +0200)]
optabs.c (emit_unop_insn): Break out to ...
* optabs.c (emit_unop_insn): Break out to ...
(maybe_emit_unop_insn): ... this one.
(expand_sfix_optab): Use maybe variant.
* optabs.h (maybe_emit_unop_insn): Declare.
* i386.md (mov0 patterns): Enable by default.
(FP conversion expanders): Disable expansion of code expanding
sequences when instruction should be optimized for size.
(single strinop patterns): Enable when optimizing for size.
(string expanders): Disable expanding of code expanding sequences
when optimizning instruction for size.
* i386.c (ix86_expand_vector_move_misalign): Do code size optimization
per BB basis.
(ix86_fp_comparison_sahf_cost): Likewise.
(ix86_expand_branch): Likewise.
(ix86_expand_ashl_const): Likewise.
(ix86_split_ashl): Likewise.
(ix86_expand_strlen): Likewise.
(ix86_emit_fp_unordered_jump): Likewie.
Douglas Gregor [Wed, 6 Aug 2008 19:08:12 +0000 (19:08 +0000)]
re PR c++/36460 (No space between >'s not always handled in C++0x)
2008-08-06 Douglas Gregor <doug.gregor@gmail.com>
PR c++/36460
* parser.c (cp_parser_template_argument): Don't assume that '>>'
following a type-id is an error when in C++0x mode.
2008-08-06 Douglas Gregor <doug.gregor@gmail.com>
PR c++/36460
* g++.dg/cpp0x/bracket3.C: Add another test case for the >>
warning under -Wc++0x-compat.
* g++.dg/cpp0x/bracket4.C: Add testcase for PR c++/36460.
tree-vect-transform.c (vect_model_simple_cost): Return immediately if stmt is pure SLP.
2008-08-06 Victor Kaplansky <victork@il.ibm.com>
Ira Rosen <irar@il.ibm.com>
* tree-vect-transform.c (vect_model_simple_cost): Return
immediately if stmt is pure SLP.
(vect_model_store_cost): Ditto.
(vect_model_load_cost): Ditto.
(vectorizable_store): Remove PURE_SLP check before call
to vect_model_store_cost.
(vect_model_store_cost): When checking whether stmt describe
strided access, add a check that it is not slp_node.
Testsute
* gcc.dg/vect/costmodel/ppc/costmodel-slp-34.c: New test.
Co-Authored-By: Ira Rosen <irar@il.ibm.com>
From-SVN: r138815
Joseph Myers [Wed, 6 Aug 2008 15:20:14 +0000 (16:20 +0100)]
jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset for unrepresentable subregs or treat them as...
* jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
for unrepresentable subregs or treat them as equal to other regs
or subregs with the same register number.
Paolo Carlini [Wed, 6 Aug 2008 12:25:00 +0000 (12:25 +0000)]
acinclude.m4 ([GLIBCXX_CHECK_INT64_T]): Also check whether int64_t is actually a typedef to long or long long.
2008-08-06 Paolo Carlini <paolo.carlini@oracle.com>
* acinclude.m4 ([GLIBCXX_CHECK_INT64_T]): Also check whether int64_t
is actually a typedef to long or long long.
* include/bits/postypes.h: If int64_t is actually a typedef for
long or long long don't include <stdint.h> unnecessarily.
* configure: Regenerate.
* config.h.in: Likewise.
Aldy Hernandez [Wed, 6 Aug 2008 10:25:22 +0000 (10:25 +0000)]
re PR middle-end/35432 (ICE with zero-sized array)
PR middle-end/35432
* gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
if want_value.
testsuite/
* gcc.c-torture/compile/pr35432.c: New file.
Ed Schonberg [Wed, 6 Aug 2008 10:03:21 +0000 (12:03 +0200)]
sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse of incomplete type.
2008-08-06 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
of incomplete type.
* sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
of a formal parameter of an incomplete type. Improve error message for
other improper uses of incomplete types.
Thomas Quinot [Wed, 6 Aug 2008 09:43:10 +0000 (11:43 +0200)]
Makefile.in, [...]: Remove obsolete targets referencing gen-soccon When generating s-oscons.ads...
2008-08-06 Thomas Quinot <quinot@adacore.com>
* gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
Remove obsolete targets referencing gen-soccon
When generating s-oscons.ads, use a file name that includes the
THREAD_KIND, to ensure that the (potentially different) version from a
previous build with a different threads flavour does not get reused.
Thomas Quinot [Wed, 6 Aug 2008 09:42:31 +0000 (11:42 +0200)]
Makefile.in, [...]: Remove obsolete targets referencing gen-soccon When generating s-oscons.ads...
2008-08-06 Thomas Quinot <quinot@adacore.com>
* gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
Remove obsolete targets referencing gen-soccon
When generating s-oscons.ads, use a file name that includes the
THREAD_KIND, to ensure that the (potentially different) version from a
previous build with a different threads flavour does not get reused.
Arnaud Charlet [Wed, 6 Aug 2008 09:41:04 +0000 (11:41 +0200)]
s-fileio.adb (Open): When file open operation fails...
2008-08-06 Thomas Quinot <quinot@adacore.com>
* s-fileio.adb (Open): When file open operation fails, raise Name_Error
only when the operating system reports a non-existing file or directory
(ENOENT), otherwise raise Name_Error.
Ed Schonberg [Wed, 6 Aug 2008 09:35:17 +0000 (11:35 +0200)]
sem_ch3.adb (Access_Subprogram_Declaration): If the return type is incomplete...
2008-08-06 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
incomplete, add the access_to_subprogram type to the list of private
dependents only if the incomplete type will be completed in the current
scope.
(Build_Discriminant_Constraints): If the type of the discriminant is
access_to_variable, reject a constraint that is access_to_constant.
Ed Schonberg [Wed, 6 Aug 2008 08:52:36 +0000 (10:52 +0200)]
sem_res.adb (Resolve_Call): Use base type to determine whether a dereference is needed because a subtype of...
2008-08-06 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Call): Use base type to determine whether a
dereference is needed because a subtype of an access_to_subprogram is
simply an access-subtype
Arnaud Charlet [Wed, 6 Aug 2008 08:33:21 +0000 (10:33 +0200)]
g-comlin.adb (Define_Switch, [...]): New.
2008-08-06 Jerome Lambourg <lambourg@adacore.com>
* g-comlin.adb (Define_Switch, Get_Switches): New.
(Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
ungrouping switches.
(For_Each_Simple_Switch): Allow more control over parameters handling.
This generic method now allows ungrouping of switches with parameters
and switches with more than one letter after the prefix.
(Set_Command_Line): Take care of switches that are prefixed with a
switch handling parameters without delimiter (-gnatya and -gnaty3 for
example).
(Add_Switch, Remove_Switch): Handle parameters possibly present inside
a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
the operation.
(Start, Alias_Switches, Group_Switches): Take care of parameters
possibly present inside a group.
* g-comlin.ads (Define_Switch): New method used to define a list of
expected switches, that are necessary for correctly ungrouping switches
with more that one character after the prefix.
(Get_Switches): Method that builds a getopt string from the list of
switches as set previously by Define_Switch.
(Add_Switch, Remove_Switch): New versions of the methods, reporting the
status of the operation. Also allow the removal of switches with
parameters only.
(Command_Line_Configuration_Record): Maintain a list of expected
switches.
Ed Schonberg [Wed, 6 Aug 2008 08:32:32 +0000 (10:32 +0200)]
g-awk.adb (Finalize): Do not use directly objects of the type in the finalization routine to prevent...
2008-08-06 Ed Schonberg <schonberg@adacore.com>
* g-awk.adb (Finalize): Do not use directly objects of the type in the
finalization routine to prevent elaboration order anomalies in new
finalization scheme.
Quentin Ochem [Wed, 6 Aug 2008 08:32:09 +0000 (10:32 +0200)]
s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark in the case of an empty pattern size.
2008-08-06 Quentin Ochem <ochem@adacore.com>
* s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
in the case of an empty pattern size.
(Compute_Result): Do not do any computation in the case of an empty
pattern size.
(Report_Result): Fixed computation of the overflow guard.