2009-07-09 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.adb (Install_Context): If the unit is a package body,
install the private with_clauses of the corresponding package
declaration.
2009-07-09 Robert Dewar <dewar@adacore.com>
* checks.adb: Minor reformatting
2009-07-09 Vasiliy Fofanov <fofanov@adacore.com>
* ug_words, gnat_ugn.texi: Move VMS equivalents of the last check in
into ug_words.
2009-07-09 Thomas Quinot <quinot@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Address):
Do not warn for a constant overlaying any constant object
From-SVN: r149417
2009-07-09 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.adb (Install_Context): If the unit is a package body,
install the private with_clauses of the corresponding package
declaration.
2009-07-09 Robert Dewar <dewar@adacore.com>
* checks.adb: Minor reformatting
2009-07-09 Vasiliy Fofanov <fofanov@adacore.com>
* ug_words, gnat_ugn.texi: Move VMS equivalents of the last check in
into ug_words.
2009-07-09 Thomas Quinot <quinot@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Address):
Do not warn for a constant overlaying any constant object
From-SVN: r149416
2009-07-09 Thomas Quinot <quinot@adacore.com>
* g-socket.adb (Check_Selector): Do not create local copies of the
socket sets on the stack.
2009-07-09 Vasiliy Fofanov <fofanov@adacore.com>
* gnat_ugn.texi: Add missing VMS translations.
From-SVN: r149414
2009-07-09 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Precondition): Do not analyze the
condition, to prevent generation of visible code during expansion,
when Check is not enabled.
2009-07-09 Gary Dismukes <dismukes@adacore.com>
* checks.adb (Install_Static_Check): Call Possible_Local_Raise so that
the check gets registered for any available local handler
(Set_Local_Raise).
* sem_util.adb: Add with and use of Exp_Ch11.
(Apply_Compile_Time_Constraint_Error): Call Possible_Local_Raise so
that the check gets registered for any available local handler.
* exp_ch4.adb (Expand_N_Slice): Remove call to Enable_Range_Check
on slice ranges.
2009-07-09 Steve Baird <baird@adacore.com>
* exp_ch11.adb (Force_Static_Allocation_Of_Referenced_Objects): New
function.
(Expand_N_Exception_Declaration): Fix handling of exceptions
declared in a subprogram.
From-SVN: r149413
2009-07-09 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_Expression): If the expression is the name of a
function in a call, and the function has not been frozen yet, create
extra formals for it to ensure that the proper actuals are created
when expanding the call.
2009-07-09 Emmanuel Briot <briot@adacore.com>
* prj-pp.adb (Print): Fix handling of source index when set on a
declaration node.
From-SVN: r149408
2009-07-09 Ed Schonberg <schonberg@adacore.com>
* einfo.ads, einfo.adb: New attribute Related_Expression, used to link
a temporary to the source expression whose value it captures.
* exp_util.adb (Remove_Side_Effects): Set Related_Expression as needed.
From-SVN: r149406
* combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
creating LHS paradoxical subregs. Fix surrounding returns to
use NULL_RTX rather than 0.
From-SVN: r149401
2009-07-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/40330
PR libfortran/40662
* io/io.h (st_parameter_dt): Define format_not_saved bit used to signal
whether the parsed format data was previously saved. Used to determine
if the current format data should be freed or not.
* io/transfer.c (st_read_done): Use the format_not_saved bit.
(st_write_done): Likewise.
* io/format.c (parse_format_list): Add boolean pointer to arg list. This
pointer is used to return status to the caller regarding whether it is
safe to cache the parsed format data. Currently, if a FMT_STRING token
is encounetered, it is not safe to cache. Also, added a local boolean
variable to hold this information as recursive calls to
parse_format_list are made. Remove previous save_format logic.
(parse_format): Do not use the format caching facility if the current
unit is an internal unit or if it is not safe to save parsed format
data.
From-SVN: r149398
2009-07-08 Mark Wielaard <mjw@redhat.com>
PR debug/40659
* dwarf2out.c (add_data_member_location_attribute): When we have
only a constant offset don't emit a new location description using
DW_OP_plus_uconst, but just add the constant with add_AT_int, when
dwarf_version > 2.
From-SVN: r149377
2008-07-08 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40591
* decl.c (match_procedure_interface): Correct the association
or creation of the interface procedure's symbol.
2008-07-08 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40591
* gfortran.dg/proc_ptr_21.f90: New test.
From-SVN: r149362
* config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
cpmovtocc_P0S_P1): Mark volatile. Note which registers are
written to.
* config/mep/intrinsics.md: Regenerated.
* config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
registers when asm() or calls are detected.
From-SVN: r149361
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