Jason Merrill [Mon, 15 Apr 2013 15:24:03 +0000 (11:24 -0400)]
re PR c++/52748 ([C++11] N3276 changes to decltype)
PR c++/52748
* pt.c (tsubst) [DECLTYPE_TYPE]: If ~id is an expression
rather than a destructor name, it isn't an unqualified-name.
(tsubst_copy_and_build): Pass down decltype_flag to operator
handling code, too.
Jakub Jelinek [Mon, 15 Apr 2013 14:56:36 +0000 (16:56 +0200)]
re PR tree-optimization/56962 (SLSR caused miscompilation of fftw)
PR tree-optimization/56962
* gimple-ssa-strength-reduction.c (record_increment): Only set
initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
either rhs1 or rhs2 is equal to c->base_expr.
PR fortran/56919
* intrinsics/time_1.h: Check __CYGWIN__ in addition to
__MINGW32__.
* intrinsics/system_clock.c (GF_CLOCK_MONOTONIC): Check
_POSIX_MONOTONIC_CLOCK as well.
(system_clock_4): Use GetTickCount on Windows.
(system_clock_8): Use QueryPerformanceCounter and
QueryPerformanceCounterFrequency on Windows.
* config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
* config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
* config/arm/constraints.md (De): New constraint.
* config/arm/neon.md (anddi3_neon): Delete.
(neon_vand<mode>): Expand to standard anddi3 pattern.
* config/arm/predicates.md (imm_for_neon_inv_logic_operand):
Move earlier in the file.
(neon_inv_logic_op2): Likewise.
(arm_anddi_operand_neon): New predicate.
testsuite:
* gcc.target/arm/anddi3-opt.c: New test.
* gcc.target/arm/anddi3-opt2.c: Likewise.
Eric Botcazou [Mon, 15 Apr 2013 08:28:41 +0000 (08:28 +0000)]
re PR target/56890 (invalid fdtox instruction in 64-bit mode with -O2)
PR target/56890
* config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
(S_MODES): Set H_MODE bit.
(SF_MODES): Set only S_MODE and SF_MODE bits.
(DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
(sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
<MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
<MODE_FLOAT>: Likewise.
Joey Ye [Mon, 15 Apr 2013 07:41:27 +0000 (07:41 +0000)]
arm.c (thumb1_final_prescan_insn): Assert lr save for real far jump.
2013-04-15 Joey Ye <joey.ye@arm.com>
* config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
for real far jump.
(thumb_far_jump_used_p): Count instruction size and set
far_jump_used.
testsuite:
* gcc.target/arm/thumb1-far-jump-1.c: New test.
* gcc.target/arm/thumb1-far-jump-2.c: New test.
gcj.texi (Configure-time Options): Refer to GCC, not gcc.
* gcj.texi (Configure-time Options): Refer to GCC, not gcc.
(Resources): Adjust reference to Mauve.
Remove link to java.sun.com.
Refer to GCC, not gcc.
Steven Bosscher [Sat, 13 Apr 2013 18:08:19 +0000 (18:08 +0000)]
sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn notes, they are emitted only just before final.
* sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
notes, they are emitted only just before final.
* sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
Steven Bosscher [Sat, 13 Apr 2013 10:04:09 +0000 (10:04 +0000)]
emit-rtl.c (remove_insn): Do not call df_insn_delete here.
* emit-rtl.c (remove_insn): Do not call df_insn_delete here.
* cfgrtl.c (delete_insn): Call it here instead.
* lra-spills.c (lra_final_code_change): Use delete_insn.
* haifa-sched.c (sched_remove_insn): Likewise.
* sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
returning to the nop pool.
(sel_remove_insn): Simplify the only_disconnect case via remove_insn,
use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
Vladimir Makarov [Fri, 12 Apr 2013 17:09:10 +0000 (17:09 +0000)]
re PR rtl-optimization/56903 (gcc is 4.8.0 fails to compile netdev.c from the linux kernel [internal compiler error: Maximum number of LRA constraint passes is achieved])
2013-04-12 Vladimir Makarov <vmakarov@redhat.com>
PR target/56903
* config/i386/i386.c (ix86_hard_regno_mode_ok): Add
lra_in_progress for return.
2013-04-12 Vladimir Makarov <vmakarov@redhat.com>
PR target/56903
* gcc.target/i386/pr56903.c: New test.
Janus Weil [Fri, 12 Apr 2013 14:21:39 +0000 (16:21 +0200)]
re PR fortran/56261 ([OOP] seg fault call procedure pointer on polymorphic array)
2013-04-12 Janus Weil <janus@gcc.gnu.org>
PR fortran/56261
* gfortran.h (gfc_explicit_interface_required): New prototype.
* expr.c (gfc_check_pointer_assign): Check if an explicit interface is
required in a proc-ptr assignment.
* interface.c (check_result_characteristics): Extra check.
* resolve.c (gfc_explicit_interface_required): New function.
(resolve_global_procedure): Use new function
'gfc_explicit_interface_required'. Do a full interface check.
* init.c (SS$_CONTROLC, SS$_CONTINUE) [VMS]: New macros.
(__gnat_handle_vms_condition) [VMS]: Dispatch on the Crtl/C user
handler if installed.
* ctrl_c.c (__gnat_install_int_handler)
[VMS]: Install a dummy sigaction handler to trigger the real
user handler dispatch in init.c/__gnat_handle_vms_condition.
(__gnat_uninstall_int_handler) [VMS]: Likewise.
2013-04-12 Vincent Celier <celier@adacore.com>
* clean.adb (Parse_Cmd_Line): Set Directories_Must_Exist_In_Projects
to False if switch is specified.
* makeutl.adb (Initialize_Source_Record): Do not look for the
object file if there is no object directory.
* opt.ads (Directories_Must_Exist_In_Projects): New Boolean
variable, defaulted to True.
* prj-nmsc.adb (Check_Library_Attributes): Do not fail if library
directory does not exist when Directories_Must_Exist_In_Projects is
False.
(Get_Directories): Do not fail when the object or the exec directory
do not exist when Directories_Must_Exist_In_Projects is False.
* einfo.adb (Has_Dynamic_Predicate_Aspect): New flag.
(Has_Static_Predicate_Aspect): New flag.
* einfo.ads (Has_Dynamic_Predicate_Aspect): New flag.
(Has_Static_Predicate_Aspect): New flag.
* exp_ch9.adb: Minor reformatting.
* exp_util.adb (Make_Invariant_Call): Check_Enabled now handles
synonyms.
* gnat1drv.adb: Remove setting of Debug_Pragmas_Enabled,
since this switch is gone and control of Debug is done with
Assertions_Enabled.
* gnat_rm.texi: Update documentation for Assertion_Policy and
Check_Policy pragmas.
* opt.adb (Debug_Pragmas_Disabled[_Config]): Removed
(Debug_Pragmas_Enabled[_Config]): Removed Since debug now
controlled by Assertion_Enabled.
* opt.ads (Debug_Pragmas_Disabled[_Config]): Removed
(Debug_Pragmas_Enabled[_Config]): Removed Since debug now
controlled by Assertion_Enabled.
* par-ch2.adb (Scan_Pragma_Argument_Association): Allow new
'Class forms.
* sem_attr.adb: Minor reformatting.
* sem_ch13.adb (Analyze_Aspect_Specification): Disable aspect
if DISABLE policy applies.
* sem_ch6.adb (Grab_PPC): Check original name of aspect for
aspect from pragma (Process_PPCs): Properly check assertion policy.
* sem_prag.adb (Check_Enabled): Rewritten for new Assertion_Policy
(Check_Appicable_Policy): New procedure.
(Is_Valid_Assertion_Kind): New function.
(Rewrite_Assertion_Kind): New procedure.
(Analyze_Pragma): Handle case of disabled assertion pragma.
(Analyze_Pragma, case Assertion_Policy): Rewritten for Ada 2012.
(Analyze_Pragma, case Check): Deal with 'Class possibilities.
(Analyze_Pragma, case Check_Policy): Deal with 'Class possibilities.
(Analyze_Pragma, case Contract_Class): New handling of ignored pragma.
(Analyze_Pragma, case Debug): New control with Assertion_Policy.
(Analyze_Pragma, case Debug_Policy): Now consistent with
Assertion_Policy.
(Analyze_Pragma, case Loop_Invariant): New handling of ignored
pragma.
(Analyze_Pragma, case Loop_Variant): New handling of ignored pragma.
(Analyze_Pragma, case Precondition): Use proper name for Check pragma.
(Analyze_Pragma, case Check_Enabled): Rewritten for new policy stuff.
* sem_prag.ads (Check_Enabled): Rewritten for new
Assertion_Policy stuff.
(Check_Appicable_Policy): New procedure.
* sinfo.adb (Is_Disabled): New flag.
(Is_Ignored): New flag.
* sinfo.ads (Is_Disabled): New flag.
(Is_Ignored): New flag.
(N_Pragma_Argument_Association): New 'Class forms.
* snames.ads-tmpl: New names Name_uPre, Name_uPost,
Name_uType_Invariant, Name_uInvariant.
* switch-c.adb: Remove setting of Debug_Pragmas_Enabled for -gnata.
* tree_io.ads (ASIS_Version_Number): Updated (remove
read write of obsolete flags Debug_Pragmas_Disabled and
Debug_Pragmas_Enabled.
2013-04-12 Ed Schonberg <schonberg@adacore.com>
* exp_aggr.adb (Get_Explicit_Discriminant_Value): Subsidiary
of Build_Record_Aggr_Code, used to retrieve explicit values
for inherited discriminants in an extension aggregate, when the
ancestor type is unconstrained.
* sem_attr.adb (Check_Stream_Attribute): If restriction
No_Default_Stream_Attributes is active, it is illegal to use a
predefined elementary type stream attribute either by itself,
or more importantly as part of the attribute subprogram for a
composite type. However, if the broader restriction No_Streams
is active, then stream operations are not generated, and there
is no error.
* sem_prag.adb (Analyze_Input_List): Detect an illegal dependency
clause where both input and output lists are null.
(Analyze_Pragma): Update the grammar of pragma Depends.
2013-04-12 Vincent Celier <celier@adacore.com>
* gnatbind.adb (No_Restriction_List): Exclude restrictions that
take a parameter value, not a count.
* prj.ads, prj.adb (Remove_All_Restricted_Languages): New procedure.
* projects.texi: Complete documentation of attribute Roots.
2013-04-12 Thomas Quinot <quinot@adacore.com>
* exp_ch3.adb, exp_util.ads, checks.adb, freeze.adb, sem_attr.adb,
sem_ch3.adb: Minor reformatting.
* exp_ch4.adb (Size_In_Storage_Elements): Minor documentation
improvement: note that the computation is pessimistic for bit
packed arrays.
* gnat_rm.texi (Range_Length): Fix minor error in description
of attribute.
* aspects.adb (Find_Aspect): New routine.
(Find_Value_Of_Aspect): New routine.
(Has_Aspect): Reimplemented.
* aspects.ads (Find_Aspect): New routine.
(Find_Value_Of_Aspect): New routine, previously known as Find_Aspect.
* exp_ch5.adb (Expand_Iterator_Loop): Update the call to Find_Aspect.
* exp_util.adb (Is_Iterated_Container): Update the call to Find_Aspect.
* sem_ch4.adb (Try_Container_Indexing): Update calls to Find_Aspect.
* sem_ch5.adb (Analyze_Iterator_Specification): Update
the call to Find_Aspect. Use function Has_Aspect for better
readability.
(Preanalyze_Range): Use function Has_Aspect for better readability.
* sem_ch13.adb (Check_One_Function): Update the call to Find_Aspect.
* sem_prag.adb (Analyze_Pragma): There is no longer need to
look at the parent to extract the corresponding pragma for
aspect Global.
* aspects.adb: Alphabetize subprogram bodies in this unit. Add
an entry for Aspect_Ghost in the table of canonical aspects.
(Has_Aspect): New routine.
* aspects.ads: Add Aspect_Ghost to all relevant
tables. Alphabetize subprograms in this unit.
(Has_Aspect): New routine.
* einfo.adb: Add with and use clauses for Aspects.
(Is_Ghost_Function): New routine.
* einfo.ads: Add new synthesized attribute Is_Ghost_Function and
update the structure of the related nodes.
(Is_Ghost_Function): New routine.
* exp_ch4.adb (Find_Enclosing_Context): Use routine
Is_Body_Or_Package_Declaration to terminate a search.
(Is_Body_Or_Unit): Removed.
* exp_util.adb (Within_Case_Or_If_Expression): Use routine
Is_Body_Or_Package_Declaration to terminate a search.
* par-prag.adb: Add pragma Ghost to the list of pragmas that do
not need special processing by the parser.
* sem_attr.adb (Analyze_Access_Attribute): Detect an
illegal use of 'Access where the prefix is a ghost function.
(Analyze_Attribute): Use routine Is_Body_Or_Package_Declaration
to terminate a search. (Check_References_In_Prefix): Use routine
Is_Body_Or_Package_Declaration to terminate a search.
* sem_ch4.adb (Analyze_Call): Mark a function when it appears
inside an assertion expression. Verify the legality of a call
to a ghost function.
(Check_Ghost_Function_Call): New routine.
* sem_ch6.adb (Analyze_Function_Call): Code reformatting. Move
the setting of attribute In_Assertion_Expression to Analyze_Call.
(Check_Overriding_Indicator): Detect an illegal attempt to
override a function with a ghost function.
* sem_ch12.adb (Preanalyze_Actuals): Detect an illegal use of
a ghost function as a generic actual.
* sem_elab.adb (Check_Internal_Call_Continue): Update the call
to In_Assertion.
* sem_prag.adb: Add an entry for pragma Ghost in the table
of significant arguments.
(Analyze_Pragma): Do not analyze
an "others" case guard. Add processing for pragma Ghost. Use
Preanalyze_Assert_Expression when analyzing the expression of
pragmas Loop_Invariant and Loop_Variant.
* sem_util.adb (Get_Subprogram_Entity): Reimplemented.
(Is_Body_Or_Package_Declaration): New routine.
* sem_util.ads: Alphabetize subprotrams in this unit.
(Is_Body_Or_Package_Declaration): New routine.
* sinfo.adb (In_Assertion): Rename to In_Assertion_Expression.
(Set_In_Assertion): Rename to Set_In_Assertion_Expression.
* sinfo.ads: Rename flag In_Assertion to In_Assertion_Expression
to better reflect its use. Update all places that mention the flag.
(In_Assertion): Rename to In_Assertion_Expression. Update
related pragma Inline. (Set_In_Assertion): Rename to
Set_In_Assertion_Expression. Update related pragma Inline.
* snames.ads-tmpl: Add new predefined name Ghost. Add new pragma
id Pragma_Ghost.
Ed Schonberg [Fri, 12 Apr 2013 13:12:02 +0000 (13:12 +0000)]
s-rident.ads: Add various missing Ada 2012 restrictions...
2013-04-12 Ed Schonberg <schonberg@adacore.com>
* s-rident.ads: Add various missing Ada 2012 restrictions:
No_Access_Parameter_Allocators, No_Coextensions,
No_Use_Of_Attribute, No_Use_Of_Pragma.
* snames.ads-tmpl: Add corresponding names.
* restrict.ads restrict.adb: Subprograms and data structures to
handle aspects No_Use_Of_Attribute and No_Use_Of_Pragma.
* sem_ch4.adb: Correct name of restrictions is
No_Standard_Allocators_After_Elaboration.
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check
violation of restriction No_Use_Of_Attribute.
* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
Set restrictions No_Use_Of_Pragma and No_Use_Of_Attribute.
(Analyze_Pragma): Check violation of restriction No_Use_Of_Pragma.
* sem_res.adb: Check restrictions No_Access_Parameter_Allocators
and No_Coextensions.
* bcheck.adb: Correct name of restrictions is
No_Standard_Allocators_After_Elaboration.
* gnatbind.adb: Correct name of restrictions is
No_Standard_Allocators_After_Elaboration.
* sem_elab.adb (Within_Elaborate_All): Do not examine a context
item that has not been analyzed, because the unit may have errors,
or the context item may come from a proper unit inserted at the
point of a stub and not analyzed yet.
2013-04-12 Thomas Quinot <quinot@adacore.com>
* gnat1drv.adb, repinfo.adb, repinfo.ads (Repinfo.List_Array_Info,
List_Record_Info): Also include scalar storage order information in
output.
2013-04-12 Yannick Moy <moy@adacore.com>
* sem_ch6.adb (Process_Contract_Cases): Update code to apply to
Contract_Cases instead of Contract_Case pragma.
* a-cfdlli.ads, g-socket.adb, s-fileio.adb: Minor reformatting.
2013-04-12 Yannick Moy <moy@adacore.com>
* sem_attr.adb (Analyze_Attribute): Update analyse of
Attribute_Old and Attribute_Result so they are allowed in the
right-hand-side of an association in a Contract_Cases pragma.
* sem_prag.adb (Analyze_CTC_In_Decl_Part): Add pre-analysis of
the expressions in a Contract_Cases pragma.
* sem.ads, opt.ads: Minor comment edits.
* sem_warn.adb, sem_ch6.adb: Minor reformatting.
2013-04-12 Claire Dross <dross@adacore.com>
* a-cfdlli.adb a-cfdlli.ads (List, Not_No_Element, Iterate,
Reverse_Iterate, Query_Element, Update_Element, Read, Write): Removed,
not suitable for formal analysis.
2013-04-12 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Abstract_State): Use Defining entity
to locate package entity, which may be a child unit.
2013-04-12 Thomas Quinot <quinot@adacore.com>
* g-socket.adb, g-socket.ads (Connect_Socket, version with timeout): If
the specified timeout is 0, do not attempt to determine whether the
connection succeeded.
2013-04-12 Doug Rupp <rupp@adacore.com>
* s-fileio.adb (Form_RMS Context_Key): Fix some thinkos.
* opt.ads (Style_Check_Main): New switch.
* sem.adb (Semantics): Set Style_Check flag properly for new
unit to be analyzed.
* sem_ch10.adb (Analyze_With_Clause): Don't reset Style_Check,
the proper setting of this flag is now part of the Semantics
procedure.
* switch-c.adb (Scan_Front_End_Switches): Set Style_Check_Main
for -gnatg and -gnaty
* sem_ch13.adb (Analyze_Aspect_Specifications):
Insert the corresponding pragma for aspect Abstract_State at
the top of the visible declarations of the related package.
Previously this was only done when the package is a compilation
unit.
2013-04-12 Arnaud Charlet <charlet@adacore.com>
* gnat_ugn.texi: Further menu clean ups.
* sem_prag.adb, opt.ads: Minor reformatting.
* sem_util.ads: Minor comment fix.
* sem_ch13.adb (Analyze_Aspect_Specifications): Aspect
Depends is now a delayed aspect. The delay is required
due to the interplay between aspects Depends and Global.
(Check_Aspect_At_Freeze_Point): Add an entry for aspect Depends.
* sem_prag.adb: Reformat various error messages.
(Add_Item): New subsidiary routine.
(Analyze_Pragma): Add new variables
Global_Seen, Result_Seen, Subp_Inputs and Subp_Outputs. The
analysis of pragma Depends now has the capability to check
the proper mode and usage of subprogram inputs and outputs.
(Appears_In): New routine.
(Check_Function_Return): New routine.
(Check_Mode): New routine.
(Check_Usage): New routine.
(Collect_Subprogram_Inputs_Outputs): New routine.
* par-ch7.adb (P_Package): Initialize Sloc in the newly-pushed scope
stack entry.
2013-04-12 Robert Dewar <dewar@adacore.com>
* switch-c.adb: Minor fix to wording of error message for
-gnatet/eT.
2013-04-12 Robert Dewar <dewar@adacore.com>
* impunit.adb: Add s-multip and s-mudido to list of impl defined
system units.
* gnat_rm.texi: Add documentation for
System.Multiprocessors[.Dispatching_Domains].
2013-04-12 Ben Brosgol <brosgol@adacore.com>
* gnat_ugn.texi: Completion of menu cleanups.
2013-04-12 Arnaud Charlet <charlet@adacore.com>
* sem_prag.adb (Diagnose_Multiple_Pragmas): Relax the rules
in Relaxed_RM_Semantics.
2013-04-12 Arnaud Charlet <charlet@adacore.com>
* set_targ.adb (elab code): Add support for non gcc back-ends
where save_argv is null.
Robert Dewar [Fri, 12 Apr 2013 12:44:46 +0000 (12:44 +0000)]
gnat1drv.adb (Gnat1drv): Test Target_Dependent_Info_Write_Name.
2013-04-12 Robert Dewar <dewar@adacore.com>
* gnat1drv.adb (Gnat1drv): Test Target_Dependent_Info_Write_Name.
* opt.ads (Target_Dependent_Info_Read): Add _Name, now an access
type (Target_Dependent_Info_Write): Add _Name, now an access type.
* set_targ.adb (Write_Target_Dependent_Values): Use name
from -gnatet switch stored in Target_Dependent_Info_Write_Name
(Read_Target_Dependent_Values): Use name from -gnateT switch
stored in Target_Dependent_Info_Read_Name.
* switch-c.adb: New form of -gnatet and -gnateT switches.
* usage.adb: New form of -gnatet and -gnateT switches with
file name.
Jakub Jelinek [Fri, 12 Apr 2013 08:18:59 +0000 (10:18 +0200)]
re PR tree-optimization/56918 (incorrect auto-vectorization of array initialization)
PR tree-optimization/56918
PR tree-optimization/56920
* fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
use wide_mul_with_sign method.
* gcc.dg/vect/pr56918.c: New test.
* gcc.dg/vect/pr56920.c: New test.
* stor-layout.c (skip_simple_constant_arithmetic): Move to...
* tree.c (skip_simple_constant_arithmetic): ...here and make public.
(skip_simple_arithmetic): Tidy up.
* tree.h (skip_simple_constant_arithmetic): Declare.
ada/
* gcc-interface/decl.c (elaborate_expression_1): Skip only constant
arithmetics when looking for a read-only variable in the expression.
Jason Merrill [Thu, 11 Apr 2013 15:51:40 +0000 (11:51 -0400)]
pt.c (tsubst_copy): Don't call tsubst for local variables, look them up instead.
* pt.c (tsubst_copy) [VAR_DECL]: Don't call tsubst for
local variables, look them up instead.
(tsubst_decl) [VAR_DECL]: Remove handling for anonymous union
proxies and substitution in unevaluated context.
(tsubst_expr) [OMP_FOR]: Instantiate OMP_FOR_PRE_BODY
before the iterators.
Javier Miranda [Thu, 11 Apr 2013 15:26:40 +0000 (15:26 +0000)]
check.ads, [...] (Install_Null_Excluding_Check): No check in interface thunks since it is performed at the caller side.
2013-04-11 Javier Miranda <miranda@adacore.com>
* check.ads, exp_ch6.adb (Install_Null_Excluding_Check): No check in
interface thunks since it is performed at the caller side.
(Expand_Simple_Function_Return): No accessibility check needed in thunks
since the check is done by the target routine.
Julian Brown [Thu, 11 Apr 2013 14:22:54 +0000 (14:22 +0000)]
libgcc/
* config/arm/linux-atomic.c (SUBWORD_SYNC_OP, SUBWORD_VAL_CAS)
(SUBWORD_TEST_AND_SET): Use signed char/short types instead of
unsigned char/unsigned short.
(__sync_val_compare_and_swap_{1,2}): Handle signed argument.
Ed Schonberg [Thu, 11 Apr 2013 13:38:22 +0000 (13:38 +0000)]
sem_prag.adb (Analyze_Pragma, [...]): pre-analyze expression with type Any_Priority.
2013-04-11 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Priority): pre-analyze
expression with type Any_Priority.
* exp_ch9.adb (Initialize_Protection): Check that the value
of the priority expression is within the bounds of the proper
priority type.
* gnat_ugn.texi: Remove obsolete comment about DLL calling
convention.
2013-04-11 Javier Miranda <miranda@adacore.com>
* exp_ch6.adb (Expand_Call): For the call to the target primitive
of an interface thunks do not compute the extra actuals; just
propagate the extra actuals received by the thunk.
* exp_disp.adb (Expand_Interface_Thunk): Decorate new attribute
Thunk_Entity.
* sem_ch6.adb (Create_Extra_Formals): Do not generate extra
formals in interface thunks whose target primitive has no extra
formals.
* sem_prag.adb (Analyze_Pragma): Detect
a renaming by looking at the Renamed_Object attribute.
(Is_Renaming): Removed.
2013-04-11 Vincent Celier <celier@adacore.com>
* prj-env.adb (Initialize_Default_Project_Path): Take
into account a project path file, specified by environment
variable GPR_PROJECT_PATH_FILE, before taking into account
GPR_PROJECT_PATH.
* projects.texi: Add documentation for GPR_PROJECT_PATH_FILE
* sem_prag.adb (Analyze_Pragma): Both pragma Depends and Global can now
support renamings of entire objects. Legal renamings are replaced by
the object they rename.
(Is_Renaming): New routine.
2013-04-11 Yannick Moy <moy@adacore.com>
* set_targ.adb, opt.ads: Minor changes in comments.
* nlists.ads, nlists.adb, treepr.adb, treepr.ads: Move debugging
function p from Nlists to Treepr.
2013-04-11 Ed Schonberg <schonberg@adacore.com>
* sem_disp.adb (Check_Dispatching_Context): If the context is
a contract for a null procedure defer error reporting until
postcondition body is created.
* exp_ch13.adb (Expand_N_Freeze_Entity): If the entity is a
null procedure, complete the analysis of its contracts so that
calls within classwide conditions are properly rewritten as
dispatching calls.
* back_end.adb (Register_Back_End_Types): Moved to Get_Targ
* back_end.ads (C_String): Moved to Get_Targ
(Register_Type_Proc): Moved to Get_Targ (Register_Back_End_Types):
Moved to Get_Targ.
* cstand.adb (Register_Float_Type): New interface
(Create_Back_End_Float_Types): Use entries in FPT_Mode_Table.
* get_targ.adb (Register_Back_End_Types): Moved here from
Back_End.
* get_targ.ads (C_String): Moved here from Back_End
(Register_Type_Proc): Moved here from Back_End
(Register_Back_End_Types): here from Back_End.
* gnat1drv.adb (GGnat11drv): Add call to
Write_Target_Dependent_Values;
* lib-writ.ads, lib-writ.adb (Write_ALI): Remove section writing
obsolete target dependent info.
* opt.ads (Generate_Target_Dependent_Info):
Removed (Target_Dependent_Info_Read): New flag
(Target_Dependent_Info_Write): New flag
* output.adb: Minor comment change
* s-os_lib.ads: Minor reformatting
* set_targ.ads, set_targ.adb: Minor reformatting.
* switch-c.adb (Scan_Switches.First_Ptr): New variable
(Scan_Front_End_Switches): Check -gnatd.b, -gnateT come first
(Scan_Front_End_Switches): Handle -gnatet, -gnateT
* ttypes.ads: Remove documentation section on target dependent
info in ali file Remove four letter codes, no longer used Instead
of using Get_Targ.Get_xxx, we use Set_Targ.xxx
* usage.adb: Add usage lines for -gnatet/-gnateT
* gcc-interface/Make-lang.in: Update dependencies.
* sem_ch13.adb (Analyze_Aspect_Specifications):
Add a guard to prevent the double insertion of the same aspect
into a rep item list. This previously led to a circularity.
2013-04-11 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Eval_Attribute, case 'Access): Reject attribute
reference if the prefix is the dereference of an anonymous access
to subprogram type.
* exp_attr.adb (Expand_N_Attribute_Reference, Access_Cases): Handle
properly a reference to the current instance of a protected type
from within a protected subprogram.
* sem_res.adb (Find_Unique_Access_Type): Treat
Attribute_Access_Type like Allocator_Type when resolving an
equality operator.
* sem_case.adb (Check_Against_Predicate): New routine.
(Check_Choices): When the type covered by the list of choices
is a static subtype with a static predicate, check all choices
agains the predicate.
(Issue_Msg): All versions removed.
(Missing_Choice): New routines.
* sem_ch4.adb: Code and comment reformatting.
(Analyze_Case_Expression): Do not check the choices when the case
expression is being preanalyzed and the type of the expression
is a subtype with a static predicate.
(Has_Static_Predicate): New routine.
* sem_ch13.adb: Code and comment reformatting. (Build_Range):
Always build a range even if the low and hi bounds denote the
same value. This is needed by the machinery in Check_Choices.
(Build_Static_Predicate): Always build a range even if the low and
hi bounds denote the same value. This is needed by the machinery
in Check_Choices.
* gnatlink.adb: Fold program basename to lower case on VMS for
consistency.
2013-04-11 Matthew Heaney <heaney@adacore.com>
* a-rbtgbo.adb (Generic_Equal): Initialize Result variable before
entering loop.
2013-04-11 Arnaud Charlet <charlet@adacore.com>
* xgnatugn.adb: Remove dead code (handling of @ifset/@ifclear).
2013-04-11 Arnaud Charlet <charlet@adacore.com>
* gnat_ugn.texi: Remove some use of ifset in menus. Not strictly
needed, and seems to confuse some versions of makeinfo.
2013-04-11 Javier Miranda <miranda@adacore.com>
* einfo.adb (Is_Thunk): Remove assertion.
(Set_Is_Thunk): Add assertion.
* einfo.ads (Is_Thunk): Complete documentation.
* exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Code cleanup.
* exp_ch3.ad[sb] (Is_Variable_Size_Array): Moved to sem_util
(Is_Variable_Size_Record): Moved to sem_util
* exp_ch6.adb (Expand_Call): Code cleanup.
(Expand_N_Extended_Return_Statement): Code cleanup.
(Expand_Simple_Function_Return): Code cleanup.
* exp_disp.adb Remove dependency on exp_ch3
(Expand_Interface_Thunk): Add minimum decoration needed to set
attribute Is_Thunk.
* sem_ch3.ad[sb] (Is_Constant_Bound): moved to sem_util
* sem_util.ad[sb] (Is_Constant_Bound): Moved from
sem_ch3 (Is_Variable_Size_Array): Moved from exp_ch3
(Is_Variable_Size_Record): Moved from exp_ch3