2014-11-20 Robert Dewar <dewar@adacore.com>
* freeze.adb, exp_dbug.adb, sem_ch13.adb: Minor reformatting.
2014-11-20 Thomas Quinot <quinot@adacore.com>
* einfo.ads: Fix minor typo in comment.
From-SVN: r217844
2014-11-20 Robert Dewar <dewar@adacore.com>
* inline.adb, sem_util.adb: Minor reformatting.
2014-11-20 Pierre-Marie Derodat <derodat@adacore.com>
* uintp.h (UI_Eq): Declare.
* urealp.h (Norm_Den): Declare.
(Norm_Num): Declare.
* exp_dbug.adb (Is_Handled_Scale_Factor): New.
(Get_Encoded_Name): Do not output ___XF GNAT encodings
for fixed-point types when these can be handled by GCC's DWARF
back-end.
2014-11-20 Thomas Quinot <quinot@adacore.com>
* sem_ch13.db (Inherit_Aspects_At_Freeze_Point): Inherit parent
SSO even if set through a pragma Default_Scalar_Storage_Order.
* freeze.adb (Set_SSO_From_Default): For a type extension,
do not let the default SSO override the parent SSO.
* gnat_rm.texi: document the above
From-SVN: r217842
2014-11-20 Thomas Quinot <quinot@adacore.com>
* sem_util.adb: Minor reformatting.
2014-11-20 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Linker_Section): Detect
duplicate Linker_Section.
2014-11-20 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb: Add guard for build-in-place boolean op.
2014-11-20 Yannick Moy <moy@adacore.com>
* checks.adb (Apply_Scalar_Range_Check): In GNATprove mode,
put a range check when an empty range is used, instead of an
error message.
* sinfo.ads Update comment on GNATprove mode.
2014-11-20 Arnaud Charlet <charlet@adacore.com>
* a-stream.ads, s-osinte-linux.ads, a-reatim.ads, a-calend.ads,
s-crtl.ads, interfac.ads, s-taskin.ads: Replace uses of 2 ** 63 and
2 ** 64 by references to Long_Long_Integer instead, to allow these
units to be analyzed by codepeer or spark when using a target
configuration file with long_long_size set to 32.
From-SVN: r217840
2014-11-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_util.adb (Extensions_Visible_Status): Modify the logic to account
for non-SPARK code.
(Object_Access_Level): In ASIS mode, recognize
a selected component with an implicit dereference so that it
yields the same value with and without expansion.
From-SVN: r217839
2014-11-20 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Implemented): In ASIS
(compile-only) mode, use original type declaration to determine
whether protected type implements an interface.
2014-11-20 Yannick Moy <moy@adacore.com>
* a-cfdlli.adb, a-cfdlli.ads, a-cfinve.adb, a-cfinve.ads,
* a-cofove.adb, a-cofove.ads: Mark spec as SPARK_Mode, and private
part/body as SPARK_Mode Off.
* a-cfhama.adb, a-cfhama.ads, a-cfhase.adb, a-cfhase.ads,
* a-cforma.adb, a-cforma.ads, a-cforse.adb, a-cforse.ads: Use
aspect instead of pragma for uniformity.
2014-11-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_util.adb (Is_EVF_Expression): Include
attributes 'Loop_Entry, 'Old and 'Update to the logic.
2014-11-20 Bob Duff <duff@adacore.com>
* sem_res.adb (Make_Call_Into_Operator): Don't
call Left_Opnd in the case of unary operators, because they only
have Right.
From-SVN: r217838
2014-11-20 Pascal Obry <obry@adacore.com>
* initialize.c (ProcListCS): New extern variable (critical section).
(ProcListEvt): New extern variable (handle).
(__gnat_initialize)[Win32]: Initialize the ProcListCS critical
section object and the ProcListEvt event.
* final.c (__gnat_finalize)[Win32]: Properly finalize the
ProcListCS critical section and the ProcListEvt event.
* adaint.c (ProcListEvt): New Win32 event handle.
(EnterCS): New routine to enter the critical section when dealing with
child processes chain list.
(LeaveCS): As above to exit from the critical section.
(SignalListChanged): Routine to signal that the chain process list has
been updated.
(add_handle): Use EnterCS/LeaveCS, also call SignalListChanged when the
handle has been added.
(__gnat_win32_remove_handle): Use EnterCS/LeaveCS,
also call SignalListChanged if the handle has been found and removed.
(remove_handle): Routine removed, implementation merged with the above.
(win32_wait): Use EnterCS/LeaveCS for the critical section. Properly
copy the PID list locally to ensure that even if the list is updated
the local copy remains valid. Add into the hl (handle list) the
ProcListEvt handle. This handle is used to signal that a change has
been made into the process chain list. This is to ensure that a waiting
call can be resumed to take into account new processes. We also make
sure that if the handle was not found into the list we start over
the wait call. Indeed another concurrent call to win32_wait()
could already have handled this process.
2014-11-20 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Actuals): The legality rule concerning
the use of class-wide actuals for a non-controlling formal are
not rechecked in an instance.
2014-11-20 Pascal Obry <obry@adacore.com>
* g-dirope.ads: Minor typo fix.
2014-11-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference,
Expand_Update_Attribute): Preserve the tag of a prefix by offering
a specific view of the class-wide version of the prefix.
From-SVN: r217837
2014-11-20 Javier Miranda <miranda@adacore.com>
* sem_ch6.adb (Analyze_Function_Return): For functions returning
an access to an interface add an implicit conversion to the target
type to force the displacement of the pointer to the object to
reference the secondary dispatch table.
(Check_Anonymous_Return): Skip internally built functions which handle
the case of null access when locating the master of a task.
* sem_res.adb (Valid_Conversion): Return true for internally
generated conversions of access to interface types added to force
the displacement of the pointer to reference the corresponding
dispatch table.
2014-11-20 Pascal Obry <obry@adacore.com>
* adaint.c (add_handle): realloc with a size of +100.
From-SVN: r217836
2014-11-20 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Make_Call_Into_Operator): In ASIS mode, propagate
back the resolved operands to the original call node, taking
into account that the original call may have named associations.
2014-11-20 Hristian Kirtchev <kirtchev@adacore.com>
* inline.adb (Has_Some_Contract): Change the
guard to test the Ekind of the entity rather than the Analyzed
flag. This handles partially analyzed contexts.
2014-11-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Analyze_Object_Renaming): In Ada 83 mode, do
not reject the renaming of a function result if the renaming
does not come for source.
2014-11-20 Robert Dewar <dewar@adacore.com>
* exp_util.ads: Minor addition of ??? clause.
2014-11-20 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Is_Variable): For an Ada 2012 implicit
dereference introduced for an indexing opertion, check that the
type of the corresponding access discriminant is not an access
to constant.
2014-11-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch6.adb (Find_Corresponding_Spec): Inherit
the ghostness of the matching spec, the same way convention
is inherited.
From-SVN: r217835
2014-11-20 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch3.adb (Analyze_Object_Declaration): Swap a couple of
tests in a condition so Following_Address_Clause is invoked
only if need be.
* exp_util.ads (Following_Address_Clause): Add small note.
From-SVN: r217834
2014-11-20 Pascal Obry <obry@adacore.com>
* adaint.c (remove_handle): New local routine without a lock.
(win32_wait): fix the critical section to properly protect needed
code, use new remove_handle.
(__gnat_win32_remove_handle): refactor code with remove_handle.
From-SVN: r217832
2014-11-20 Eric Botcazou <ebotcazou@adacore.com>
* inline.adb (Analyze_Inlined_Bodies): Iterate between loading
of the inlined bodies and instantiation of the generic bodies
until no more bodies need to be loaded.
2014-11-20 Vincent Celier <celier@adacore.com>
* prj.adb, prj.ads, prj-conf.adb: Minor change of procedure name:
Update_Ignore_Missing_With becomes Set_Ignore_Missing_With.
From-SVN: r217831
2014-11-20 Robert Dewar <dewar@adacore.com>
* exp_ch7.adb, sem_ch5.adb, sem_ch7.adb, sem_util.adb,
sem_ch6.adb: Minor reformatting.
2014-11-20 Javier Miranda <miranda@adacore.com>
* exp_ch4.adb (Expand_N_Type_Conversion): Add missing implicit
conversion to force the displacement of the pointer to the object
to reference the secondary dispatch table.
From-SVN: r217829
2014-11-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/63677
* tree-ssa-dom.c: Include gimplify.h for unshare_expr.
(avail_exprs_stack): Make a vector of pairs.
(struct hash_expr_elt): Replace stmt member with vop member.
(expr_elt_hasher::equal): Simplify.
(initialize_hash_element): Adjust.
(initialize_hash_element_from_expr): Likewise.
(dom_opt_dom_walker::thread_across_edge): Likewise.
(record_cond): Likewise.
(dom_opt_dom_walker::before_dom_children): Likewise.
(print_expr_hash_elt): Likewise.
(remove_local_expressions_from_table): Restore previous state
if requested.
(record_equivalences_from_stmt): Record &x + CST as constant
&MEM[&x, CST] for further propagation.
(vuse_eq): New function.
(lookup_avail_expr): For loads use the alias oracle to see
whether a candidate from the expr hash is usable.
(avail_expr_hash): Do not hash VUSEs.
* gcc.dg/tree-ssa/ssa-dom-cse-2.c: New testcase.
* gcc.dg/tree-ssa/ssa-dom-cse-3.c: Likewise.
From-SVN: r217827
* tree.c (free_lang_data_in_type): If BINFO has no important
information in it, set it to NULL.
(get_binfo_at_offset): Do not walk fields, only bases.
* ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
to be NULL.
* ipa-polymorphic-call.c (record_known_type): Likewise.
From-SVN: r217824
PR c++/63885
* constexpr.c (cxx_eval_constant_expression) [PARM_DECL]: Don't
complain yet about a reference.
[TARGET_EXPR]: Handle TARGET_EXPR with addr == true.
[ADDR_EXPR]: Make sure we don't take the address of a CONSTRUCTOR.
(cxx_bind_parameters_in_call): In the new scheme addr is always false.
* typeck.c (build_address): Don't take the address of a CONSTRUCTOR.
From-SVN: r217815
PR c++/57979
* init.c (decl_really_constant_value): Rename from
integral_constant_value.
(scalar_constant_value): Similar but limited to scalar results.
(decl_constant_value_safe): Remove.
(constant_value_1): Respect return_aggregate_cst_ok_p.
* typeck.c (decay_conversion): Use scalar_constant_value.
* call.c (convert_like_real): Likewise.
* cvt.c (ocp_convert): No need to check CLASS_TYPE_P.
* typeck.c (decay_conversion): Or ARRAY_TYPE.
* constexpr.c (struct constexpr_ctx): Add strict field.
(cxx_eval_constant_expression) [VAR_DECL]: Use it to select between
decl_constant_value and decl_really_constant_value.
(cxx_eval_outermost_constant_expr): Add strict parm.
(maybe_constant_init): Not strict.
(potential_constant_expression_1): Add strict parm.
Shorten most internal calls with RECUR macro.
* cp-tree.h, pt.c, semantics.c: Adjust.
From-SVN: r217814
gcc/ChangeLog:
PR jit/63854
* lra.c (lra): After creating live ranges in preparation for call
to lra_inheritance, set live_p to true.
From-SVN: r217806
gcc/jit/ChangeLog:
PR jit/63854
* jit-recording.c (recording::function::validate): Convert
"worklist" from vec<> to autovec<> to fix a leak.
From-SVN: r217802
gcc/ChangeLog:
PR jit/63854
* bb-reorder.c
(find_rarely_executed_basic_blocks_and_crossing_edges): Convert
local bbs_in_hot_partition from vec<> to auto_vec<>.
From-SVN: r217794