* config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
the same as a PLUS without a shift. Increase the cost of a
CONST_INT in MULT.
From-SVN: r146595
2009-04-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39824
* tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
make sure the types are compatible.
* gcc.c-torture/compile/pr39824.c: New testcase.
From-SVN: r146592
2009-04-22 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb: Create block around procedure call when actual is a
concatenation.
2009-04-22 Thomas Quinot <quinot@adacore.com>
* s-soflin.ads: Fix typos
2009-04-22 Vincent Celier <celier@adacore.com>
* prj-env.adb: Minor comment change
* prj-nmsc.adb (Check_Common): Add guard to avoid calling
Get_Name_String with No_File.
* tempdir.adb (Create_Temp_File): Output diagnostic when temp file
cannot be created even when not in verbose mode.
From-SVN: r146587
2009-04-22 Vincent Celier <celier@adacore.com>
* tempdir.adb (Create_Temp_File): Add a diagnostic in verbose mode when
the temporary file cannot be created, indicating the directory when the
creation was attempted.
2009-04-22 Emmanuel Briot <briot@adacore.com>
* prj-env.adb, prj-env.ads (Create_Mapping_File): we need to compare
the language names, not their indices.
From-SVN: r146585
2009-04-22 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb (Check_Naming_Ada_Only): Properly initialize the
separate_suffix to the same value as the body_suffix.
From-SVN: r146574
2009-04-22 Robert Dewar <dewar@adacore.com>
* prj.adb: Minor code reorganization
Code clean up.
* prj-proc.adb: Minor code reorganization, clean up.
* prj-nmsc.adb: Minor reformatting
Minor code reorganization
* gnat_ugn.texi: Add to doc on strict aliasing
2009-04-22 Pascal Obry <obry@adacore.com>
* s-osinte-mingw.ads: Rename Reserved field in CRITICAL_SECTION to
SpinCount.
* s-tasini.adb: Minor reformatting.
* s-tassta.adb: Minor reformatting.
From-SVN: r146573
* function.c (expand_function_end): Do not emit a jump to the "naked"
return label for fall-through returns.
* except.c (sjlj_emit_function_exit): Always place the call to the
unregister function at the location installed by expand_function_end.
From-SVN: r146570
2009-04-22 Emmanuel Briot <briot@adacore.com>
* prj-proc.adb, prj-nmsc.adb (Check_Naming_Schemes): split into several
smaller subprograms.
Renamed to Check_File_Naming_Schemes to avoid confusion with the
other Check_Naming_Schemes functions that plays a totally different
role.
(Check_Unit_Based_Lang, Check_File_Based_Lang): new subprograms,
extracted from the above. These were partially rewritten to avoid
unnecessary code and temporary variables.
(Compute_Unit_Name): new subprogram, merge of Check_Unit_Based_Lang
and Get_Unit (which for now still exist since they contain mode-specific
code)
From-SVN: r146568
2009-04-22 Emmanuel Briot <briot@adacore.com>
* prj.ads, prj.adb, prj-nmsc.adb, prj-proc.adb (Recursive_Process):
Remove duplicated code.
(Canonical_Case_File_Name): new subprogram
(Check_And_Normalize_Unit_Names): new subprogram
(Write_Attr): new subprogram
Better sharing of code
(Check_Naming_Ada_Only, Check_Naming_Multi_Lang): new subprogram, to
split Check_Naming and help find duplicated code
(Check_Common): new subprogram, sharing code between ada_only and
multi_language mode.
(Naming_Data.Dot_Repl_Loc): field removed
From-SVN: r146567
2009-04-22 Emmanuel Briot <briot@adacore.com>
* prj-proc.adb, prj-nmsc.adb (Load_Naming_Exceptions): New subprogram.
Minor refactoring to reduce the size of
Process_Sources_In_Multi_Language_Mode.
Avoid extra copied of Source_Data, which we found in the past could be
quite slow.
(Mark_Excluded_Sources): new subprogram.
(Remove_Locally_Removed_Files_From_Units): merged into the above
Refactors Process_Sources_In_Multi_Language_Mode to reduce its size,
and allow better sharing of code between multi_lang and ada_only modes
(Project_Extends): removed, since exact duplicate of Prj.Is_Extending
From-SVN: r146565
2009-04-22 Robert Dewar <dewar@adacore.com>
* sem_aggr.adb: Minor reformatting.
* sem_type.adb: Minor reformatting
2009-04-22 Vincent Celier <celier@adacore.com>
* prj-attr.adb: New single project level attribute
Separate_Run_Path_Options.
* prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process
attribute Seperate_Run_Path_Options.
* prj.ads: (Project_Configuration): New Boolean component
Separate_Run_Path_Options, defaulted to False.
* snames.ads-tmpl: New standard name Seperate_Run_Path_Options
From-SVN: r146563
2009-04-22 Robert Dewar <dewar@adacore.com>
* mlib.adb: Minor reformatting
* sem_aggr.adb: Minor reformatting. Defend against junk aggregate from
syntax error.
From-SVN: r146562
2009-04-22 Nicolas Setton <setton@adacore.com>
* link.c: Add flag __gnat_separate_run_path_options.
* mlib.adb (Separate_Run_Path_Options): New subprogram.
* mlib.ads (Separate_Run_Path_Options): Declare.
* gnatcmd.adb (Process_Link): Add support for emitting one "rpath"
switch per directory, rather than one "rpath" switch listing all
directories.
* gnatlink.adb (Process_Binder_File): Likewise.
* make.adb (Gnatmake): Likewise.
From-SVN: r146561
2009-04-22 Ed Schonberg <schonberg@adacore.com>
* gnat1drv.adb: Fix typo
2009-04-22 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch6.adb (Make_Build_In_Place_Call_In_Assignment): Code cleanup.
Add a call to Move_Final_List when the target of the assignment is a
return object that needs finalization and the expression is a
controlled build-in-place function.
2009-04-22 Vincent Celier <celier@adacore.com>
* make.adb (Gnatmake, Bind_Step): call Set_Ada_Paths with
Including_Libraries set to True.
From-SVN: r146560
2009-04-22 Ed Schonberg <schonberg@adacore.com>
* lib-load.ads, lib-load.adb (Make_Child_Decl_Unit): New subprogram, to
create a unit table entry for the subprogram declaration created for a
child suprogram body that has no separate specification.
* sem_ch10.adb (Analyze_Compilation_Unit): For a child unit that is a
subprogram body, call Make_Child_Decl_Unit.
* lib.adb (Get_Cunit_Unit_Number): Verify that an entry not yet in the
table can only be the created specification of a child subprogram body
that is the main unit, which has not been entered in the table yet.
* errout.adb (Output_Messages): Ignore created specification of a
child subprogram body to prevent repeated listing of error messages.
* gnat1drv.adb (gnat1drv): The generated specification for a child
subprogram body does not generate code.
From-SVN: r146559
2009-04-22 Robert Dewar <dewar@adacore.com>
* lib-load.adb: Minor reformatting
2009-04-22 Arnaud Charlet <charlet@adacore.com>
* s-bitops.adb, s-bitops.ads (Raise_Error): Do not use Ada 05 syntax,
since this unit is now part of bootstrap units, so must use Ada 95
syntax only.
2009-04-22 Thomas Quinot <quinot@adacore.com>
* a-tasatt.adb: Minor reformatting
2009-04-22 Bob Duff <duff@adacore.com>
* s-stalib.ads: Remove "with System;" since we're inside System, so
it's unnecessary.
2009-04-22 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Add_Source): Always put the dependency file name in
the source record, as there may be a dependency file even if no object
file is created.
From-SVN: r146558
2009-04-22 Robert Dewar <dewar@adacore.com>
* lib-load.adb: MInor reformatting
* lib-load.ads: Minor reformatting
* sinfo.ads: Minor reformatting
From-SVN: r146557
2009-04-22 Bob Duff <duff@adacore.com>
* exp_pakd.adb: Minor comment fixes.
* sinfo.ads, par-load.adb, sem_ch10.adb, lib-load.ads, lib-load.adb
sem_ch12.adb: Change the meaning of the Library_Unit attribute to
include units containing instantiations, as well as units that are
generic instantiations.
* sem.adb: Include dependents and corresponding specs/bodies in the
unit walk.
* gcc-interface/Make-lang.in:
sem now depends on s-bitops, because of the packed array of Booleans.
From-SVN: r146556
2009-04-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/39735
* decl.c (add_hidden_procptr_result): Bugfix for procptr results.
(match_procedure_decl): Set if_source.
* expr.c (gfc_check_pointer_assign): Bugfix: Return after error.
And: Check interface also for IFSRC_UNKNOWN (return type may be known).
* gfortran.h (typedef enum ifsrc): Remove IFSRC_USAGE,
add documentation. Rename copy_formal_args and copy_formal_args_intr.
* interface.c (gfc_compare_interfaces): Check for return types,
handle IFSRC_UNKNOWN.
(compare_intr_interfaces,compare_actual_formal_intr): Obsolete, removed.
(gfc_procedure_use): Modified handling of intrinsics.
* intrinsic.c (add_functions): Bugfix for "dim".
* resolve.c (resolve_intrinsic): New function to resolve intrinsics,
which copies the interface from isym to sym.
(resolve_procedure_expression,resolve_function): Use new function
'resolve_intrinsic'.
(resolve_symbol): Add function attribute for externals with return type
and use new function 'resolve_intrinsic'.
* symbol.c (ifsrc_types): Remove string for IFSRC_USAGE.
(copy_formal_args): Renamed to gfc_copy_formal_args.
(copy_formal_args_intr): Renamed to gfc_copy_formal_args_intr.
* trans-const.c (gfc_conv_const_charlen): Handle cl==NULL.
2009-04-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/39735
* gfortran.dg/assumed_charlen_function_5.f90: Modified.
* gfortran.dg/external_initializer.f90: Modified.
* gfortran.dg/interface_26.f90: Modified.
* gfortran.dg/intrinsic_subroutine.f90: Modified.
* gfortran.dg/proc_ptr_3.f90: Modified.
* gfortran.dg/proc_ptr_15.f90: New.
* gfortran.dg/proc_ptr_result_1.f90: Modified.
From-SVN: r146554
* gcc-interface/decl.c (gnat_to_gnu_entity): Compute is_type predicate
on entry. Defer common processing for types. Reorder and clean up.
Compute the equivalent GNAT node and the default size for types only.
<E_Modular_Integer_Type>: Directly use Esize for the type's precision.
<E_Access_Type>: For an unconstrained designated type, do not pretend
that a dummy type is always made.
<all> Fix nits in comments.
(validate_size): Fix formatting nits and comments.
(set_rm_size): Likewise.
* gcc-interface/utils.c (create_param_decl): Replace bogus argument
passed to TARGET_PROMOTE_PROTOTYPES hook.
From-SVN: r146549
* fe.h (Get_External_Name): Declare.
* gcc-interface/gigi.h (concat_id_with_name): Rename to...
(concat_name): ...this.
* gcc-interface/decl.c (gnat_to_gnu_entity): Rename gnu_entity_id to
gnu_entity_name and adjust for above renaming.
<E_Access_Type>: Use create_concat_name to get the name of the various
types associated with unconstrained array types.
(make_aligning_type): Adjust for above renaming.
(maybe_pad_type): Likewise.
(components_to_record): Likewise. Use get_identifier_with_length for
the encoding of the variant.
(get_entity_name): Use get_identifier_with_length.
(create_concat_name): Likewise. Use Get_External_Name if no suffix.
Do not fiddle with Name_Buffer.
(concat_id_with_name): Rename to...
(concat_name): ...this. Use get_identifier_with_length. Do not fiddle
with Name_Buffer.
* gcc-interface/utils.c (rest_of_record_type_compilation): Adjust for
above renaming.
From-SVN: r146547
* config/sh/sh.c (prepare_cbranch_operands): Use
LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
(expand_cbranchdi4): Likewise.
(from_compare): Add cast to enum type.
(expand_cbranchsi4): Use add_reg_note.
(output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
(sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
(sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
(sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
* config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
instead of CODE_FOR_nothing.
(cbranchdi4): Likewise. Fix the order of arguments for
gen_rtx_fmt_ee.
(push_fpscr): Use add_reg_note.
(pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
From-SVN: r146539
2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/35711
cp/
* typeck.c (check_for_casting_away_constness): We diagnose casting
away any qualifiers not just constness.
(casts_away_constness): Mention that it handles more than just
constness.
testsuite/
* g++.dg/warn/pr35711.C: New.
* g++.dg/conversion/ptrmem2.C: Update.
From-SVN: r146537
* c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
NE_EXPR operations as well.
* c-parser.c (c_parser_condition): Do not set location information on
the condition.
(c_parser_conditional_expression): Likewise.
(c_parser_binary_expression): Set location information on operators.
* c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
TRUTH_NOT_EXPR has been folded.
* fold-const.c (fold_truth_not_expr): Copy location information from
the incoming expression to the outgoing one.
* gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
recursive calls on the LHS of the operator but pass that of the
operator to recursive calls on the RHS of the operator. Set it
on the COND_EXPR.
(shortcut_cond_expr): Set the locus of the operator on the second
COND_EXPR and that of the expression on the first in degenerate cases.
Pass the locus of the expression to calls to shortcut_cond_r.
Set the locus of the 'then' block on the associated jump, if any.
(gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
(gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
expression to call to gimplify_boolean_expr.
ada/
* gcc-interface/trans.c (gnat_to_gnu): Do not overwrite location info.
From-SVN: r146532