PR tree-optimization/40813
* tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
it.
* g++.dg/opt/inline15.C: New test.
From-SVN: r149857
2009-07-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40726
* trans-decl.c (gfc_get_extern_function_decl): Do not set
DECL_IS_MALLOC for pointer valued functions.
(build_function_decl): The same.
From-SVN: r149846
* pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
Cast "1" to unsigned HOST_WIDE_INT.
(compute_zdepdi_operands): Limit maximum length to 64 bits. Limit
deposit length to the maximum length - lsb. Extend length if
HOST_BITS_PER_WIDE_INT is 32.
From-SVN: r149843
* cgraph.h (constant_pool_htab): New function.
(constant_descriptor_tree): Move from varasm.c.
* varasm.c (constant_pool_htab): New function.
(constant_descriptor_tree): Move to cgraph.h.
From-SVN: r149834
* config/mips/mips.md (move_type): Add arith.
(type): Handle arith.
(zero_extendsidi2): Rename this into ...
(*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS.
(zero_extendsidi2): New expander.
(*zero_extendsidi2_dext): New pattern.
testsuite/
* gcc.target/mips/ext-3.c: New test.
From-SVN: r149829
* config.gcc (mips64-*-*): Add definition of tm_defines in order
to set MIPS_ABI_DEFAULT.
* config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
From-SVN: r149827
* tree-object-size.c (addr_object_size): Handle unions with
array in it as last field of structs in __bos (, 1) as __bos (, 0).
* gcc.dg/builtin-object-size-6.c: Adjust expected values.
* gcc.dg/builtin-object-size-8.c: New test.
* g++.dg/ext/builtin-object-size1.C: Adjust expected values.
* g++.dg/ext/builtin-object-size2.C: Likewise.
From-SVN: r149825
2009-07-20 Bob Duff <duff@adacore.com>
* sem_ch13.adb (Analyze_Record_Representation_Clause): Use "and then"
instead of "and", because otherwise Parent_Last_Bit is read
uninitialized in the case where it's not a tagged type, or the tagged
parent does not have a complete rep clause.
2009-07-20 Robert Dewar <dewar@adacore.com>
* stylesw.ads: Minor documentation change.
* types.ads: Minor reformatting
2009-07-20 Javier Miranda <miranda@adacore.com>
* exp_disp.ads (Apply_Access_Checks): New subprogram that takes care of
generating the tag checks associated with dispatching calls.
* exp_disp.adb (Apply_Access_Checks): New subprogram.
(New_Value): This routine was previously local to expand dispatching
calls but it is now used also by Apply_Access_Checks.
(Expand_Dispatching_Calls): Cleanup code because the functionality of
tag checks is now provided by Apply_Access_Checks.
* exp_ch6.adb (Expand_Call): Incorporate generation of tag checks in
case of dispatching calls.
2009-07-20 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Gnat1drv): Also disable Elaboration_Check in
CodePeer_Mode.
From-SVN: r149821
2009-07-20 Gary Dismukes <dismukes@adacore.com>
* exp_prag.adb (Expand_Pragma_Import_Export_Exception): When compiling
for VMS, only rewrite the first component of the associated exception's
aggregate init (as 'V'), and eliminate the bogus rewrites of the second
and third components that were being replaced with 'M' and 'S'.
2009-07-20 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Gnat1drv): Suppress access checks in CodePeer mode.
Also do not generate error when parsing a spec in CodePeer mode.
2009-07-20 Javier Miranda <miranda@adacore.com>
* checks.adb (Apply_Access_Check): Avoid checks on availability of
runtime function Offset_To_Top_Ptr when compiling with no tagged
types expansion.
* exp_ch3.adb (Build_Init_Procedure): Leave open the possibility of
adding code to the init proc when compiling for VM backends.
2009-07-20 Vincent Celier <celier@adacore.com>
* switch-m.adb (Normalize_Compiler_Switches): Take into account
switches -gnatw.?
2009-07-20 Thomas Quinot <quinot@adacore.com>
* sem_dist.adb, exp_dist.adb: Minor reformatting
* Make-generated.in: New file.
* gcc-interface/Make-lang.in: Use Make-generated.in fragment.
From-SVN: r149819
2009-07-20 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Gnat1drv): Set operating mode to Generate_Code when
CodePeer_Mode is set, to benefit from full front-end expansion
(e.g. generics).
2009-07-20 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb: Add guard.
* exp_disp.adb, sem_disp.adb (Make_DT): Check underlying view of type
for possible attribute definition of External_Tag, in case clause
appears in the private part of a package.
From-SVN: r149816
2009-07-20 Vadim Godunko <godunko@adacore.com>
* a-coorma.adb: Minor reformatting.
2009-07-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch3 (Build_Itype_Reference): Make public, for use on non-null
access return types.
* sem_ch6.adb (Analyze_Return_Type): If return is a not null subtype,
provide an itype reference to gigi to force elaboration of the subtype
at the proper point.
2009-07-20 Tristan Gingold <gingold@adacore.com>
* g-expect.adb: Avoid closeing already closed handle.
2009-07-20 Robert Dewar <dewar@adacore.com>
* sprint.adb (Write_Subprogram_Name): New procedure to output
subprogram name with possible preceding $ (replaces
Note_Implicit_Run_Time_Call).
From-SVN: r149812
2009-07-20 Robert Dewar <dewar@adacore.com>
* vms_data.ads: Minor reformatting
* einfo.ads, einfo.adb (Parent_Subtype): Now allowed on record subtype,
applies to base type.
(Parent_Subtype): Now allowed on record subtype, applies to base type
* exp_ch5.adb (Expand_Assign_Record): Handle Componentwise_Assignment
for case of fully repped tagged type.
(Make_Tag_Ctrl_Assignment): Set Componentwise_Assignment and avoid
tag save/restore for fully repped tagged type case.
* exp_util.ads, exp_util.adb (Is_Fully_Repped_Tagged_Type): New function
* fe.h (Is_Fully_Repped_Tagged_Type): New function
* sem_ch13.adb (Analyze_Recorrd_Representation_Clause): Check for
overlap of tagged type components with parent type if parent type is
fully repped.
* sinfo.ads, sinfo.adb (Componentwise_Assignment): New flag
* sem_res.adb (Check_No_Direct_Boolean_Operators): Remove handling of
comparisons.
(Resolve_Comparison_Operators): Remove No_Direct_Boolean_Operators check
(Resolve_Equality_Op): Remove No_Direct_Boolean_Operators check
* gnat_rm.texi: Restriction No_Direct_Boolean_Operators includes only
logical operators (AND/OR/XOR), not comparison operators.
* sprint.ads: Minor reformatting
2009-07-20 Ed Schonberg <schonberg@adacore.com>
* sem_intr.adb (Check_Intrinsic_Call): For Import_Value and related
intrinsics, check that argument is a string literal, rather than
checking for staticness.
From-SVN: r149811
2009-07-20 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb: Minor reformatting
* einfo.ads: Minor reformatting
Component_Bit_Offset is no longer considered obsolescent
2009-07-20 Nicolas Roche <roche@adacore.com>
* a-calend.adb: Redefine time_t as signed integer with same size as
Address type.
* s-os_lib.ads: Redefine OS_Time as signed integer with same size as
Address type
* adaint.h: On Windows 64bits declare OS_Time as long long instead of
long
2009-07-20 Javier Miranda <miranda@adacore.com>
* exp_tss.adb (Init_Proc): Add missing support for non-default C++
constructors that have anonymous access type formals.
* sem_res.adb (Resolve_Actuals): Disable checks associated with Ada
class-wide arguments in case of imported C++ subprograms.
* exp_ch3.adb (Build_Initialization_Call): Add assertion.
2009-07-20 Sergey Rybin <rybin@adacore.com>
* vms_data.ads: Update qualifiers.
From-SVN: r149810
2009-07-20 Jan Hubicka <jh@suse.cz>
Martin Jambor <mjambor@suse.cz>
* cgraph.h (combined_args_to_skip): New field.
* cgraph.c (cgraph_create_virtual_clone): Properly handle
combined_args_to_skip and args_to_skip.
* tree-inline.c (update_clone_info): New function.
(tree_function_versioning): Call update_clone_info.
* cgraphunit.c: (cgraph_materialize_clone): Dump materialized functions.
(cgraph_materialize_all_clones): More extensive dumping, working
with combined_args_to_skip rather than args_to_skip.
Co-Authored-By: Martin Jambor <mjambor@suse.cz>
From-SVN: r149808
* tree-vectorizer.h (vectorizable_condition): Add parameters.
* tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
(get_initial_def_for_reduction): Likewise.
(vectorizable_reduction): Skip the check of first operand in case
of COND_EXPR. Add check that it is outer loop vectorization if
nested cycle was detected. Call vectorizable_condition() for
COND_EXPR. If reduction epilogue cannot be created do not fail for
nested cycles (if it is not double reduction). Assert that there
is only one type in the loop in case of COND_EXPR. Call
vectorizable_condition() to vectorize COND_EXPR.
* tree-vect-stmts.c (vectorizable_condition): Update comment.
Add parameters. Allow nested cycles if called from
vectorizable_reduction(). Use reduction vector variable if provided.
(vect_analyze_stmt): Call vectorizable_reduction() before
vectorizable_condition().
(vect_transform_stmt): Update call to vectorizable_condition().
From-SVN: r149806
2009-07-19 Janne Blomqvist <jb@gcc.gnu.org>
Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/40714
* gfortran.dg/eof_3.f90: New test.
Co-Authored-By: Jerry DeLisle <jvdelisle@gcc.gnu.org>
From-SVN: r149797
2009-07-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/40727
* fortran/check.c (gfc_check_cmplx, gfc_check_dcmplx): Add check that
the optional second argument isn't of COMPLEX type.
2009-07-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/40727
* gfortran.dg/intrinsic_cmplx.f90: New test.
From-SVN: r149793
PR tree-optimization/40676
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
virtual PHIs in empty BBs.
* gcc.c-torture/compile/pr40676.c: New testcase.
From-SVN: r149789