2009-07-07 Gary Dismukes <dismukes@adacore.com>
* exp_ch6.adb (Expand_Actuals): Call Add_Call_By_Copy_Code for in out
parameters when the subtype of the actual is not known to be a subrange
of the formal's subtype.
(Expand_Call): Generate a range check only in the E_In_parameter case
(in out parameter range checks are now handled in Expand_Actuals).
* exp_ch4.adb (Expand_N_Slice): Restore code that calls
Enable_Range_Check.
2009-07-07 Robert Dewar <dewar@adacore.com>
* a-stwise.adb, a-stzsea.adb, a-strsea.adb: Add comments
2009-07-07 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Expand_Interface_Conversion): Handle access type whose
designated type comes from a limited views.
2009-07-07 Emmanuel Briot <briot@adacore.com>
* prj.ads, prj-nmsc.adb (Mark_Excluded_Sources): Fix handling of
locally removed files that are later made visible again in an importing
project.
2009-07-07 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Clarify documentation of Stream_Convert pragma
2009-07-07 Sergey Rybin <rybin@adacore.com>
* gnat_ugn.texi: Add an example to the description of gnatcheck
'Style_Checks' rule option.
2009-07-07 Tristan Gingold <gingold@adacore.com>
* seh_init.c: Fix inline assembly statement in seh_init.c
2009-07-07 Ed Schonberg <schonberg@adacore.com>
* sem_warn.adb (Check_References): Do not emit warnings on formals of
an entry body. Only the formals of the entry declaration are traced.
From-SVN: r149328
2009-07-07 Robert Dewar <dewar@adacore.com>
* s-osprim-mingw.adb: Minor reformatting
Minor code reorganization
* a-stzsea.adb, a-stwise.adb, a-strsea.adb (Index): Redo previous change
(Ind should be Integer).
From-SVN: r149327
2009-07-07 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb (Process_Naming): canonicalize file suffixes read in the
project file.
2009-07-07 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Expand_Freeze_Record_Type): Add extra formals to
primitive operations, in case one of them is called in the
initialization procedure for the type.
From-SVN: r149325
PR middle-end/40669
* tree-tailcall.c (adjust_return_value_with_ops,
create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
if it has complex or vector type.
* gcc.dg/pr40669.c: New test.
From-SVN: r149319
2009-07-07 Gary Dismukes <dismukes@adacore.com>
* checks.adb (Generate_Range_Check): Replace type conversions with
unchecked conversions to support the case of performing range checks
on Enum'Val (permits integer values to be converted to enumeration).
* exp_attr.adb (Expand_N_Attribute_Reference, cases Attribute_Pred,
Attribute_Succ): Set Do_Range_Check to False before calling
Expand_Pred_Succ, to prevent gigi from generating any range checks.
(Expand_N_Attribute_Reference, case Attribute_Val):
Generate a range check when needed (and set Do_Range_Check to False).
* exp_ch3.adb (Expand_N_Object_Declaration): Generate a range check on
scalar object initialization if needed.
* exp_ch4.adb (Expand_Allocator_Expression): Generate range checks
when needed on scalar allocators.
(Expand_N_Qualified_Expression): Generate range check when needed.
(Expand_N_Slice): Remove call to Enable_Range_Check on slice ranges.
Checks on slice ranges handled in Resolve_Slice.
* exp_ch5.adb (Expand_N_Assignment_Statement): Generate a range check,
when needed, for all scalar assignments, not just discrete.
(Expand_Simple_Function_Return): Resolve the conversion created for a
scalar function return so that the conversion will get expanded to
generate a possible constraint check.
* exp_ch6.adb (Expand_Actuals): Call Add_Call_By_Copy_Code for out and
in out scalar actuals when subtypes don't match, to ensure generation
of return checks (and set Do_Range_Check to False).
(Expand_Call): Uncomment code to perform range checks, but make it apply
only to in and in out parameters (checks on parameter returns are
handled in Expand_Actuals). If a scalar actual for a call to a derived
subprogram is marked as needing a range check, peform it here (and set
Do_Range_Check to False).
* sem_aggr.adb (Resolve_*_Aggregate.Resolve_Aggr_Expr): Generate a
range check on scalar component associations when needed.
* sem_eval.adb (In_Subrange_Of): Return False when the first type has
infinities but the second type does not, as these aren't compatible
floating-point types.
* sem_res.adb (Resolve_Slice): In the case where the prefix of the
slice is itself a slice, pick up the Etype of the prefix. This handles
the case where the prefix was an Image attribute expanded to a slice,
and ensures that we get the subtype with the slice constraint rather
than the unconstrained subbtype of the 'Image.
From-SVN: r149318
2009-07-07 Robert Dewar <dewar@adacore.com>
* scng.adb: Minor reformattting
* par-ch2.adb (Scan_Pragma_Argument_Association): Pragma argument
association allows conditional expression without parens.
* par-ch4.adb (P_Name): Attribute arguments can be conditional
expressions without enclosing parentheses, and also as parameters,
indexing expressions etc.
(P_Conditional_Expression): New procedure
(P_Expression_If_OK): New procedure
* par.adb (P_Conditional_Expression): New procedure
(P_Expression_If_OK): New procedure
* sem_ch4.adb (Analyze_Conditional_Expression): Allow for two argument
form of conditional expression.
* sem_res.adb (Resolve_Conditional_Expression): Deal with supplying
missing True argument if ELSE argument missing.
* sinfo.adb (Is_Elsif): New flag
* sinfo.ads (N_Conditional_Expression): This node is now a syntactic
part of the language, and the documentation is modified accordingly.
(Is_Elsif): New flag
From-SVN: r149316
* config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
* config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
unspecified accesses to control registers.
* config/mep/intrinsics.md: Regenerate.
* config/mep/intrinsics.h: Regenerate.
* config/mep/mep-intrin.h: Regenerate.
From-SVN: r149311
* tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
if it has one. Handle cases where VAR does not have an
annotation or cfun is NULL.
From-SVN: r149291
* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu,
setjmp_longjmp): Attach the exception propagation reraise fallback
to the sequence end label location when we have it.
From-SVN: r149285
* config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
__FMOVD_ENABLED__ is defined.
* config/sh/sh.h
(TARGET_FMOVD): Provide a default definition.
(MASK_FMOVD): Likewise.
(TARGET_CPU_CPP_BUILTINS): Define
__FMOVD_ENABLED__ if TARGET_FMOVD is true.
* config/sh/sh.md (movdf_i4): For alternative 0 use either one or
two fmov instructions depending upon whether TARGET_FMOVD is
enabled.
(split for DF load from memory into register): Also handle
MEMs which consist of REG+DISP addressing.
(split for DF store from register to memory): Likewise.
(movsf_ie): Always use single fp_mode.
* config/sh/sh.c (sh_override_options): Do not automatically
enable TARGET_MOVD for the SH2A when supporting doubles - leave
that to the -mfmovd command line switch.
(broken_move): Do not restrict fldi test to only the SH4 and SH4A.
(fldi_ok): Always allow.
* config/sh/sh.opt (mfmovd): Remove this switch.
* doc/invoke.texi (-mfmovd): Remove documentation of this switch.
Co-Authored-By: DJ Delorie <dj@redhat.com>
From-SVN: r149283
PR rtl-optimization/30807
* postreload.c (reload_combine): For every new use of REG_SUM,
record the use of BASE.
Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org>
From-SVN: r149282
gcc/cp/
2009-07-06 Simon Martin <simartin@users.sourceforge.net>
PR c++/40557
* pt.c (perform_typedefs_access_check, get_types_needing_access_check,
append_type_to_template_for_access_check_1): Use
RECORD_OR_UNION_CODE_P.
gcc/testsuite/
2009-07-06 Simon Martin <simartin@users.sourceforge.net>
PR c++/40557
* g++.dg/template/union2.C: New test.
From-SVN: r149276
2009-07-05 Paul Thomas <pault@gcc.gnu.org>
and Tobias Burnus <burnus@gcc.gnu.org>
PR fortran/40646
* gfortran.h : Change the compcall member of the 'value' union
in the gfc_expr structure so that its fields overlap with the
'function' member.
* resolve.c (resolve_compcall): Set the function.esym.
* trans-expr.c (gfc_trans_arrayfunc_assign): Use
is_proc_ptr_comp in the condition.
* dependency.c (gfc_full_array_ref_p): Ensure that 'contiguous'
retunrs a value if non-NULL.
2009-07-05 Paul Thomas <pault@gcc.gnu.org>
and Tobias Burnus <burnus@gcc.gnu.org>
PR fortran/40646
* gfortran.dg/func_assign_3.f90 : New test.
From-SVN: r149262
* pt.c (retrieve_specialization): Don't get confused by a
using-declaration that brings in another instance of this template
from a base class.
* ptree.c (cxx_print_type): Fix logic.
From-SVN: r149247
* inclhack.def (darwin_stdint_5, darwin_stdint_6,
darwin_stdint_7): New fixes.
* fixincl.x: Regenerate.
* tests/base/stdint.h: Adjust test for new fixes.
From-SVN: r149242
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): For integer
maxloc initialize limit to -huge-1 rather than just -huge.
* gfortran.dg/maxloc_1.f90: New test.
From-SVN: r149236