Eric Botcazou [Tue, 30 Aug 2011 16:49:06 +0000 (16:49 +0000)]
system-irix-n64.ads, [...]: Remove GCC_ZCX_Support.
* system-irix-n64.ads, system-linux-armeb.ads, system-linux-armel.ads,
system-linux-mips.ads, system-linux-mipsel.ads,
system-linux-mips64el.ads, system-linux-ppc64.ads,
system-linux-sparcv9.ads, system-rtems.ads: Remove GCC_ZCX_Support.
From-SVN: r178336
Eric Botcazou [Tue, 30 Aug 2011 16:46:12 +0000 (16:46 +0000)]
ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.
* gcc-interface/ada-tree.h (TYPE_EXTRA_SUBTYPE_P): Add internal check.
* gcc-interface/utils2.c (build_binary_op): Tighten condition.
(build_unary_op): Likewise.
From-SVN: r178335
Eric Botcazou [Tue, 30 Aug 2011 16:35:54 +0000 (16:35 +0000)]
raise-gcc.c: Do not include coretypes.h and tm.h.
* raise-gcc.c: Do not include coretypes.h and tm.h.
(setup_to_install): Remove test for compiler macro.
* targext.c: Document use for the library.
* gcc-interface/Makefile.in: Fix comment on the use of IN_GCC.
From-SVN: r178333
Eric Botcazou [Tue, 30 Aug 2011 16:15:49 +0000 (16:15 +0000)]
decl.c (gnat_to_gnu_entity): Do not convert the expression to the nominal type if...
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not convert
the expression to the nominal type if the latter is a record type with
a variant part and the type of the former is a record type without one.
Co-Authored-By: Laurent Rougé <laurent.rouge@menta.fr>
From-SVN: r178331
Paolo Carlini [Tue, 30 Aug 2011 15:34:50 +0000 (15:34 +0000)]
stl_iterator.h (make_move_iterator): Implement DR2061.
2011-08-30 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_iterator.h (make_move_iterator): Implement DR2061.
* testsuite/24_iterators/move_iterator/dr2061.cc: New.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
line numbers.
From-SVN: r178330
Steven G. Kargl [Tue, 30 Aug 2011 15:34:01 +0000 (15:34 +0000)]
re PR fortran/45170 ([F2003] allocatable character lengths)
2011-08-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/45170
* trans-stmt.c (gfc_trans_allocate): Evaluate the substring.
2011-08-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/45170
* gfortran.dg/allocate_with_source_2.f90: New test
From-SVN: r178329
Jason Merrill [Tue, 30 Aug 2011 15:28:40 +0000 (11:28 -0400)]
re PR c++/50220 ([C++0x] [4.7 Regression] ICE when capturing a by-reference template function argument in a lambda)
PR c++/50220
* semantics.c (add_capture): Call complete_type for copy.
From-SVN: r178326
Jason Merrill [Tue, 30 Aug 2011 15:28:30 +0000 (11:28 -0400)]
re PR c++/50234 (internal compiler error: in cxx_eval_component_reference, at cp/semantics.c:6527)
PR c++/50234
* semantics.c (cxx_eval_component_reference): Handle
value-initialization for omitted initializers.
From-SVN: r178325
Andrew Stubbs [Tue, 30 Aug 2011 15:02:26 +0000 (15:02 +0000)]
arm.c (optimal_immediate_sequence_1): Make b1, b2, b3 and b4 unsigned.
2011-08-30 Andrew Stubbs <ams@codesourcery.com>
gcc/
* config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
b3 and b4 unsigned.
From-SVN: r178324
Arnaud Charlet [Tue, 30 Aug 2011 15:01:43 +0000 (17:01 +0200)]
Switch to GPLv3
From-SVN: r178323
Arnaud Charlet [Tue, 30 Aug 2011 14:58:35 +0000 (16:58 +0200)]
Update dependencies
From-SVN: r178322
Arnaud Charlet [Tue, 30 Aug 2011 14:56:45 +0000 (16:56 +0200)]
[multiple changes]
2011-08-30 Jose Ruiz <ruiz@adacore.com>
* s-taskin.ads (Common_ATCB): Add field domain which contains the
dispatching domain to which the task belongs.
* s-taskin.adb (Initialize): Create the default system dispatching
domain and make the environment task part of it.
* s-mudido.ads: Add this new spec for standard Ada 2012 package
Ada.Multiprocessors.Dispatching_Domains.
* s-mudido.adb: Add this new body for targets not supporting
dispatching domains.
* s-mudido-affinity.adb: Add this new body for targets supporting
dispatching domains setting the affinity to a CPU set.
* bindgen.adb (Dispatching_Domain_Used, Check_Dispatching_Domains_Used,
Gen_Adainit): When package System.Multiprocessors.Dispatching_Domains
is used we call the procedure to signal that when we are about to call
the main subprogram no new dispatching domain can be created.
(Check_File_In_Partition): Factor out the common functionality used by
Check_System_Restrictions_Used and Check_Dispatching_Domains_Used.
* s-tassta.adb (Create_Task): Tasks inherit the dispatching domain of
their activators.
* s-taprop.ads (Set_Task_Affinity): Add this new procedure to set task
affinities.
* s-taprop-dummy.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vms.adb
(Set_Task_Affinity): Dummy null body for these targets not supporting
task affinities.
s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-solaris.adb,
s-taprop-vxworks.adb (Create_Task, Enter_Task, Initialize): Handle
dispatching domains and set the affinity of the environment task.
(Set_Task_Affinity): Procedure that uses the underlying CPU set
functionality to handle dispatching domains, pragma CPU and Task_Info.
s-winext.ads (SetThreadAffinityMask): Import this function needed to
set CPU masks.
* s-osinte-solaris.ads (psetit_t, pset_create, pset_assign, pset_bind):
Import the functionality to handle CPU set affinities.
* affinity.c: New file.
* s-osinte-vxworks.ads, s-vxwext.ads, s-vxwext-kernel.ads,
s-vxwext-rtp.ads (taskMaskAffinitySet): Add this new spec for setting
affinity masks.
* s-vxwext.adb, s-vxwext-kernel.adb, s-vxwext-rtp.adb
(taskMaskAffinitySet): Body returning an error indicating that task
affinities are not supported.
Makefile.rtl: Indicate that s-mudido is part of libgnarl.
* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks SMP,
Solaris, Windows, and {x86,PowerPC, ia64,x86_64} Linux): Use the
s-mudido-affinity.adb body which supports task affinities.
2011-08-30 Thomas quinot <quinot@adacore.com>
* sem_ch13.adb: Minor reformatting.
2011-08-30 Vincent Celier <celier@adacore.com>
* vms_conv.adb (Process_Argument): When the qualifier
/UNCHECKED_SHARED_LIB_IMPORTS is for GNAT COMPILE, do not put the
corresponding switch --unchecked-shared-lib-imports after -cargs, as it
is for gnatmake, not for the compiler.
2011-08-30 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Quantified_Expression): Analyze iterator
specification and condition only in Semantics_Only mode. Otherwise the
analysis is done after expression has been rewritten as loop.
* sem_ch5.adb (Analyze_Iterator_Specification): Always generate a
temporary for the iterator name (the domain of iteration) because it
may need finalization actions and these must be generated outside of
the loop.
* sem_res.adb (Resolve_Quantified_Expression): Resolve only in
Semantic_Only mode.
* exp_ch4.adb (Expand_Quantified_Expression): Analyze and resolve once
rewritten as loop.
* exp_ch5.adb (Expand_Iterator_Loop): Code clean-up, now that the
iterator is always an expression.
2011-08-30 Robert Dewar <dewar@adacore.com>
* par-ch4.adb (P_Unparen_Cond_Case_Quant_Expression): New function
(P_Expression_If_OK): New spec checks parens
(P_Expression_Or_Range_Attribute_If_OK): New spec checks parens
* par.adb (P_Expression_If_OK): New spec checks parens
(P_Expression_Or_Range_Attribute_If_OK): New spec checks parens
From-SVN: r178321
Andrew Stubbs [Tue, 30 Aug 2011 14:28:17 +0000 (14:28 +0000)]
arm.c (arm_gen_constant): Set can_negate correctly when code is SET.
2011-08-30 Andrew Stubbs <ams@codesourcery.com>
gcc/
* config/arm/arm.c (arm_gen_constant): Set can_negate correctly
when code is SET.
From-SVN: r178319
Yannick Moy [Tue, 30 Aug 2011 14:23:30 +0000 (14:23 +0000)]
* gcc-interface/Make-lang.in: Update dependencies.
From-SVN: r178318
Arnaud Charlet [Tue, 30 Aug 2011 14:20:11 +0000 (16:20 +0200)]
[multiple changes]
2011-08-30 Yannick Moy <moy@adacore.com>
* exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
expansion in Alfa mode.
* exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public
* exp_alfa.adb, exp_alfa.ads: New package defining light expansion for
Alfa mode.
* gnat1drv.adb (Adjust_Global_Switches): Update Comment.
* sem_res.adb: Ditto.
2011-08-30 Thomas Quinot <quinot@adacore.com>
* g-socket.ads: Minor documentation adjustment.
From-SVN: r178317
Arnaud Charlet [Tue, 30 Aug 2011 14:16:43 +0000 (16:16 +0200)]
exp_ch9.adb, [...]: Minor reformatting.
2011-08-30 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb, s-tassta.adb, s-secsta.adb: Minor reformatting.
2011-08-30 Yannick Moy <moy@adacore.com>
* exp_ch6_light.adb, exp_ch6_light.ads, exp_attr_light.adb,
exp_attr_light.ads, exp_ch7_light.adb, exp_ch7_light.ads,
exp_light.adb, exp_light.ads, exp_prag.adb, expander.adb,
gnat1drv.adb, exp_ch11.adb, exp_ch6.adb, exp_ch6.ads, exp_aggr.adb:
Revert change which introduced files for "light"
expansion, to be replaced by a single file for Alfa expansion.
From-SVN: r178316
Tristan Gingold [Tue, 30 Aug 2011 14:13:06 +0000 (14:13 +0000)]
Renames Ratio to Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage
From-SVN: r178315
Robert Dewar [Tue, 30 Aug 2011 14:12:00 +0000 (14:12 +0000)]
opt.ads, [...]: Update comment.
2011-08-30 Robert Dewar <dewar@adacore.com>
* opt.ads, s-soflin.adb, exp_ch9.adb, sem_res.adb: Update comment.
Minor code reorg/reformatting.
From-SVN: r178314
Arnaud Charlet [Tue, 30 Aug 2011 14:06:25 +0000 (16:06 +0200)]
[multiple changes]
2011-08-30 Yannick Moy <moy@adacore.com>
* opt.adb, opt.ads (Full_Expander_Active): New function defines a
common shorthand for (Expander_Active and not ALFA_Mode) that can be
used for testing full expansion, that is active expansion not in the
reduced mode for Alfa
* exp_ch4.adb, exp_ch9.adb, exp_disp.adb, sem_ch10.adb, sem_ch12.adb,
sem_ch6.adb, sem_ch9.adb, sem_res.adb: Use newly defined "flag" instead
of the verbose (Expander_Active and not ALFA_Mode)
2011-08-30 Tristan Gingold <gingold@adacore.com>
* s-parame-vms-alpha.ads, s-parame-hpux.ads, s-tassta.adb,
s-tarest.adb, s-parame-vms-ia64.ads, s-soflin.adb, s-secsta.adb,
s-secsta.ads, s-parame.ads, s-parame-vxworks.ads: Renames Ratio to
Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage.
From-SVN: r178313
Richard Guenther [Tue, 30 Aug 2011 14:06:00 +0000 (14:06 +0000)]
re PR tree-optimization/48571 (Missed data-dependence for (bogus?) reconstructed array-refs)
2011-08-30 Richard Guenther <rguenther@suse.de>
PR middle-end/48571
* gimple.h (maybe_fold_offset_to_address): Remove.
(maybe_fold_offset_to_reference): Likewise.
(maybe_fold_stmt_addition): Likewise.
(may_propagate_address_into_dereference): Likewise.
* tree-inline.c (remap_gimple_op_r): Do not reconstruct
array references.
* gimple-fold.c (canonicalize_constructor_val): Likewise.
Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
addresses instead.
(may_propagate_address_into_dereference): Remove.
(maybe_fold_offset_to_array_ref): Likewise.
(maybe_fold_offset_to_reference): Likewise.
(maybe_fold_offset_to_address): Likewise.
(maybe_fold_stmt_addition): Likewise.
(fold_gimple_assign): Do not reconstruct array references but
instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
MEM_REF addresses.
(gimple_fold_stmt_to_constant_1): Likewise.
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
* gimplify.c (gimplify_conversion): Likewise.
(gimplify_expr): Likewise.
* gcc.c-torture/execute/pr48571-1.c: New testcase.
* gcc.dg/tree-ssa/ssa-ccp-25.c: Remove.
* gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise.
* gcc.dg/pr36902.c: XFAIL.
From-SVN: r178312
Ilya Tocar [Tue, 30 Aug 2011 14:02:53 +0000 (14:02 +0000)]
Add FMA intrinsics and testcases.
gcc/
2011-08-30 Ilya Tocar <ilya.tocar@intel.com>
* config/i386/fmaintrin.h: New.
* config.gcc: Add fmaintrin.h.
* config/i386/i386.c
(enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
<IX86_BUILTIN_VFMADDSD3>: Likewise.
* config/i386/sse.md (fmai_vmfmadd_<mode>): New.
(*fmai_fmadd_<mode>): Likewise.
(*fmai_fmsub_<mode>): Likewise.
(*fmai_fnmadd_<mode>): Likewise.
(*fmai_fnmsub_<mode>): Likewise.
* config/i386/immintrin.h: Add fmaintrin.h.
gcc/testsuite/
2011-08-30 Ilya Tocar <ilya.tocar@intel.com>
* gcc.target/i386/fma-check.h: New.
* gcc.target/i386/fma-256-fmaddXX.c: New testcase.
* gcc.target/i386/fma-256-fmaddsubXX.c: Likewise.
* gcc.target/i386/fma-256-fmsubXX.c: Likewise.
* gcc.target/i386/fma-256-fmsubaddXX.c: Likewise.
* gcc.target/i386/fma-256-fnmaddXX.c: Likewise.
* gcc.target/i386/fma-256-fnmsubXX.c: Likewise.
* gcc.target/i386/fma-fmaddXX.c: Likewise.
* gcc.target/i386/fma-fmaddsubXX.c: Likewise.
* gcc.target/i386/fma-fmsubXX.c: Likewise.
* gcc.target/i386/fma-fmsubaddXX.c: Likewise.
* gcc.target/i386/fma-fnmaddXX.c: Likewise.
* gcc.target/i386/fma-fnmsubXX.c: Likewise.
* gcc.target/i386/fma-compile.c: Likewise.
* gcc.target/i386/i386.exp (check_effective_target_fma): New.
* gcc.target/i386/sse-12.c: Add -mfma.
* gcc.target/i386/sse-13.c: Likewise.
* gcc.target/i386/sse-14.c: Likewise.
* gcc.target/i386/sse-22.c: Likewise.
* gcc.target/i386/sse-23.c: Likewise.
* g++.dg/other/i386-2.C: Likewise.
* g++.dg/other/i386-3.C: Likewise.
From-SVN: r178311
Arnaud Charlet [Tue, 30 Aug 2011 14:01:42 +0000 (16:01 +0200)]
[multiple changes]
2011-08-30 Gary Dismukes <dismukes@adacore.com>
* sem_res.adb (Valid_Conversion): Revise test for implicit anonymous
access conversions to check that the conversion is a rewritten node,
rather than just having Comes_From_Source set to False, which wasn't
sufficient.
2011-08-30 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb, sem_ch9.adb, sem_ch6.adb, exp_disp.adb,
g-socket.ads: Minor reformatting.
2011-08-30 Thomas Quinot <quinot@adacore.com>
* sem_util.adb: Minor reformatting.
2011-08-30 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c: Never catch exception if _UA_FORCE_UNWIND flag is set,
to be compliant with the ABI.
From-SVN: r178310
Arnaud Charlet [Tue, 30 Aug 2011 13:57:09 +0000 (15:57 +0200)]
[multiple changes]
2011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch12.adb (Check_Private_View): Exchange the private and full view
of a designated type when the related access type is an actual in an
instance. This ensures that the full view of designated type is
available when inside the body of the instance.
2011-08-30 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (May_Be_Lvalue): To determine whether a reference may be
in a position to be modified, a slice is treated like an indexed
component.
From-SVN: r178308
Arnaud Charlet [Tue, 30 Aug 2011 13:53:38 +0000 (15:53 +0200)]
[multiple changes]
2011-08-30 Thomas Quinot <quinot@adacore.com>
* s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value for
field tv_sec in struct timeval.
2011-08-30 Yannick Moy <moy@adacore.com>
* exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect several
blocks of code doing full expansion, previously only guarded by
Expander_Active, by anding the test that ALFA_Mode is not set
2011-08-30 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete,
add the function to the list of private dependents, for subsequent
legality check on Taft amendment types.
* sem_ch12.adb (Analyze_Formal_Incomplete_Type): Initialize
Private_Dependents, as for other incomplete types.
* sem_util.adb (Wrong_Type): Avoid cascaded errors when a
Taft-amendment type is used as the return type of a function.
From-SVN: r178307
Javier Miranda [Tue, 30 Aug 2011 13:50:19 +0000 (13:50 +0000)]
sem_ch3.adb (Check_Abstract_Overriding): Code cleanup...
2011-08-30 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace code
which emits an error by a call to a new routine which report the error.
* exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if the
entity does not cover an existing interface.
* errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorize
code.
* sem_ch6.adb (Check_Conformance): Add specific error for wrappers of
protected procedures or entries whose mode is not conformant.
(Check_Synchronized_Overriding): Code cleanup: replace code which emits
an error by a call to a new routine which report the error.
From-SVN: r178306
Arnaud Charlet [Tue, 30 Aug 2011 13:44:27 +0000 (15:44 +0200)]
[multiple changes]
2011-08-30 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Minor change.
* exp_attr_light.adb: Minor reformatting.
2011-08-30 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb: Patch inheritance of aspects in
Complete_Private_Subtype, to avoid infinite loop.
From-SVN: r178305
Arnaud Charlet [Tue, 30 Aug 2011 13:41:24 +0000 (15:41 +0200)]
[multiple changes]
2011-08-30 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have
been reported and a subprogram covering an interface primitive is not
found then skip generating the internal entity. Done to avoid crashing
the frontend.
(Check_Abstract_Overriding): Change text of error of wrong formal of
protected subprogram or entry. Done for consistency to emit exactly the
same error reported by Check_Synchronized_Overriding. In addition, the
error is restricted to protected types (bug found working on AI05-0090)
2011-08-30 Yannick Moy <moy@adacore.com>
* exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
expansion in Alfa mode.
* exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public.
* exp_light.adb, exp_light.ads: New package defining light expansion.
* expander.adb (Expand): Call light expansion in Alfa mode
* exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6
constructs.
* exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7
constructs.
* exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes
* gnat1drv.adb (Adjust_Global_Switches): Comment
2011-08-30 Yannick Moy <moy@adacore.com>
* lib-xref-alfa.adb: Minor refactoring.
2011-08-30 Yannick Moy <moy@adacore.com>
* exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa
mode.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
expansion in Alfa mode.
* sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa
mode.
2011-08-30 Robert Dewar <dewar@adacore.com>
* debug_a.adb: Update comment.
From-SVN: r178304
Robert Dewar [Tue, 30 Aug 2011 13:31:38 +0000 (13:31 +0000)]
exp_ch5.adb, [...]: Minor reformatting
2011-08-30 Robert Dewar <dewar@adacore.com>
* exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb,
sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb,
exp_ch4.adb, exp_ch6.adb, s-bbthre.adb, lib-xref-alfa.adb,
sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting
2011-08-30 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Add section on C.6(16) implementation advice for pragma
volatile.
From-SVN: r178303
Kirill Yukhin [Tue, 30 Aug 2011 13:28:21 +0000 (13:28 +0000)]
Rename avx2-vmovmskb-2.c to avx2-vpmovmskb-2.c.
2011-08-30 Kirill Yukhin <kirill.yukhin@intel.com>
PR testsuite/50185
* gcc.target/i386/avx2-vmovmskb-2.c: Rename to ...
* gcc.target/i386/avx2-vpmovmskb-2.c: ... this. Update.
From-SVN: r178302
Hristian Kirtchev [Tue, 30 Aug 2011 13:28:16 +0000 (13:28 +0000)]
exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to Build_Finalization_Master by supplying an insertion node...
2011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to
Build_Finalization_Master by supplying an insertion node and enclosing
scope. In its old version, the call did not generate a finalization
master.
(Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code to
recognize anonymous access-to-controlled components. Rewrite the
machinery which creates finalization masters to service anonymous
access-to-controlled components of a record type. In its current state,
only one heterogeneous master is necessary to handle multiple anonymous
components.
(Freeze_Type): Comment reformatting.
* rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id and
RE_Unit_Table.
* s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery which
associates TSS primitive Finalize_Address with either the master itself
or with the internal hash table depending on the mode of operation of
the master.
From-SVN: r178301
Javier Miranda [Tue, 30 Aug 2011 13:23:33 +0000 (13:23 +0000)]
exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an interface type then do not generate...
2011-08-30 Javier Miranda <miranda@adacore.com>
* exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an
interface type then do not generate code to compare this component.
Required since they have no components and their equality operator is
abstract.
From-SVN: r178300
Arnaud Charlet [Tue, 30 Aug 2011 13:22:13 +0000 (15:22 +0200)]
[multiple changes]
2011-08-30 Steve Baird <baird@adacore.com>
* sem_util.ads (Deepest_Type_Access_Level): New function; for the type
of a saooaaat (i.e, a stand-alone object of an anonymous access type),
returns the (static) accessibility level of the object. Otherwise, the
same as Type_Access_Level.
(Dynamic_Accessibility_Level): New function; given an expression which
could occur as the rhs of an assignment to a saooaaat (i.e., an
expression of an access-to-object type), return the new value for the
saooaaat's associated Extra_Accessibility object.
(Effective_Extra_Accessibility): New function; same as
Einfo.Extra_Accessibility except that object renames are looked through.
* sem_util.adb
(Deepest_Type_Access_Level): New function; see sem_util.ads description.
(Dynamic_Accessibility_Level): New function; see sem_util.ads
description.
(Effective_Extra_Accessibility): New function; see sem_util.ads
description.
* einfo.ads (Is_Local_Anonymous_Access): Update comments.
(Extra_Accessibility): Update comments.
(Init_Object_Size_Align): New procedure; same as Init_Size_Align
except RM_Size field (which is only for types) is unaffected.
* einfo.adb
(Extra_Accessibility): Expand domain to allow objects, not just formals.
(Set_Extra_Accessibility): Expand domain to allow objects, not just
formals.
(Init_Size): Add assertion that we are not trashing the
Extra_Accessibility attribute of an object.
(Init_Size_Align): Add assertion that we are not trashing the
Extra_Accessibility attribute of an object.
(Init_Object_Size_Align): New procedure; see einfo.ads description.
* sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Access
differently for the type of a (non-library-level) saooaaat depending
whether Ada_Version < Ada_2012. This is the only point where Ada_Version
is queried in this set of changes - everything else (in particular,
setting of the Extra_Accessibility attribute in exp_ch3.adb) is
driven off of the setting of the Is_Local_Anonymous_Access attribute.
The special treatment of library-level saooaaats is an optimization,
not required for correctnesss. This is based on the observation that the
Ada2012 rules (static and dynamic) for saooaaats turn out to be
equivalent to the
Ada2005 rules in the case of a library-level saooaaat.
* exp_ch3.adb
(Expand_N_Object_Declaration): If Is_Local_Anonymous_Access is
false for the type of a saooaaat, declare and initialize its
accessibility level object and set the Extra_Accessibility attribute
of the saooaaat to refer to this object.
* checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support.
* exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls with
calls to Effective_Extra_Accessibility in order to support
renames of saooaaats.
(Expand_N_Type_Conversion): Add new local function,
Has_Extra_Accessibility, and call it when determining whether an
accessibility check is needed.
It returns True iff Present (Effective_Extra_Accessibility (Id)) would
evaluate to True (without raising an exception).
* exp_ch5.adb
(Expand_N_Assignment_Statement): When assigning to an
Ada2012
saooaaat, update its associated Extra_Accessibility object (if
it has one). This includes an accessibility check.
* exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updates
a saooaaat, update its Extra_Accessibility object too (if it
has one).
(Expand_Call): Replace a couple of calls to Type_Access_Level
with calls to Dynamic_Access_Level to handle cases where
passing a literal (any literal) is incorrect.
* sem_attr.adb (Resolve_Attribute): Handle the static accessibility
checks associated with "Saooaat := Some_Object'Access;"; this must
be rejected if Some_Object is declared in a more nested scope
than Saooaat.
* sem_ch5.adb (Analyze_Assignment): Force accessibility checking for an
assignment to a saooaaat even if Is_Local_Anonymous_Access
returns False for its type (indicating a 2012-style saooaaat).
* sem_ch8.adb
(Analyze_Object_Renaming): Replace a call to Init_Size_Align
(which is only appropriate for objects, not types) with a call
of Init_Object_Size_Align in order to avoid trashing the
Extra_Accessibility attribute of a rename (the two attributes
share storage).
* sem_res.adb
(Valid_Conversion) Replace six calls to Type_Access_Level with
calls to Deepest_Type_Access_Level. This is a bit tricky. For an
Ada2012 non-library-level saooaaat, the former returns library level
while the latter returns the (static) accessibility level of the
saooaaat. A type conversion to the anonymous type of a saooaaat
can only occur as part of an assignment to the saooaaat, so we
know that such a conversion must be in a lhs context, so Deepest
yields the result that we need. If such a conversion could occur,
say, as the operand of an equality operator, then this might not
be right. Also add a test so that static accessibilty checks are
performed for converting to a saooaaat's type even if
Is_Local_Anonymous_Access yields False for the type.
2011-08-30 Javier Miranda <miranda@adacore.com>
* sem_disp.adb (Check_Dispatching_Operation): Complete condition that
controls generation of a warning associated with late declaration of
dispatching functions. Required to avoid generating spurious
warnings.
From-SVN: r178299
Bernd Schmidt [Tue, 30 Aug 2011 13:17:40 +0000 (13:17 +0000)]
bb-reorder.c (insert_section_boundary_note): Only do it if we reordered the blocks; i.e.
* bb-reorder.c (insert_section_boundary_note): Only do it if
we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
From-SVN: r178298
Bernd Schmidt [Tue, 30 Aug 2011 13:16:44 +0000 (13:16 +0000)]
i386.c (get_pc_thunk_name): Change prefix to "__x86.get_pc_thunk".
* config/i386/i386.c (get_pc_thunk_name): Change prefix to
"__x86.get_pc_thunk".
his line, and those below, will be ignored--
M ChangeLog
M config/i386/i386.c
From-SVN: r178297
Gary Dismukes [Tue, 30 Aug 2011 13:16:22 +0000 (13:16 +0000)]
sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the return object has an anonymous access type and the...
2011-08-30 Gary Dismukes <dismukes@adacore.com>
* sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the
return object has an anonymous access type and the function's type is
a named access type.
* sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renaming
conversions on implicit conversions, since such conversions can occur
for anonymous access cases due to expansion. Issue error for attempt
to rename an anonymous expression as an object of a named access type.
* sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs,
to indicate whether this function should report errors on invalid
conversions.
* sem_res.adb (Resolve): For Ada 2012, in the case where the type of
the expression is of an anonymous access type and the expected type is
a named general access type, rewrite the expression as a type
conversion, unless this is an expression of a membership test.
(Valid_Conversion.Error_Msg_N): New procedure that conditions the
calling of Error_Msg_N on new formal Report_Errs.
(Valid_Conversion.Error_Msg_NE): New procedure that conditions the
calling of Error_Msg_NE on new formal Report_Errs.
(Valid_Conversion): Move declaration of this function to the package
spec, to allow calls from membership test processing. For Ada 2012,
enforce legality restrictions on implicit conversions of anonymous
access values to general access types, disallowing such conversions in
cases where the expression has a dynamic accessibility level (access
parameters, stand-alone anonymous access objects, or a component of a
dereference of one of the first two cases).
* sem_type.adb (Covers): For Ada 2012, allow an anonymous access type
in the context of a named general access expected type.
* exp_ch4.adb Add with and use of Exp_Ch2.
(Expand_N_In): Add processing for membership tests applied to
expressions of an anonymous access type. First, Valid_Conversion is
called to check whether the test is statically False, and then the
conversion is expanded to test that the expression's accessibility
level is no deeper than that of the tested type. In the case of
anonymous access-to-tagged types, a tagged membership test is applied
as well.
(Tagged_Membership): Extend to handle access type cases, applying the
test to the designated types.
* exp_ch6.adb (Expand_Call): When creating an extra actual for an
accessibility level, and the actual is a 'Access applied to a current
instance, pass the accessibility level of the type of the current
instance rather than applying Object_Access_Level to the prefix. Add a
??? comment, since this level isn't quite right either (will eventually
need to pass an implicit level parameter to init procs).
From-SVN: r178296
Bernd Schmidt [Tue, 30 Aug 2011 13:15:38 +0000 (13:15 +0000)]
genautomata.c (NO_COMB_OPTION): New macro.
* genautomata.c (NO_COMB_OPTION): New macro.
(no_comb_flag): New static variable.
(gen_automata_option): Handle NO_COMB_OPTION.
(comb_vect_p): False if no_comb_flag.
(add_vect): Move computation of min/max values. Return early if
no_comb_flag.
* doc/md.texi (automata_option): Document no-comb-vect.
From-SVN: r178295
Arnaud Charlet [Tue, 30 Aug 2011 13:12:16 +0000 (15:12 +0200)]
[multiple changes]
2011-08-30 Bob Duff <duff@adacore.com>
* s-taskin.ads: Minor comment fix.
2011-08-30 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Check_Parameterless_Call): If the node is a selected
component and the selector is a dispatching operation, check if it is
a prefixed call before rewriting as a parameterless function call.
From-SVN: r178294
Christian Bruel [Tue, 30 Aug 2011 11:18:49 +0000 (13:18 +0200)]
fix -fbranch-probabilities and adjust testsuite
From-SVN: r178289
Paolo Carlini [Tue, 30 Aug 2011 08:57:52 +0000 (08:57 +0000)]
error_constants.h: Fix commas.
2011-08-30 Paolo Carlini <paolo.carlini@oracle.com>
* config/os/mingw32/error_constants.h: Fix commas.
From-SVN: r178286
Jason Merrill [Tue, 30 Aug 2011 04:30:58 +0000 (00:30 -0400)]
re PR c++/50224 ([C++0x] bogus unused parameter warning (it is referenced in lambda))
PR c++/50224
* semantics.c (finish_id_expression): Mark captured variables used.
From-SVN: r178277
Jakub Jelinek [Tue, 30 Aug 2011 04:30:42 +0000 (06:30 +0200)]
re PR c++/50207 (G++ segv's on reduced test case)
PR c++/50207
* class.c (finish_struct_1): Complain if the first field is
artificial.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r178276
Jason Merrill [Tue, 30 Aug 2011 04:30:27 +0000 (00:30 -0400)]
re PR c++/50209 ([C++0x] Braced-init-lists are rejected as function default arguments)
PR c++/50209
Core DR 994
* parser.c (cp_parser_default_argument): Use
cp_parser_initializer_clause.
(cp_parser_late_parsing_default_args): Likewise.
From-SVN: r178275
GCC Administrator [Tue, 30 Aug 2011 00:18:54 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r178269
Benjamin Kosnik [Mon, 29 Aug 2011 23:25:17 +0000 (23:25 +0000)]
constexpr.cc: Add.
2011-08-29 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/20_util/duration/arithmetic/constexpr.cc: Add.
From-SVN: r178265
Ian Lance Taylor [Mon, 29 Aug 2011 22:06:19 +0000 (22:06 +0000)]
Lower calls to bound method expressions.
From-SVN: r178264
Ian Lance Taylor [Mon, 29 Aug 2011 22:02:01 +0000 (22:02 +0000)]
Don't lower blocks twice.
From-SVN: r178263
Janus Weil [Mon, 29 Aug 2011 21:55:10 +0000 (23:55 +0200)]
re PR fortran/50225 ([OOP] The allocation status for polymorphic allocatable function results is not set properly)
2011-08-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/50225
* trans-decl.c (gfc_generate_function_code): Nullify polymorphic
allocatable function results.
2011-08-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/50225
* gfortran.dg/class_result_1.f03: New.
From-SVN: r178262
Michael Meissner [Mon, 29 Aug 2011 21:29:23 +0000 (21:29 +0000)]
Change default for -msave-toc-indirect
From-SVN: r178261
Michael Meissner [Mon, 29 Aug 2011 21:29:01 +0000 (21:29 +0000)]
Change default for -msave-toc-indirect
From-SVN: r178260
Jakub Jelinek [Mon, 29 Aug 2011 21:01:42 +0000 (23:01 +0200)]
Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy tsystem.h into $(RTSDIR) instead of rts.
* gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy
tsystem.h into $(RTSDIR) instead of rts.
From-SVN: r178259
Jakub Jelinek [Mon, 29 Aug 2011 21:00:39 +0000 (23:00 +0200)]
gthr-posix.h (__gthread_active_p): Do not use preprocessor conditionals and comments inside macro arguments.
* gthr-posix.h (__gthread_active_p): Do not use preprocessor
conditionals and comments inside macro arguments.
From-SVN: r178258
Kai Tietz [Mon, 29 Aug 2011 19:57:24 +0000 (21:57 +0200)]
configure: Regenerated.
* configure: Regenerated.
* config.h.in: Regenerated.
* acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR) Add
checks for ECHILD, ENOSPC, EPERM, ETIMEDOUT, and
EWOULDBLOCK.
* config/os/mingw32/error_constants.h (errc): Add
enumerator values no_child_process, no_space_on_device,
not_supported, operation_not_permitted, operation_would_block,
timed_out, and value_too_large,
From-SVN: r178257
Arnaud Charlet [Mon, 29 Aug 2011 14:40:11 +0000 (16:40 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor
reformatting.
* gcc-interface/Make-lang.in: Update dependencies.
2011-08-29 Yannick Moy <moy@adacore.com>
* alfa.ads (Name_Of_Heap_Variable): New constant name.
* lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global
table to hold dereferences.
(Add_ALFA_Xrefs): Take into account dereferences as special
reads/writes to the variable "HEAP".
(Enclosing_Subprogram_Or_Package): Move subprogram here.
(Generate_Dereference): New procedure to store a read/write dereferencew
in the table Drefs.
* put_alfa.adb (Put_ALFA): Use different default than (0,0) used for
the special "HEAP" var.
* sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference
in ALFA mode.
* sem_util.adb (Note_Possible_Modification): Store write dereference
in ALFA mode.
From-SVN: r178252
Hristian Kirtchev [Mon, 29 Aug 2011 14:33:59 +0000 (14:33 +0000)]
exp_ch3.adb (Freeze_Type): Generate an accessibility check which ensures that the level of the subpool...
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch3.adb (Freeze_Type): Generate an accessibility check which
ensures that the level of the subpool access type is not deeper than
that of the pool object.
* sem_util.adb (Object_Access_Level): Expand to handle defining
identifiers.
* sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the
subpool handle name of a rewritten allocator.
From-SVN: r178250
Arnaud Charlet [Mon, 29 Aug 2011 14:32:43 +0000 (16:32 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.
2011-08-29 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple
values, we generate multiple triples of parameters in the TypeCode.
Bump Choice_Index for each such triple so that a subsequent default
choice is associated with the correct index in the typecode.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-cdlili.adb (Iterate): Initialize properly an iterator over a null
container.
(First, Last): Handle properly an iterator over a null container.
2011-08-29 Bob Duff <duff@adacore.com>
* sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon
processing if we run across a node with no Scope. This can happen if
we're with-ing an library-level instance, and that instance got errors
that caused "instantiation abandoned".
* sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising
an exception instead of using Assert, so it won't go into an infinite
loop, even when assertions are turned off.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-coorse.adb: Proper handling of empty ordered sets.
From-SVN: r178249
Arnaud Charlet [Mon, 29 Aug 2011 14:29:25 +0000 (16:29 +0200)]
[multiple changes]
2011-08-29 Johannes Kanig <kanig@adacore.com>
* debug.adb: Add comments.
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* impunit.adb, s-stposu.adb, s-stposu.ads, exp_ch4.adb,
s-finmas.adb, s-finmas.ads: Redo previous change.
From-SVN: r178247
Arnaud Charlet [Mon, 29 Aug 2011 14:26:53 +0000 (16:26 +0200)]
[multiple changes]
2011-08-29 Thomas Quinot <quinot@adacore.com>
* a-except.adb, a-except-2005.adb: Minor comment rewording and
reformatting.
2011-08-29 Yannick Moy <moy@adacore.com>
* sem_ch3.adb (Array_Type_Declaration): Remove insertion of
declaration for Itypes in Alfa mode.
From-SVN: r178246
Arnaud Charlet [Mon, 29 Aug 2011 14:25:19 +0000 (16:25 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb,
a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor
reformatting.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to
package spec.
* exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler.
* a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts
while raising PE.
From-SVN: r178245
Arnaud Charlet [Mon, 29 Aug 2011 14:23:16 +0000 (16:23 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* a-cbhama.adb, a-cbhama.ads: Minor reformatting.
2011-08-29 Javier Miranda <miranda@adacore.com>
* sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for
renamings of formal subprograms when the actual for a formal type is
class-wide.
From-SVN: r178244
Matthew Heaney [Mon, 29 Aug 2011 14:21:27 +0000 (14:21 +0000)]
a-cbhama.ads, [...] (Move): Clear Source following assignment to Target.
2011-08-29 Matthew Heaney <heaney@adacore.com>
* a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment
to Target.
2011-08-29 Matthew Heaney <heaney@adacore.com>
* a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all
components of record type.
* a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw
to Target.
From-SVN: r178243
Ed Schonberg [Mon, 29 Aug 2011 14:19:32 +0000 (14:19 +0000)]
a-cbhama.adb, [...]: Add iterator machinery to container packages.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb,
a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery to
container packages.
From-SVN: r178242
Arnaud Charlet [Mon, 29 Aug 2011 14:17:49 +0000 (16:17 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor
reformatting.
2011-08-29 Matthew Heaney <heaney@adacore.com>
* a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all
components of record type.
2011-08-29 Bob Duff <duff@adacore.com>
* s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated
by the termination handler.
From-SVN: r178241
Arnaud Charlet [Mon, 29 Aug 2011 14:15:28 +0000 (16:15 +0200)]
[multiple changes]
2011-08-29 Yannick Moy <moy@adacore.com>
* sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes
created in Alfa mode, instead of inserting artificial declarations of
non-Itypes in the tree.
* sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to
know if an Itype has a corresponding declaration, as defined in
itypes.ads.
2011-08-29 Yannick Moy <moy@adacore.com>
* gnat1drv.adb: Minor rewrite.
2011-08-29 Bob Duff <duff@adacore.com>
* s-tasuti.adb (Make_Passive): Work around race condition in
Make_Independent, which can cause Wait_Count to be zero. So instead of
asserting that Wait_Count > 0, and then decrementing it, decrement it
only if Wait_Count > 0.
* s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these
should be nonnegative, so declare them Natural instead of Integer.
From-SVN: r178240
Arnaud Charlet [Mon, 29 Aug 2011 14:12:57 +0000 (16:12 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb,
sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb,
a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb,
a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb,
exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels.
2011-08-29 Vadim Godunko <godunko@adacore.com>
* s-parint.ads: Minor comment clarification.
2011-08-29 Vincent Celier <celier@adacore.com>
* prj.adb (Initialize): Make sure that new reserved words after Ada 95
may be used as identifiers.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-coinho.ads: Minor reformating.
From-SVN: r178239
Arnaud Charlet [Mon, 29 Aug 2011 14:07:24 +0000 (16:07 +0200)]
[multiple changes]
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a
container of a derived type.
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* impunit.adb, s-stposu.adb, s-stposu.ads, exp_ch4.adb, s-finmas.adb,
s-finmas.ads: Revert previous change.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,
a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers.
From-SVN: r178237
Arnaud Charlet [Mon, 29 Aug 2011 14:02:26 +0000 (16:02 +0200)]
[multiple changes]
2011-08-29 Pascal Obry <obry@adacore.com>
* exp_disp.adb: Minor comment fix.
(Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters
to avoid warnings when compiling with -Wall.
(Make_Disp_Conditional_Select_Body): Likewise.
(Make_Disp_Timed_Select_Body): Likewise.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is
an entity name, generate reference for it.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S"
iterator form.
* sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for
the class-wide type.
* sem_ch5.adb: Move some rewriting to the expander, where it belongs.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Check_Constrained_Object): Do not create an actual
subtype for an object whose type is an unconstrained union.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased"
is allowed in a component definition, by AI95-406.
2011-08-29 Matthew Heaney <heaney@adacore.com>
* a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next.
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* a-except-2005.adb: Alphabetize all routines.
(Triggered_By_Abort): New routine.
* a-except-2005.ads (Triggered_By_Abort): New routine.
* a-except.adb Alphabetize all routines.
(Triggered_By_Abort): New routine.
* a-except.ads (Triggered_By_Abort): New routine.
* exp_ch7.adb: Update all comments involving the detection of aborts in
finalization code.
(Build_Object_Declarations): Do not generate code to detect the
presence of an abort at the start of finalization code, use a runtime
routine istead.
* rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and
RE_Unit_Table.
* sem_res.adb (Resolve_Allocator): Emit a warning when attempting to
allocate a task on a subpool.
* s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use.
The flag disables all actions related to the maintenance of
Finalize_Address_Table when subpools are not in use.
(Allocate_Any_Controlled): Signal the machinery that subpools are in
use.
(Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which
performs costly task locking when subpools are not in use.
From-SVN: r178236
Arnaud Charlet [Mon, 29 Aug 2011 13:54:30 +0000 (15:54 +0200)]
[multiple changes]
2011-08-29 Yannick Moy <moy@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged
types and dispatching calls in Alfa mode.
* lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of
correspondance between body and spec scopes, to reuse utility functions
(Traverse_Declarations_Or_Statements): Protect access to body for stub
by testing the presence of the library unit for the body
* sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa
mode the expansion of accept statements is skipped
* sem_util.adb, sem_util.ads (Unique_Entity): New function returning
the unique entity corresponding to the one returned by
Unique_Defining_Entity applied to the enclosing declaration of the
argument.
2011-08-29 Bob Duff <duff@adacore.com>
* treepr.ads: Improve debugging facilities. pn(x) no longer crashes in
gdb when x is not a node (it can be a node list, name_id, etc). pp is
an alias for pn. ppp is an alias for pt.
2011-08-29 Javier Miranda <miranda@adacore.com>
* exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing
aggregate to take a consistent decision on the need to convert into
assignments aggregates that initialize constant objects.
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_Allocator_Expression): Add a call to
Build_Allocate_Deallocate_Proc in order to handle allocation of
non-controlled objects on subpools.
* impunit.adb: Remove s-finmas and s-spsufi since they were never meant
to be end-user visible.
* s-finmas.adb: Add with and use clause for System.HTable.
Add an instantiation of Simple_HTable which provides a mapping between
the address of a controlled object and the corresponding
Finalize_Address used to clean up the object. The table is used when a
master is operating in heterogeneous mode.
(Attach): Explain why the input node is not verified on being already
attached.
(Delete_Finalize_Address): New routine.
(Detach): Add pragma Assert which ensures that a node is already
attached.
(Finalize): Add local variable Cleanup. Rewrite the iteration scheme
since nodes are no longer removed on traversal. Explain why node
detachment is undesirable in this case.
(Get_Finalize_Address): New routine.
(Hash): New routine.
(Is_Empty_List): Removed.
(pm): Renamed to Print_Master. Add output for discriminant
Is_Homogeneous.
Comment reformatting.
(Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
* s-finmas.ads: Various comments additions / improvements.
Type Finalization_Master has a discriminant which determines the mode of
operation.
(Delete_Finalize_Address): New routine.
(Get_Finalize_Address): New routine.
(pm): Renamed to Print_Master.
(Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
* s-stposu.adb: Add with clause for System.Address_Image; Add with and
use clause for System.IO.
(Allocate_Any_Controlled): Add machinery to set TSS primitive
Finalize_Address depending on the mode of allocation and the mode of
the master.
(Deallocate_Any_Controlled): Remove the relation pair object -
Finalize_Address regardless of the master mode. Add comment explaining
the reason.
(Detach): Ensure that fields Prev and Next are null after detachment.
(Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration
scheme to check whether the list of subpools is empty. There is no
longer need to store the next subpool or advance the current pointer.
(Is_Empty_List): New routine.
(Print_Pool): New routine.
(Print_Subpool): New routine.
* s-stposu.ads: Various comments additions / improvements.
Field Master of type Root_Subpool is now a heterogeneous collection.
(Print_Pool): New routine.
(Print_Subpool): New routine.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_N_Iterator_Loop): Implement
Ada2012 loop iterator
forms, using aspects of container types.
* sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and
Has_Implicit_Dereference flags, that may be set on the partial view.
* sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a
container type with an indexing aspect.
(Analyze_Quantified_Expression): Analyze construct with expansion
disabled, because it will be rewritten as a loop during expansion.
(Try_Container_Indexing): The prefix itself may be a container type
with an indexing aspect, as with a vector of vectors.
* sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze
the original doamin of iteration, for name capture.
(Analyze_Iterator_Specification): If the domain is an expression that
needs finalization, create a separate declaration for it.
For an iterator with "of" retrieve default iterator info from aspect of
container type. For "in" iterator, retrieve type of Iterate function.
* sem_ch13.adb (Check_Iterator_Function): Fix typo.
(Check_Aspect_At_End_Of_Declaration): Make type unfrozen before
analysis, to prevent spurious errors about late attributes.
* sprint.adb: Handle quantified expression with either loop or iterator
specification.
* a-convec.ads, a-convec.adb: Iterate function returns a reversible
iterator.
From-SVN: r178235
Paolo Carlini [Mon, 29 Aug 2011 13:50:26 +0000 (13:50 +0000)]
2011-08-29 Paolo Carlini <paolo.carlini@oracle.com>
* Tweak last ChangeLog entry.
From-SVN: r178234
Arnaud Charlet [Mon, 29 Aug 2011 13:48:36 +0000 (15:48 +0200)]
[multiple changes]
2011-08-29 Vincent Celier <celier@adacore.com>
* make.adb (Scan_Make_Arg): Take any option as is in packages Compiler,
Binder or Linker of the main project file.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic
unit.
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch9.adb: Partial revert of previous change for Alfa mode
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch11.adb: Minor expansion of comment.
2011-08-29 Yannick Moy <moy@adacore.com>
* lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal
interpretation, set the type before resolving the operands, because
legality checks on an exponention operand need to know the type of the
context.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed
cleanups on a master if the instance is within a generic unit.
Complement to the corresponding fix to inline.adb for K520-030.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current
occurrence.
* exp_intr.adb: Minor comment fix.
2011-08-29 Bob Duff <duff@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where
Delay_Required was used as an uninitialized variable.
From-SVN: r178233
Robert Dewar [Mon, 29 Aug 2011 13:42:00 +0000 (13:42 +0000)]
a-cdlili.adb, [...]: Minor reformatting.
2011-08-29 Robert Dewar <dewar@adacore.com>
* a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads,
sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb,
a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting.
From-SVN: r178232
Paolo Carlini [Mon, 29 Aug 2011 13:40:33 +0000 (13:40 +0000)]
re PR libstdc++/50118 (node-based containers cannot use allocators with explicit constructor template)
2011-08-29 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/50118
* include/bits/stl_list.h (_List_base<>::
_List_base(const allocator_type&)): Remove.
(_List_base<>::_List_base(const _Node_alloc_type&)): Add.
(list<>:list(const allocator_type&), list(size_type, const
value_type&, const allocator_type&),
list(initializer_list<, const allocator_type&),
list(_InputIterator, _InputIterator, const allocator_type&),
insert(iterator, size_type, const value_type&),
insert(iterator, _InputIterator, _InputIterator)): Adjust.
* include/bits/stl_tree.h (_Rb_tree<>::_Rb_tree(const _Compare&,
const allocator_type&)): Fix.
* include/bits/stl_map.h (map<>::map(const _Compare&,
const allocator_type&), map(initializer_list<>,
const _Compare&, const allocator_type&), map(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Adjust.
* include/bits/stl_set.h (set<>::set(const _Compare&,
const allocator_type&), set(initializer_list<>,
const _Compare&, const allocator_type&), set(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Likewise.
* include/bits/stl_multimap.h (multimap<>::multimap(const _Compare&,
const allocator_type&), multimap(initializer_list<>,
const _Compare&, const allocator_type&), multimap(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Likewise.
* include/bits/stl_multiset.h (multiset<>::multiset(const _Compare&,
const allocator_type&), multiset(initializer_list<>,
const _Compare&, const allocator_type&), multiset(_InputIterator,
_InputIterator, const _Compare&, const allocator_type&),
get_allocator): Likewise.
* include/bits/forward_list.h (_Fwd_list_base<>::
_Fwd_list_base(const _Alloc&), _Fwd_list_base(const _Fwd_list_base&,
const _Alloc&), _Fwd_list_base(_Fwd_list_base&&, const _Alloc&)):
Remove.
(_Fwd_list_base<>::_Fwd_list_base(const _Node_alloc_type&),
_Fwd_list_base(const _Fwd_list_base&,
const _Node_alloc_type&), _Fwd_list_base(_Fwd_list_base&&,
const _Node_alloc_type&)): Add.
(forward_list<>::forward_list(const _Alloc&),
forward_list(const forward_list&, const _Alloc&),
forward_list(forward_list&&, const _Alloc&),
forward_list(size_type, const _Tp&, const _Alloc&),
forward_list(_InputIterator, _InputIterator, const _Alloc&),
forward_list(std::initializer_list<>, const _Alloc&),
get_allocator): Adjust.
* include/bits/forward_list.tcc
* testsuite/util/testsuite_allocator.h (ExplicitConsAlloc): Add.
* testsuite/23_containers/unordered_map/requirements/
explicit_instantiation/5.cc: New.
* testsuite/23_containers/multimap/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/multimap/requirements/
explicit_instantiation/5_c++0x.cc: Likewise.
* testsuite/23_containers/set/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/set/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/unordered_multimap/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/unordered_set/requirements/
explicit_instantiation/5.cc: Likewise.
testsuite/23_containers/multiset/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/multiset/requirements/
explicit_instantiation/5_c++0x.cc: Likewise.
* testsuite/23_containers/list/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/list/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/unordered_multiset/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/23_containers/map/requirements/explicit_instantiation/
5.cc: Likewise.
* testsuite/23_containers/map/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Adjust dg-error line number.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r178230
Thomas Quinot [Mon, 29 Aug 2011 13:40:26 +0000 (13:40 +0000)]
system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.
2011-08-29 Thomas Quinot <quinot@adacore.com>
* system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.
Remove unused variables.
From-SVN: r178229
Arnaud Charlet [Mon, 29 Aug 2011 13:38:55 +0000 (15:38 +0200)]
[multiple changes]
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb: Remove Build_Explicit_Dereference.
* sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here
from sem_res.adb, used in analysis of additional constructs.
(Is_Iterator, Is_Reversible_Iterator): New predicates for
Ada2012
expansion of iterators.
(Is_Object_Reference): Recognize variables rewritten as explicit
dereferences in
Ada2012.
* snames.ads-tmpl: Add Has_Element, Forward_Iterator,
Reversible_Iterator names, for expansion of
Ada2012 iterators.
* aspects.ads, aspects.adb (Find_Aspect): Utility.
* a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly
linked list container.
* a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers.
* a-coorse.ads, a-coorse.adb: Ditto for ordered sets.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map
containers.
2011-08-29 Vincent Celier <celier@adacore.com>
* make.adb (Gnatmake): Get the maximum number of simultaneous
compilation processes after the Builder switches has been scanned, as
there may include -jnn.
2011-08-29 Matthew Heaney <heaney@adacore.com>
* a-chtgbo.adb (Generic_Equal): Use correct overloading of Next.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of
GNAT_DRIVER_COMMAND_LINE to 255.
2011-08-29 Pascal Obry <obry@adacore.com>
* freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor
reformatting and style fix (class attribute casing).
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch11.adb: Yet another case where expansion should be common
between CodePeer and Alfa.
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch9.adb: Partial revert of previous change for Alfa mode.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Matches_Limited_With_View): The limited views of an
incomplete type and its completion match.
From-SVN: r178228
Arnaud Charlet [Mon, 29 Aug 2011 13:33:32 +0000 (15:33 +0200)]
[multiple changes]
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch13.adb: Adjust previous change.
2011-08-29 Robert Dewar <dewar@adacore.com>
* sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb,
exp_ch4.adb, sem_ch8.adb: Minor code reorganization
Minor reformatting.
From-SVN: r178226
Arnaud Charlet [Mon, 29 Aug 2011 13:31:02 +0000 (15:31 +0200)]
[multiple changes]
2011-08-29 Emmanuel Briot <briot@adacore.com>
* make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also
initialize aggregated projects.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope
depth of candidates to resolve a potentially spurious ambiguity between
two visible subprograms.
From-SVN: r178225
Arnaud Charlet [Mon, 29 Aug 2011 13:27:37 +0000 (15:27 +0200)]
[multiple changes]
2011-08-29 Yannick Moy <moy@adacore.com>
* sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma without
Requires/Ensures.
* sem_util.adb (Get_Ensures_From_Test_Case_Pragma,
Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma without
Requires/Ensures.
2011-08-29 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Improve previous change.
Add comment.
2011-08-29 Thomas Quinot <quinot@adacore.com>
* sem_res.adb: Minor reformatting.
From-SVN: r178224
Johannes Kanig [Mon, 29 Aug 2011 13:26:02 +0000 (13:26 +0000)]
exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA mode.
2011-08-29 Johannes Kanig <kanig@adacore.com>
* exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
mode.
* gnat1drv.adb (Adjust_Global_Switches): Set
Use_Expressions_With_Actions to False in ALFA mode.
* sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
ALFA mode.
From-SVN: r178223
Arnaud Charlet [Mon, 29 Aug 2011 13:21:45 +0000 (15:21 +0200)]
[multiple changes]
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.
* exp_ch9.adb: Do not expand tasking constructs in Alfa mode.
* gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of
tagged types and dispatching calls in Alfa mode.
2011-08-29 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Process_Discriminants): Add missing check to ensure that
we do not report an error on an Empty node.
2011-08-29 Geert Bosch <bosch@adacore.com>
* Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o,
a-nlrear.o and a-nurear.o.
2011-08-29 Robert Dewar <dewar@adacore.com>
* freeze.adb: Minor code reorganization.
Minor reformatting.
* sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb,
sem_ch6.adb: Minor reformatting
2011-08-29 Tristan Gingold <gingold@adacore.com>
* s-except.ads, s-except.adb: Provide dummy body.
2011-08-29 Yannick Moy <moy@adacore.com>
* sem_warn.adb (Within_Postcondition): Take into account the case of
an Ensures component in a Test_Case.
From-SVN: r178222
Arnaud Charlet [Mon, 29 Aug 2011 13:13:26 +0000 (15:13 +0200)]
[multiple changes]
2011-08-29 Tristan Gingold <gingold@adacore.com>
* s-excdeb.ads, s-excdeb.adb: New files, created from s-except.
* rtsfind.ads (RTU_Id): Replaces System_Exceptions by
System_Exceptions_Debug
(RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug
* a-except.adb: With and use System.Exceptions_Debug instead of
System.Exceptions.
* a-except-2005.adb: Likewise.
* s-assert.adb: Likewise.
* s-except.adb, s-except.ads: Move debugging hooks to s-excdeb.
* Makefile.rtl: Add s-excdeb. Adjust compilation rule.
* gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add
s-excdeb. Update dependencies.
(GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o
as these no longer need external libraries.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Op_Expon): Additional check to reject an
exponentiation operator on universal values in a context that requires
a fixed-point type.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c (personnality_routine): Fix thinko. Set Ada occurrence
before calling notify_handled_exception.
* a-exextr.adb: Fix comment.
From-SVN: r178221
Arnaud Charlet [Mon, 29 Aug 2011 13:07:49 +0000 (15:07 +0200)]
[multiple changes]
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute
Finalize_Address of the access type's finalization master.
(Expand_N_Allocator): Add code to set attribute Finalize_Address of the
access type's finalization master. Add a guard to prevent
Associated_Storage_Pool from being set on .NET/JVM.
* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set
attribute Finalize_Address of the access type's finalization master.
* exp_ch7.adb (Make_Finalize_Address_Call): New routine.
* exp_ch7.ads (Make_Finalize_Address_Call): New routine.
* rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and
RE_Unit_Table.
* s-finmas.adb: Add with clause for System.Address_Image. Add with and
use clause for System.IO
(Detach): Relax the assertion, to be reinstated later.
(Finalize): Rewrite the iteration loop to avoid pointer comparison.
Relax the assertion on Finalize_Address, to be reinstated later.
(Is_Empty_List): New routine.
(pm): New debug routine.
(Set_Finalize_Address): New routine.
* s-finmas.ads (pm): New debug routine.
(Set_Finalize_Address): New routine.
* s-stposu.adb (Allocate_Any_Controlled): Code reformatting.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access):
Remove convention C.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove.
(Initialize_TCB): Remove Exc_Stack_Ptr initialization.
(Finalize_TCB): Remove its finalization.
(Initialize): Remove assignment of GET_Exc_Stack_Addr
* s-soflin.adb (NT_Exc_Stack): Remove
(Get_Exc_Stack_Addr_NT): Likewise.
(Get_Exc_Stack_Addr_Soft): Likewise.
* s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove.
(Get_Exc_Stack_Addr): Likewise.
(Get_Exc_Stack_Addr_Soft): Likewise
* s-taspri-vms.ads (Exc_Stack_T): Remove.
(Exc_Stack_Ptr_T): Likewise.
(Private_Data): Remove Exc_Stack_Ptr component.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c (get_ip_from_context): New function. Factorize code.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* gnat_ugn.texi: Fix aix and x86-solaris info for run-time.
2011-08-29 Geert Bosch <bosch@adacore.com>
* s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate,
L2_Norm, Swap_Column): New generic subprograms
* s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate,
L2_Norm, Swap_Column): Implement new subprograms in order to
eliminate dependency on BLAS and LAPACK libraries in
Ada.Numerics.Generic_Real_Arrays and eventually also the complex
version. Forward_Eliminate/Back_Substitute can be used to put a
matrix in row echelon or reduced row echelon form using partial
pivoting.
* a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate,
Swap_Column): Instantiate from System.Generic_Array_Operations.
("*", "abs"): Implement by instantiation from Generic_Array_Operations.
(Sqrt): Local function for simple computation of square root without
adding dependencies on Generic_Elementary_Functions.
(Swap): New subprogram to exchange floating point numbers.
(Inverse): Reimplement using Jordan-Gauss elimination.
(Jacobi): New procedure implementing Jacobi's method for computation
of eigensystems, based on Rutishauser's implementation.
(L2_Norm): Implement directly using the inner product.
(Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of
decreasing eigenvalue as required by the Ada RM.
(Swap_Column): New helper procedure for Sort_Eigensystem.
Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK.
Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for
Sort_Eigensystems.
2011-08-29 Thomas Quinot <quinot@adacore.com>
* put_scos.adb (Put_SCOs): Do not emit a newline for an empty
statements line.
From-SVN: r178220
Arnaud Charlet [Mon, 29 Aug 2011 13:01:34 +0000 (15:01 +0200)]
[multiple changes]
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* s-finmas.adb (Finalize): Check Finalize_Address of the master rather
than the current node.
* s-finmas.ads: Move field Finalize_Address from type FM_Node to
Finalization_Master. The list headers have two fields instead of three.
This should fix alignment issue but subpool allocations are now
unusable. Alphabetize subprograms.
* s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than
the size of the header when converting the beginning of the object to
a FM_Node. Set the master's Finalize_Address attribute if not already
set.
(Deallocate_Any_Controlled): Use the offset rather than the size of the
header when converting the beginning of the object to a FM_Node.
2011-08-29 Gary Dismukes <dismukes@adacore.com>
* exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of
reraise when compiling for CodePeer.
2011-08-29 Arnaud Charlet <charlet@adacore.com>
* a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads,
now needed by a-convec.adb. Fix warning.
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the
processing of TSS routine Finalize_Address when compiling in
CodePeer_Mode.
2011-08-29 Thomas Quinot <quinot@adacore.com>
* a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb,
sem_warn.adb: Minor reformatting.
2011-08-29 Emmanuel Briot <briot@adacore.com>
* prj-conf.adb (Get_Config_Switches): Also collect the list of
languages from aggregated projects.
2011-08-29 Yannick Moy <moy@adacore.com>
* lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements,
Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
Traverse_Package_Declaration, Traverse_Subprogram_Body,
Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies
for stubs are traversed too when parameter is set
(Traverse_All_Compilation_Units): Traverse without going inside stubs
(Traverse_Declarations_Or_Statements): Do the special traversing for
stubs when required.
* sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to
return subprogram or package body from stub.
(Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect
stubs without prior subprogram decl.
2011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
* gnat_ugn.texi: Fix typo.
From-SVN: r178219
Hristian Kirtchev [Mon, 29 Aug 2011 12:56:22 +0000 (12:56 +0000)]
s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism which accounts for size vs alignment issues and...
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism
which accounts for size vs alignment issues and calculates the size of
the list header.
(Deallocate_Any_Controlled): Ditto.
(Nearest_Multiple_Rounded_Up): New routine.
From-SVN: r178218
Rainer Orth [Mon, 29 Aug 2011 12:54:55 +0000 (12:54 +0000)]
Handle different versions of Solaris 8 <iso/math_iso.h>, <iso/stdlib_iso.h>
* acinclude.m4 (GLIBCXX_CHECK_MATH_PROTO)
(GLIBCXX_CHECK_STDLIB_PROTO): New tests.
* configure.ac (GLIBCXX_CHECK_MATH_PROTO)
(GLIBCXX_CHECK_STDLIB_PROTO): Call them.
* configure: Regenerate.
* config.h.in: Regenerate.
* config/os/solaris/solaris2.8/os_defines.h
(__CORRECT_ISO_CPP_MATH_H_PROTO2): Don't define.
* config/os/solaris/solaris2.9: Remove.
* configure.host (solaris2.8): Merge with ...
(solaris2.9, solaris2.1[0-9]): ... this.
Always use os/solaris/solaris2.8.
From-SVN: r178217
Arnaud Charlet [Mon, 29 Aug 2011 12:52:57 +0000 (14:52 +0200)]
[multiple changes]
2011-08-29 Tristan Gingold <gingold@adacore.com>
* a-exstat.adb (String_To_EO): Do no set Cleanup_Flag.
* a-exexda.adb (Set_Exception_C_Msg): Ditto.
(Set_Exception_Msg): Ditto.
* a-exexpr-gcc.adb (Setup_Current_Excep): Ditto. Do not set
Private_Data.
* a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove.
Use Save_Occurrence instead of Save_Occurrence_No_Private.
(Raise_With_Msg): Remove Cleanup_Flag.
* a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove
Clean_Flag and Private_Data components.
2011-08-29 Yannick Moy <moy@adacore.com>
* freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like
in CodePeer mode.
* sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation
of an explicitly declared type, so that the base types of the original
type and this generated type are the same, and a "type" (not a subtype
like previously).
* errout.adb (Special_Msg_Delete): Do not issue messages "Size too
small" in Alfa mode, like in CodePeer mode.
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep
clauses in Alfa mode.
2011-08-29 Javier Miranda <miranda@adacore.com>
* exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this
function to the package spec.
* sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For
internally generated bodies of null procedures locate the internally
generated spec enforcing mode conformance.
(Is_Interface_Conformant): Ensure that the controlling formal of the
primitives match.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not
reject the pragma if it appears to apply to a formal subprogram.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for
inner expression, to prevent double evaluation.
From-SVN: r178216
Arnaud Charlet [Mon, 29 Aug 2011 12:48:33 +0000 (14:48 +0200)]
[multiple changes]
2011-08-29 Tristan Gingold <gingold@adacore.com>
* a-exexpr.adb (Propagate_Exception): Remove all the parameters as
they were unused.
* a-exexpr-gcc.adb (Propagate_Exception): Ditto.
* a-except-2005.adb (Propagate_Exception): Adjust spec.
(Raise_Current_Excep): Adjust call.
(Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep.
2011-08-29 Thomas Quinot <quinot@adacore.com>
* exp_disp.adb: Minor reformatting.
From-SVN: r178215
Tristan Gingold [Mon, 29 Aug 2011 12:41:02 +0000 (12:41 +0000)]
a-exexpr.adb (Setup_Exception): Removed.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* a-exexpr.adb (Setup_Exception): Removed.
* a-exexpr-gcc.adb (Setup_Exception): Removed.
* a-except.adb (Exception_Propagation): Removed.
* a-except-2005.adb (Setup_Exception): Removed.
(Reraise): Remove call to Setup_Exception.
(Reraise_Occurrence): Ditto.
(Reraise_Occurrence_Always): Ditto.
(Reraise_Occurrence_No_Defer): Ditto.
(Transfer_Occurrence): Ditto.
* a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception.
(Set_Exception_Msg): Ditto.
From-SVN: r178214
Arnaud Charlet [Mon, 29 Aug 2011 12:38:27 +0000 (14:38 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* a-convec.adb, exp_disp.adb: Minor reformatting.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C.
From-SVN: r178213
Arnaud Charlet [Mon, 29 Aug 2011 12:36:42 +0000 (14:36 +0200)]
[multiple changes]
2011-08-29 Gary Dismukes <dismukes@adacore.com>
* exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set
Exception_Handlers to No_List instead of Empty_List in the case where
there are no handlers.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* gcc-interface/gigi.h (enum standard_datatypes): Add
ADT_reraise_zcx_decl
(reraise_zcx_decl): New macro.
* gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable.
(gigi): Set reraise_zcx_decl.
(Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr.
(gnat_to_gnu): Handle N_Raise_Statement.
From-SVN: r178212
Arnaud Charlet [Mon, 29 Aug 2011 12:21:49 +0000 (14:21 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads,
a-undesu.adb: Minor reformatting.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* exp_disp.adb (Check_Premature_Freezing): When building a dispatch
table, accept an unfrozen untagged component if it is an actual for a
formal incomplete type.
* a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces to
provide new iterator forms over vectors.
Introduce type Iterator in package body to implement operations of
Reversible_Iterator interface.
* a-iteint.ads: Make package pure so it is usable with new container
packages, that are categorized Remote_Types.
From-SVN: r178211
Artjoms Sinkarovs [Mon, 29 Aug 2011 11:55:45 +0000 (11:55 +0000)]
20011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
Richard Guenther <rguenther@suse.de>
* tree.h (constant_boolean_node): Adjust prototype.
* fold-const.c (fold_convert_loc): Move aggregate conversion
leeway down.
(constant_boolean_node): Make value parameter boolean, add
vector type handling.
(fold_unary_loc): Use constant_boolean_node.
(fold_binary_loc): Preserve types properly when folding
COMPLEX_EXPR <__real x, __imag x>.
* gimplify.c (gimplify_expr): Handle vector comparison.
* tree.def (EQ_EXPR, ...): Document behavior on vector typed
comparison.
* tree-cfg.c (verify_gimple_comparison): Verify vector typed
comparisons.
From-SVN: r178209
Jakub Jelinek [Mon, 29 Aug 2011 11:52:22 +0000 (13:52 +0200)]
re PR middle-end/48722 (ICE in df_refs_verify() with -mno-push-args)
PR middle-end/48722
* emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
(verify_rtl_sharing): Likewise and verify_rtx_sharing
in there too.
(unshare_all_rtl_in_chain): For CALL_INSNs
copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
* gcc.target/i386/pr48722.c: New test.
From-SVN: r178208
Arnaud Charlet [Mon, 29 Aug 2011 11:12:58 +0000 (13:12 +0200)]
Code clean up.
From-SVN: r178206
Arnaud Charlet [Mon, 29 Aug 2011 11:12:17 +0000 (13:12 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting.
2011-08-29 Bob Duff <duff@adacore.com>
* sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the case
of <>, because this is the routine that checks for dimensionality
errors (for example, for a two-dimensional array, (others => <>) should
be (others => (others => <>)).
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* impunit.adb: Add new run-time units.
* freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb,
s-stposu.ads, s-stposu.adb: Code clean up.
Handle protected class-wide or task class-wide types
Handle C/C++/CIL/Java types.
* s-spsufi.adb, s-spsufi.ads: New files.
From-SVN: r178205
Arnaud Charlet [Mon, 29 Aug 2011 11:06:09 +0000 (13:06 +0200)]
[multiple changes]
2011-08-29 Yannick Moy <moy@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case on
library-level subprogram.
* sem_prag.adb (Check_Test_Case): Stricter rules for test-case
placement.
(Analyze_Pragma): Change name "Normal" for "Nominal" in test-case
component.
* snames.ads-tmpl: Change name "Normal" for "Nominal" in test-case
component.
* gnat_rm.texi: Update doc for Test_Case pragma.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made it
convention C.
(GCC_Exception_Access): New type.
(Unwind_DeleteException): New imported procedure
(Foreign_Exception): Import it.
(GNAT_GCC_Exception): Simply have the occurrence inside.
(To_GCC_Exception): New function.
(To_GNAT_GCC_Exception): New function.
(GNAT_GCC_Exception_Cleanup): New procedure..
(Propagate_GCC_Exception): New procedure.
(Reraise_GCC_Exception): New procedure.
(Setup_Current_Excep): New procedure.
(CleanupUnwind_Handler): Change type of UW_Exception parameter.
(Unwind_RaiseException): Ditto.
(Unwind_ForcedUnwind): Ditto.
(Remove): Removed.
(Begin_Handler): Change type of parameter.
(End_Handler): Ditto. Now delete the exception if still present.
(Setup_Key): Removed.
(Is_Setup_And_Not_Propagated): Removed.
(Set_Setup_And_Not_Propagated): Ditto.
(Clear_Setup_And_Not_Propagated): Ditto.
(Save_Occurrence_And_Private): Ditto.
(EID_For): Add 'not null' constraint on parameter.
(Setup_Exception): Does nothing.
(Propagate_Exception): Simplified.
* exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model,
re-raise is not expanded anymore.
* s-except.ads (Foreign_Exception): New exception - placeholder for
non Ada exceptions.
* raise-gcc.c (__gnat_setup_current_excep): Declare
(CXX_EXCEPTION_CLASS): Define (not yet used)
(GNAT_EXCEPTION_CLASS): Define.
(is_handled_by): Handle foreign exceptions.
(PERSONALITY_FUNCTION): Call __gnat_setup_current_excep.
2011-08-29 Jose Ruiz <ruiz@adacore.com>
* a-synbar.adb (Synchronous_Barrier): Some additional clarification.
From-SVN: r178204
Arnaud Charlet [Mon, 29 Aug 2011 11:04:03 +0000 (13:04 +0200)]
[multiple changes]
2011-08-29 Thomas Quinot <quinot@adacore.com>
* a-synbar-posix.adb: Minor reformatting.
2011-08-29 Jose Ruiz <ruiz@adacore.com>
* a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads,
a-exetim-default.ads (Interrupt_Clocks_Supported,
Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
definitions to be compliant with AI-0171. The target systems do not
support separate account for the execution time of interrupt handlers.
2011-08-29 Jose Ruiz <ruiz@adacore.com>
* a-synbar.adb (Wait): Change the order of evaluation of the conditions
in the barrier to put first the easiest to evaluate (and the one which
will be True more often). More efficient.
2011-08-29 Eric Botcazou <ebotcazou@adacore.com>
* s-atocou-x86.adb: Fix constraint in machine code insertion.
2011-08-29 Bob Duff <duff@adacore.com>
* aspects.ads, aspects.adb: Add new aspects for various pragmas and
attributes that are now aspects, as specified by AI05-0229-1.
* sem_ch13.adb (Analyze_Aspect_Specifications,
Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them into
pragmas or attribute references, as appropriate.
From-SVN: r178203
Arnaud Charlet [Mon, 29 Aug 2011 11:01:53 +0000 (13:01 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* a-synbar.ads, a-synbar.adb, a-synbar-posix.adb,
a-synbar-posix.ads: Minor reformatting.
2011-08-29 Yannick Moy <moy@adacore.com>
* snames.ads-tmpl: Add name Force.
From-SVN: r178202
Arnaud Charlet [Mon, 29 Aug 2011 11:00:17 +0000 (13:00 +0200)]
[multiple changes]
2011-08-29 Pascal Obry <obry@adacore.com>
* prj-nmsc.adb: Minor reformatting.
2011-08-29 Jose Ruiz <ruiz@adacore.com>
* a-exetim.ads (Interrupt_Clocks_Supported,
Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
definitions to be compliant with AI-0171.
2011-08-29 Robert Dewar <dewar@adacore.com>
* a-ngelfu.adb: Add comments.
From-SVN: r178201
Arnaud Charlet [Mon, 29 Aug 2011 10:58:32 +0000 (12:58 +0200)]
[multiple changes]
2011-08-29 Tristan Gingold <gingold@adacore.com>
* s-interr-hwint.adb: Revert previous patch (defer aborts in ZCX case).
2011-08-29 Geert Bosch <bosch@adacore.com>
* a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument is
the closest machine number to Pi / 2.0.
2011-08-29 Jose Ruiz <ruiz@adacore.com>
* impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012
package Ada.Synchronous_Barriers.
* a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb:
Add new specs and bodies for Ada.Synchronous_Barriers. There is a
default implementation using protected objects and another one
a-synbar-posix using POSIX barriers as the underlying support.
* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86,
x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation of
Ada.Synchronous_Barriers which uses POSIX barriers (more efficient).
* Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o
From-SVN: r178200
Arnaud Charlet [Mon, 29 Aug 2011 10:46:57 +0000 (12:46 +0200)]
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com>
* sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb,
exp_dist.adb: Minor code reorganization.
Minor reformatting.
2011-08-29 Thomas Quinot <quinot@adacore.com>
* sem_cat.adb (Validate_RACW_Primitive): The return type of an RACW
primitive operation must support external streaming if it is not a
controlling access result.
From-SVN: r178199
Arnaud Charlet [Mon, 29 Aug 2011 10:44:14 +0000 (12:44 +0200)]
[multiple changes]
2011-08-29 Thomas Quinot <quinot@adacore.com>
* sinfo.ads, sem_ch7.adb: Minor reformatting.
2011-08-29 Bob Duff <duff@adacore.com>
* sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization
restriction on allocators, as required by AI05-0013-1.
* restrict.ads: Minor comment fix.
From-SVN: r178198