aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-10-11compiler: Use backend interface for function declarations.Chris Manghane9-309/+368
* go-gcc.cc (Backend::error_function): New function. (Backend::function): New function. (Backend::make_function): New function. (function_to_tree): New function. From-SVN: r203403
2013-10-11compiler: Avoid extra error for anonymous embedded type.Ian Lance Taylor1-6/+1
From-SVN: r203402
2013-10-11runtime: Report len out of range for large len when making slice.Ian Lance Taylor1-1/+4
From-SVN: r203401
2013-10-11Daily bump.GCC Administrator1-1/+1
From-SVN: r203400
2013-10-10predict.c (tree_estimate_probability): Add new parameter for ↵Teresa Johnson3-10/+37
estimate_bb_frequencies. 2013-10-10 Teresa Johnson <tejohnson@google.com> * predict.c (tree_estimate_probability): Add new parameter for estimate_bb_frequencies. (estimate_bb_frequencies): Add new parameter to force estimation. (rebuild_frequencies): When max frequency in function is small, recompute counts from frequencies. * predict.h (estimate_bb_frequencies): New parameter. From-SVN: r203395
2013-10-10re PR fortran/58226 (negative subscript pos at fortran/options.c:1205)Tobias Burnus2-0/+9
2013-10-09 Tobias Burnus <burnus@net-b.de> PR fortran/58226 * options.c (gfc_get_option_string): Handle zero arg case. From-SVN: r203394
2013-10-10ipa-inline.c:ipa_inline: Fix leak of "order" when optimizations are disabled.David Malcolm2-2/+8
2013-10-10 David Malcolm <dmalcolm@redhat.com> * ipa-inline.c (ipa_inline): Fix leak of "order" when optimizations are disabled. From-SVN: r203389
2013-10-10Fix leak of coverage.c:da_file_nameDavid Malcolm2-0/+7
gcc/ 2013-10-10 David Malcolm <dmalcolm@redhat.com> * coverage.c (coverage_finish): Fix leak of da_file_name. From-SVN: r203388
2013-10-10x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES for generic...Jan Hubicka7-10/+24
* config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer, Bobcat and generic. * gcc.target/i386/avx256-unaligned-store-3.c: Update template for tuning change. * gcc.target/i386/avx256-unaligned-store-1.c: Likewise. * gcc.target/i386/pr49168-1.c: Likewise. * gcc.target/i386/pr49002-2.c: Likewise. From-SVN: r203387
2013-10-10re PR middle-end/58670 (asm goto miscompilation)Jakub Jelinek5-6/+106
PR middle-end/58670 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument, if any labels are in FALLTHRU_BB, use a special label emitted immediately after the asm goto insn rather than label_rtx of the LABEL_DECL. (expand_asm_stmt): Adjust caller. * cfgrtl.c (commit_one_edge_insertion): Force splitting of edge if the last insn in predecessor is a jump with single successor, but it isn't simplejump_p. * gcc.dg/torture/pr58670.c: New test. From-SVN: r203383
2013-10-10re PR tree-optimization/58656 (rnflow regressing after r202826)Richard Biener2-1/+14
2013-10-10 Richard Biener <rguenther@suse.de> PR tree-optimization/58656 * tree-ssa-pre.c (phi_translate): Do not cache failed translations. From-SVN: r203377
2013-10-10Minor reformatting.Arnaud Charlet1-5/+6
From-SVN: r203375
2013-10-10[multiple changes]Arnaud Charlet9-13/+74
2013-10-10 Robert Dewar <dewar@adacore.com> * par-ch6.adb (Check_Junk_Semicolon_Before_Return): Remove junk code. 2013-10-10 Javier Miranda <miranda@adacore.com> * sem_ch13.adb (Freeze_Entity_Checks): Avoid loosing errors on CPP entities in -gnatc mode. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_ch5.adb (Analyze_If_Statement): Only diagnose redundant if from source. 2013-10-10 Robert Dewar <dewar@adacore.com> * restrict.adb (Check_SPARK_Restriction): Refine test (don't automatically go to the original node). * sem_ch11.adb (Analyze_Raise_Statement): Only raise statements that come from source violate SPARK restrictions. (Analyze_Raise_xxx_Error): Same fix. * sem_ch3.adb (Analyze_Object_Declaration): Check OK SPARK initialization on original node, not on possibly rewritten expression. * sem_ch4.adb (Analyze_If_Expression): Only if expressions that come from source violate SPARK mode restrictions. 2013-10-10 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Fix confusing documentation for -gnatyM. From-SVN: r203374
2013-10-10Index...Andrew MacLeod2-0/+7
Index: gimplify.c =================================================================== *** gimplify.c (revision 203357) --- gimplify.c (working copy) *************** along with GCC; see the file COPYING3. *** 46,51 **** --- 46,53 ---- #include "langhooks-def.h" /* FIXME: for lhd_set_decl_assembler_name */ #include "tree-pass.h" /* FIXME: only for PROP_gimple_any */ #include "tree-mudflap.h" + #include "expr.h" + #include "tm_p.h" enum gimplify_omp_var_data { From-SVN: r203373
2013-10-10[multiple changes]Arnaud Charlet4-4/+30
2013-10-10 Yannick Moy <moy@adacore.com> * errout.adb (Compilation_Errors): In formal verification mode, always return False. 2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Collect_Hidden_States_In_Decls): Only consider source non-constant objects. From-SVN: r203372
2013-10-10[multiple changes]Arnaud Charlet14-125/+866
2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb: Add an entry in table Canonical_Aspect for Refined_State. * aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument, Aspect_Names and Aspect_Delay for Refined_State. * einfo.adb: Add with and use clauses for Elists. Remove Refined_State from the list of node usage. Add Refined_State_Pragma to the list of node usage. (Has_Null_Abstract_State): New routine. (Refined_State): Removed. (Refined_State_Pragma): New routine. (Set_Refined_State): Removed. (Set_Refined_State_Pragma): New routine. (Write_Field8_Name): Add output for Refined_State_Pragma. (Write_Field9_Name): Remove the output for Refined_State. * einfo.ads: Add new synthesized attribute Has_Null_Abstract_State along with usage in nodes. Remove attribute Refined_State along with usage in nodes. Add new attribute Refined_State_Pragma along with usage in nodes. (Has_Null_Abstract_State): New routine. (Refined_State): Removed. (Refined_State_Pragma): New routine. (Set_Refined_State): Removed. (Set_Refined_State_Pragma): New routine. * elists.adb (Clone): New routine. * elists.ads (Clone): New routine. * par-prag.adb: Add Refined_State to the pragmas that do not require special processing by the parser. * sem_ch3.adb: Add with and use clause for Sem_Prag. (Analyze_Declarations): Add local variables Body_Id, Context and Spec_Id. Add processing for delayed aspect/pragma Refined_State. * sem_ch13.adb (Analyze_Aspect_Specifications): Update the handling of aspect Abstract_State. Add processing for aspect Refined_State. Remove the bizzare insertion policy for aspect Abstract_State. (Check_Aspect_At_Freeze_Point): Add an entry for Refined_State. * sem_prag.adb: Add an entry to table Sig_Flags for pragma Refined_State. (Add_Item): Update the comment on usage. The inserted items need not be unique. (Analyze_Contract_Cases_In_Decl_Part): Rename variable Restore to Restore_Scope and update all its occurrences. (Analyze_Pragma): Update the handling of pragma Abstract_State. Add processing for pragma Refined_State. (Analyze_Pre_Post_Condition_In_Decl_Part): Rename variable Restore to Restore_Scope and update all its occurrences. (Analyze_Refined_State_In_Decl_Part): New routine. * sem_prag.ads (Analyze_Refined_State_In_Decl_Part): New routine. * snames.ads-tmpl: Add new predefined name for Refined_State. Add new Pragma_Id for Refined_State. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb (Install_Limited_Withed_Unit): handle properly the case of a record declaration in a limited view, when the record contains a self-referential component of an anonymous access type. From-SVN: r203371
2013-10-10[multiple changes]Arnaud Charlet8-300/+134
2013-10-10 Thomas Quinot <quinot@adacore.com> * exp_ch4.adb (Process_Transient_Object): For any context other than a simple return statement, insert the finalization action after the context, not as an action on the context (which will get evaluated before it). 2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb (Write_Field19_Name): Correct the string name of attribute Default_Aspect_Value. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_type.adb (Interface_Present_In_Ancestor): The progenitor in a type declaration may be an interface subtype. 2013-10-10 Robert Dewar <dewar@adacore.com> * sinfo.ads (Do_Range_Check): Add special note on handling of range checks for Succ and Pred. 2013-10-10 Robert Dewar <dewar@adacore.com> * erroutc.adb (Output_Msg_Text): Remove VMS special handling. 2013-10-10 Robert Dewar <dewar@adacore.com> * a-chahan.ads, a-chahan.adb (Is_Line_Terminator): New function (Is_Mark): New function. (Is_Other_Format): New function. (Is_Punctuation_Connector): New function. (Is_Space): New function. From-SVN: r203370
2013-10-10[multiple changes]Arnaud Charlet10-177/+301
2013-10-10 Robert Dewar <dewar@adacore.com> * sem_aggr.adb (Resolve_Array_Aggregate): Redo duplicate/missing choice circuit. Was not quite right in some cases, which showed up in ACATS test B43201C. * sem_attr.adb (Address_Checks): Make sure name is set right for some messages issued. * mlib-prj.adb: Minor code reorganization. * gnat_ugn.texi: Remove special VMS doc for tagging of warning msgs. * exp_ch9.adb: Minor reformatting. 2013-10-10 Tristan Gingold <gingold@adacore.com> * lib-writ.adb (Write_Unit_Information): Adjust previous patch. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_ch5.adb (Analyze_If_Statement): Warn on redundant if statement. * sem_util.ads, sem_util.adb (Has_No_Obvious_Side_Effects): New function. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * exp_ch9.adb (Expand_N_Timed_Entry_Call): Simplify expansion for the case of a dispatching trigger: there is no need to duplicate the code or create a subprogram to encapsulate the triggering statements. This allows exit statements in the triggering statements, that refer to enclosing loops. From-SVN: r203369
2013-10-10freeze.adb: Minor reformatting.Robert Dewar7-359/+406
2013-10-10 Robert Dewar <dewar@adacore.com> * freeze.adb: Minor reformatting. * sem_ch13.adb (Freeze_Entity_Checks): New procedure (Analyze_Freeze_Entity): Call Freeze_Entity_Checks (Analyze_Freeze_Generic_Entity): Call Freeze_Entity_Checks. * sinfo.ads: Add syntax for sprint for Freeze_Generic_Entity. * sprint.ads: Add syntax for freeze generic entity node. 2013-10-10 Robert Dewar <dewar@adacore.com> * einfo.adb, einfo.ads: Minor comment updates. From-SVN: r203368
2013-10-10[multiple changes]Arnaud Charlet16-206/+399
2013-10-10 Robert Dewar <dewar@adacore.com> * lib-writ.adb (Write_Unit_Information): Fatal error if linker options are detected in a predefined generic unit. 2013-10-10 Thomas Quinot <quinot@adacore.com> * s-oscons-tmplt.c (CLOCK_REALTIME): Always define, possibly using a dummy placeholder value. (NEED_PTHREAD_CONDATTR_SETCLOCK): Remove, not needed anymore. * thread.c: Adjust #if test accordingly. 2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch6.adb (Consequence_Error): Generate an implicit if statement. (Expand_Contract_Cases): Generate an implicit if statement. (Process_Contract_Cases): Do not expand Contract_Cases when no code is being generated. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_attr.adb (Address_Checks): New procedure. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sinfo.ads, sinfo.adb: New Node Freeze_Generic_Entity, to trigger semantic actions at the proper point for entities that previously had no explicit freeze point. * freeze.adb (Freeze_Generic_Entities): generate new nodes to indicate the point at which semantic checks can be performed on entities declared in generic packages. * sem_ch13.ads, sem_ch13.adb: New procedure Analyze_Freeze_Generic_Entity. * exp_util.adb (Insert_Actions): Treat new node like Freeze_Entity. * sem.adb (Analyze): Call Analyze_Freeze_Generic_Entity. * sprint.adb (Sprint_Node): display Analyze_Freeze_Generic_Entity. * gcc-interface/trans.c: Ignore Analyze_Freeze_Generic_Entity. * gcc-interface/Make-lang.in: Update dependencies. From-SVN: r203367
2013-10-10sem_aggr.adb (Resolve_Array_Aggregate): Identify duplicated cases.Robert Dewar16-179/+599
2013-10-10 Robert Dewar <dewar@adacore.com> * sem_aggr.adb (Resolve_Array_Aggregate): Identify duplicated cases. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_ch9.adb (Analyze_Task_Body): Aspects are illegal (Analyze_Protected_Body): Aspects are illegal. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_ch6.adb, sem_ch13.adb: Minor reformatting. * sem_case.adb (Check_Choices): Fix bad listing of missing values from predicated subtype case (Check_Choices): List duplicated values. * errout.adb (Set_Msg_Text): Process warning tags in VMS mode * erroutc.adb (Output_Msg_Text): Handle VMS warning tags * gnat_ugn.texi: Document /WARNINGS=TAG_WARNINGS for VMS * ug_words: Add entries for -gnatw.d and -gnatw.D * vms_data.ads: Add [NO]TAG_WARNINGS for -gnatw.D/-gnatw.d * lib-writ.ads: Documentation fixes 2013-10-10 Robert Dewar <dewar@adacore.com> * a-wichha.adb, a-wichha.ads, a-zchhan.adb, a-zchhan.ads (Is_Other_Format): New name for Is_Other. (Is_Punctuation_Connector): New name for Is_Punctuation From-SVN: r203366
2013-10-10[multiple changes]Arnaud Charlet18-1231/+1598
2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb: Add entries in table Canonical_Aspects for aspects Refined_Depends and Refined_Global. * aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument, Aspect_Names, Aspect_Declay, Aspect_On_Body_Or_Stub_OK for aspects Refined_Depends and Refined_Global. * einfo.adb (Contract): Subprogram bodies are now valid owners of contracts. (Set_Contract): Subprogram bodies are now valid owners of contracts. (Write_Field24_Name): Output the contract attribute for subprogram bodies. * exp_ch6.adb (Expand_Subprogram_Contract): New routine. * exp_ch6.ads (Expand_Subprogram_Contract): New routine. * par-prag.adb: Pragmas Refined_Depends and Refined_Global do not require any special processing by the parser. * sem_ch3.adb (Adjust_D): Renamed to Adjust_Decl. (Analyze_Declarations): Code reformatting. Analyze the contract of a subprogram body at the end of the declarative region. * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Subprogram bodies can now have contracts. Use Expand_Subprogram_Contract to handle the various contract assertions. (Analyze_Subprogram_Body_Contract): New null routine. (Analyze_Subprogram_Body_Helper): Subprogram bodies can now have contracts. Use Expand_Subprogram_Contract to handle the various contract assertions. (Analyze_Subprogram_Contract): Add local variable Nam. Update the call to Analyze_PPC_In_Decl_Part. Capture the pragma name in Nam. (Process_PPCs): Removed. * sem_ch6.ads (Analyze_Subprogram_Body_Contract): New routine. (Analyze_Subprogram_Contract): Update the comment on usage. * sem_ch13.adb (Analyze_Aspect_Specifications): Add null implementations for aspects Refined_Depends and Refined_Global. (Check_Aspect_At_Freeze_Point): Aspects Refined_Depends and Refined_Global do not need to be checked at the freeze point. * sem_prag.adb: Add entries in table Sig_Flags for pragmas Refined_Depends and Refined_Global. (Analyze_Contract_Cases_In_Decl_Part): Add local variable Restore. Use Restore to pop the scope. (Analyze_Depends_In_Decl_Part): Add local variable Restore. Use Restore to pop the scope. (Analyze_Global_In_Decl_List): Add local variable Restore. Use Restore to pop the scope. (Analyze_PPC_In_Decl_Part): Renamed to Analyze_Pre_Post_Condition_In_Decl_Part. (Analyze_Pragma): Add null implementations for pragmas Refined_Depends and Refined_Global. Refined_Pre and Refined_Post are now handled by routine Analyze_Refined_Pre_Post_Condition exclusively. (Analyze_Refined_Depends_In_Decl_Part): New null routine. (Analyze_Refined_Global_In_Decl_Part): New null routine. (Analyze_Refined_Pre_Post): Renamed to Analyze_Refined_Pre_Post_Condition. (Analyze_Refined_Pre_Post_Condition): Analyze the boolean expression. (Check_Precondition_Postcondition): Update the call to Analyze_PPC_In_Decl_Part. * sem_prag.ads: Add entries in table Pragma_On_Body_Or_Stub_OK for pragmas Refined_Depends and Refined_Global. (Analyze_PPC_In_Decl_Part): Renamed to Analyze_Pre_Post_Condition_In_Decl_Part. Update the comment on usage. (Analyze_Refined_Depends_In_Decl_Part): New routine. (Analyze_Refined_Global_In_Decl_Part): New routine. (Analyze_Test_Case_In_Decl_Part): Update the comment on usage. * sem_util.adb (Add_Contract_Item): Rename formal Item to Prag and update all occurrences. Subprogram body contracts can now contain pragmas Refined_Depends and Refined_Global. * sem_util.ads (Add_Contract_Item): Rename formal Item to Prag. Update the comment on usage. * sinfo.ads: Update the comment on structure and usage of N_Contract. * snames.ads-tmpl: Add new predefined names for Refined_Depends and Refined_Global. Add entries in table Pragma_Id for Refined_Depends and Refined_Global. 2013-10-10 Robert Dewar <dewar@adacore.com> * types.ads: Minor reformatting. From-SVN: r203365
2013-10-10[multiple changes]Arnaud Charlet5-151/+248
2013-10-10 Thomas Quinot <quinot@adacore.com> * s-taprop-posix.adb: Add missing comment. 2013-10-10 Robert Dewar <dewar@adacore.com> * freeze.adb (Freeze_Record_Type): Move choice checking to Analyze_Freeze_Entity (Freeze_Record_Type): Make sure all choices are properly frozen * sem_case.adb (Check_Choices): Remove misguided attempt to freeze choices (this is now done in Freeze_Record_Type where it belongs). (Check_Choices): Remove some analyze/resolve calls that are redundant since they are done in Analyze_Choices. * sem_ch13.adb (Analyze_Freeze_Entity): Do the error checking for choices in variant records here (moved here from Freeze.Freeze_Record_Type) From-SVN: r203364
2013-10-10[multiple changes]Arnaud Charlet4-15/+65
2013-10-10 Thomas Quinot <quinot@adacore.com> * s-oscons-tmplt.c, s-taprop-posix.adb (CLOCK_REALTIME): Always define, possibly using a dummy placeholder value. (Compute_Deadline): For the case of an Absolute_Calendar deadline, if the target uses another clock than CLOCK_REALTIME as CLOCK_RT_Ada, compensate for possible different epoch. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Find_Expanded_Name): Handle properly a fully qualified reference to a generic child unit within itself, in an instantiation. From-SVN: r203363
2013-10-10[multiple changes]Arnaud Charlet5-61/+122
2013-10-10 Pascal Obry <obry@adacore.com> * prj-conf.adb: Minor typo fixes in comment. 2013-10-10 Thomas Quinot <quinot@adacore.com> * s-taprop-posix.adb (Compute_Deadline): New local subprogram, factors common code between Timed_Sleep and Timed_Delay. 2013-10-10 Robert Dewar <dewar@adacore.com> * freeze.adb (Freeze_Record_Type): Don't replace others if expander inactive. This avoids clobbering the ASIS tree in -gnatct mode. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_res.adb (Resolve_Op_Expon): Avoid crash testing for fixed-point case in preanalysis mode (error will be caught during full analysis). From-SVN: r203362
2013-10-10[multiple changes]Arnaud Charlet5-232/+252
2013-10-10 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Refined_Pre and Refined_Post are now allowed as assertion identifiers for pragma Assertion_Policy. * sem_prag.adb (Is_Valid_Assertion_Kind): Add Refined_Pre/Refined_Post * sem_ch13.adb: Minor reformatting. 2013-10-10 Pascal Obry <obry@adacore.com> * prj-conf.adb: Code refactoring. From-SVN: r203361
2013-10-10[multiple changes]Arnaud Charlet7-146/+224
2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb: Remove Integrity_Level from the node usage list. (Has_Option): Update the implementation to match the new terminology. (Has_Property): Renamed to Has_Option. (Integrity_Level): Removed. (Is_External_State): New routine. (Is_Input_Only_State): Use Has_Option to determine whether a state is Input_Only. (Is_Input_State): Renamed to Is_Input_Only_State. (Is_Output_Only_State): Use Has_Option to determine whether a state is Output_Only. (Is_Output_State): Renamed to Is_Output_Only_State. (Is_Volatile_State): Use Has_Option to determine whether a state is volatile. (Set_Integrity_Level): Removed. (Write_Field8): Remove the entry for Integrity_Level. * einfo.ads: Remove Integrity_Level along with its documentation and usage in nodes. Rename Is_Input_State to Is_Input_Only_State. Rename Is_Output_State to Is_Output_Only_State. Update the documentation of Is_Volatile_State. Update the node structure of E_Abstract_Entity. (Integrity_Level): Removed along with pragma Inline. (Is_External_State): New routine. (Is_Input_State): Renamed to Is_Input_Only_State. (Is_Output_State): Renamed to Is_Output_Only_State. (Set_Integrity_Level): Removed along with pragma Inline. * sem_prag.adb (Analyze_Pragma): Update the checks regarding global items and abstract state modes. Update the implementation of pragma Abstract_State to reflect the new rules and terminology. * snames.ads-tmpl: Remove the predefined name for Integrity level. Add new predefined names for Input_Only, Non_Volatile, Output_Only and Part_Of. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * lib-xref.adb (Generate_Reference): Do not generate a reference within a _postcondition procedure: a proper source reference has already been generated when pre- analyzing the original aspect specification, and the use of a formal in a pre/postcondition should not count as a proper use in a subprogram body. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_eval.adb (Why_Non_Static): Fix bomb for deferred constant case From-SVN: r203360
2013-10-10[multiple changes]Arnaud Charlet13-280/+632
2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb: Add an entry for Aspect_Refined_Post in table Canonical_Aspect. * aspects.ads: Add an entry for Aspect_Refined_Post in tables Aspect_Id, Aspect_Argument, Aspect_Names, Aspect_Delay, Aspect_On_Body_Or_Stub_OK. Update the comment on the use of table Aspect_On_Body_Or_Stub_OK. * par-prag.adb: Add pragma Refined_Post to the list of pragmas that do not require special processing by the parser. * sem_attr.adb (Analyze_Attribute): Add special analysis for attributes 'Old and 'Result when code generation is disabled and they appear in aspect/pragma Refined_Post. (In_Refined_Post): New routine. * sem_ch6.adb (Analyze_Expression_Function): Move various aspects and/or pragmas that apply to an expression function to the corresponding spec or body. (Collect_Body_Postconditions): New routine. (Process_PPCs): Use routine Collect_Body_Postconditions to gather all postcondition pragmas. * sem_ch10.adb (Analyze_Proper_Body): Use routine Relocate_Pragmas_To_Body to move all source pragmas that follow a body stub to the proper body. (Move_Stub_Pragmas_To_Body): Removed. * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for aspect Refined_Post. (Check_Aspect_At_Freeze_Point): Aspect Refined_Post does not need delayed processing at the freeze point. * sem_prag.adb: Add an entry for pragma Refined_Post in table Sig_Flags. (Analyze_Pragma): Add processing for pragma Refined_Post. Update the processing of pragma Refined_Pre to use common routine Analyze_Refined_Pre_Post. (Analyze_Refined_Pre_Post): New routine. (Relocate_Pragmas_To_Body): New routine. * sem_prag.ads: Table Pragma_On_Stub_OK is now known as Pragma_On_Body_Or_Stub_OK. Update the comment on usage of table Pragma_On_Body_Or_Stub_OK. (Relocate_Pragmas_To_Body): New routine. * snames.ads-tmpl: Add new predefined name for Refined_Post. Add new Pragma_Id for Refined_Post. 2013-10-10 Robert Dewar <dewar@adacore.com> * exp_ch3.adb (Expand_N_Variant_Part): Now null, expansion of last choice to others is moved to Freeze_Record_Type. * freeze.adb (Freeze_Record_Type): Expand last variant to others if necessary (moved here from Expand_N_Variant_Part From-SVN: r203359
2013-10-10[multiple changes]Arnaud Charlet28-292/+684
2013-10-10 Robert Dewar <dewar@adacore.com> * lib-xref-spark_specific.adb, par-ch13.adb, sem_prag.adb, sem_prag.ads, sem_ch12.adb, sem_attr.adb, sem_ch6.adb, sem_ch13.adb, a-sequio.adb, s-atocou-builtin.adb: Minor reformatting. 2013-10-10 Thomas Quinot <quinot@adacore.com> * s-oscons-tmplt.c (NEED_PTHREAD_CONDATTR_SETCLOCK): This constant needs to be output to s-oscons.h, as it is tested by init.c. 2013-10-10 Robert Dewar <dewar@adacore.com> * exp_ch3.adb (Expand_N_Variant_Part): Don't expand choices, too early * exp_ch5.adb (Expand_N_Case_Statement): Use new Has_SP_Choice flag to avoid expanding choices when not necessary. * exp_util.adb: Minor reformatting * freeze.adb (Freeze_Record_Type): Redo expansion of variants * sem_aggr.adb: Minor reformatting * sem_case.ads, sem_case.adb: Major rewrite, separating Analysis and Checking of choices. * sem_ch3.adb (Analyze_Variant_Part): Rewrite to call new Analyze_Choices. * sem_ch4.adb (Analyze_Case_Expression): Call Analyze_Choices and Check_Choices * sem_ch5.adb (Analyze_Case_Statement): Call Analyze_Choices and Check_Choices * sem_util.adb: Minor reformatting * sinfo.ads, sinfo.adb (Has_SP_Choice): New flag. 2013-10-10 Vincent Celier <celier@adacore.com> * mlib-prj.adb (Build_Library): Do not issue link dynamic libraries with an Rpath, if switch -R was used. 2013-10-10 Tristan Gingold <gingold@adacore.com> * s-stalib.ads (Image_Index_Table_8, Image_Index_Table_16, Image_Index_Table_32): Remove as not used. * s-imgint.adb (Image_Integer): Call Set_Image_Integer and remove duplicated code. From-SVN: r203358
2013-10-10tree-flow.h: Move some prototypes to gimple.h.Andrew MacLeod7-247/+258
2013-10-10 Andrew MacLeod <amacleod@redhat.com> * tree-flow.h: Move some prototypes to gimple.h. (gimple_fold_indirect_ref): Move prototype to gimple-fold.h. * gimple.h: Relocate some prototypes from tree-flow.h * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref): Move to gimplify.c. * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c. (build_va_arg_indirect_ref): Relocate and make static. (std_gimplify_va_arg_expr): Relocate here. * gimple-fold.c (gimple_fold_indirect_ref): Relocate here. * gimple-fold.h (gimple_fold_indirect_ref): Add prototype. From-SVN: r203357
2013-10-10[multiple changes]Arnaud Charlet4-18/+94
2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Pragma): Provide a more precise error message when pragma Refined_Pre applies to an expression function that is not a completion. 2013-10-10 Thomas Quinot <quinot@adacore.com> * sem_attr.adb (Analyse_Attribute, case Attribute_Scalar_Storage_Order): a 'Scalar_Storage_Order attribute reference for a generic type is permitted in GNAT runtime mode. * a-sequio.adb (Read, Write): Use the endianness of the actual type to encode length information written to the file. From-SVN: r203356
2013-10-10[multiple changes]Arnaud Charlet14-64/+460
2013-10-10 Ed Schonberg <schonberg@adacore.com> * par-ch13.adb (Aspect_Specifications_Present)): In earlier than Ada2012 mode, assume that a legal aspect name following "with" keyword is an older gnat switch and not a misplaced with_clause. 2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb: Add an entry for Aspect_Refined_Pre in table Canonical_Aspect. (Aspects_On_Body_OK): Renamed to Aspects_On_Body_Or_Stub_OK. (Aspects_On_Body_Or_Stub_OK): Update the query in table Aspect_On_Body_OK. * aspects.ads: Add an entry for Aspect_Refined_Pre in tables Aspect_Id, Aspect_Argument, Aspect_Names, Aspect_Delay, Aspect_On_Body_Or_Stub_OK. Table Aspect_On_Body_OK is now known as Aspect_On_Body_Or_Stub_OK. Add a section of aspect specifications that apply to body stubs. (Aspects_On_Body_OK): Renamed to Aspects_On_Body_Or_Stub_OK. (Aspects_On_Body_Or_Stub_OK): Update the comment on usage. * par-prag.adb: Add pragma Refined_Pre to the list of pragmas that do not require special processing by the parser. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Delay the analysis of aspect specifications that apply to a body stub until the proper body is analyzed. * sem_ch10.adb: Add with and use clause for Sem_Ch13. (Analyze_Package_Body_Stub): Set the corresponding spec of the stub. (Analyze_Proper_Body): Relocate all pragmas that apply to a subprogram body stub to the declarations of the proper body. Analyze the aspect specifications of the stub when the proper body is not present. (Analyze_Protected_Body_Stub): Set the corresponding spec of the stub. (Analyze_Task_Body_Stub): Set the corresponding spec of the stub. (Move_Stub_Pragmas_To_Body): New routine. * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for aspect Refined_Pre. (Check_Aspect_At_Freeze_Point): Aspect Refined_Pre does not need delayed processing at the freeze point. * sem_prag.adb: Remove with and use clause for Snames. Add an entry for Pragma_Refined_Pre in table Sig_Flags. (Analyze_Pragma): Add processing for pragma Refined_Pre. * sem_prag.ads: Add with and use clause for Snames. Add table Pragma_On_Stub_OK. * sinfo.adb (Corresponding_Spec_Of_Stub): New routine. (Set_Corresponding_Spec_Of_Stub): New routine. * sinfo.ads: Add new attribute Corresponding_Spec_Of_Stub along with comment on usage and occurrences in nodes. (Corresponding_Spec_Of_Stub): New routine along with pragma Inline. (Set_Corresponding_Spec_Of_Stub): New routine along with pragma Inline. * snames.ads-tmpl: Add new predefined name for Refined_Pre. Add new Pragma_Id for Refined_Pre. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Improve error message when name in instantiation does not designate a generic unit of the right kind. From-SVN: r203355
2013-10-10md.texi: Document the mnemonic attribute.Andreas Krebbel2-9/+62
2013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * doc/md.texi: Document the mnemonic attribute. From-SVN: r203354
2013-10-10re PR target/57377 (compiler cannot be built with RTL checking)Andreas Krebbel2-6/+28
2013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> PR target/57377 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and (set_attr_alternative x ...) when searching for user defined mnemonic attribute. From-SVN: r203353
2013-10-10alpha.c: Add gimple-ssa.h to include list.Andrew MacLeod2-0/+5
2013-10-10 Andrew MacLeod <amacleod@redhat.com> * config/aplha/alpha.c: Add gimple-ssa.h to include list. From-SVN: r203352
2013-10-10[multiple changes]Arnaud Charlet20-102/+275
2013-10-10 Robert Dewar <dewar@adacore.com> * exp_ch3.adb (Expand_N_Variant_Part): Expand statically predicated subtype which appears in Discrete_Choices list. * exp_ch5.adb (Expand_N_Case_Statement): Expand statically predicated subtype which appears in Discrete_Choices list of case statement alternative. * exp_util.ads, exp_util.adb (Expand_Static_Predicates_In_Choices): New procedure. * sem_case.adb: Minor reformatting (Analyze_Choices): Don't expand out Discrete_Choices that are names of subtypes with static predicates. This is now done in the analyzer so that the -gnatct tree is properly formed for ASIS. * sem_case.ads (Generic_Choices_Processing): Does not apply to aggregates any more, so change doc accordingly, and remove unneeded Get_Choices argument. * sem_ch3.adb (Analyze_Variant_Part): Remove no longer used Get_Choices argument in instantiation of Generic_Choices_Processing. * sem_ch4.adb (Analyze_Case_Expression): Remove no longer used Get_Choices argument in instantiation of Generic_Choices_Processing. * sem_ch5.adb (Analyze_Case_Statement): Remove no longer used Get_Choices argument in instantiation of Generic_Choices_Processing. * sinfo.ads: For N_Variant_Part, and N_Case_Statement_Alternative, document that choices that are names of statically predicated subtypes are expanded in the code generation tree passed to the back end, but not in the ASIS tree generated for -gnatct. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch7.adb: Revert previous change. 2013-10-10 Gary Dismukes <dismukes@adacore.com> * sem_ch13.adb (Analyze_Attribute_Definition_Clause): In the case where the Storage_Pool aspect is specified by an aspect clause and a renaming is used to capture the evaluation of the pool name, insert the renaming in front of the aspect's associated entity declaration rather than in front of the corresponding attribute definition (which hasn't been appended to the declaration list yet). 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Is_Interface_Conformant): The controlling type of the interface operation is obtained from the ultimate alias of the interface primitive parameter, because that may be in fact an implicit inherited operation whose signature involves the type extension and not the desired interface. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * par-ch13.adb (Aspect_Specifications_Present): In Ada 2012, recognize an aspect specification with a misspelled name if it is followed by a a comma or semicolon. 2013-10-10 Vadim Godunko <godunko@adacore.com> * s-atocou.adb, s-atocou.ads, s-atocou-x86.adb, s-atocou-builtin.adb: Fix copyright notice. 2013-10-10 Yannick Moy <moy@adacore.com> * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package): Get enclosing subprogram for precondition/postcondition/contract cases. From-SVN: r203350
2013-10-10[multiple changes]Arnaud Charlet10-53/+124
2013-10-10 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Minor fix. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Address): Remove the Comes_From_Source test for the overlap warning. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_util.adb: Minor code reorganization (use Nkind_In). * sem_warn.adb: Minor code reorganization (optimization in Check_Unset_Reference). * exp_ch9.adb, exp_ch4.adb, sinfo.ads: Minor reformatting. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch7.adb (Install_Parent_Private_Declarations): When instantiating a child unit, do not install private declaration of a non-generic ancestor of the generic that is also an ancestor of the current unit: its private part will be installed when private part of ancestor itself is analyzed. 2013-10-10 Thomas Quinot <quinot@adacore.com> * freeze.adb (Check_Component_Storage_Order): Retrieve component aliased status from type entities directly instead of going back to original component definition. * sem_ch7.adb: Minor reformatting. From-SVN: r203349
2013-10-10[multiple changes]Arnaud Charlet14-129/+205
2013-10-10 Robert Dewar <dewar@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): For Address attribute, consider it to be set in source, because of aliasing considerations. (Analyze_Attribute_Definition_Clause): For the purpose of warning on overlays, take into account the aspect case. 2013-10-10 Robert Dewar <dewar@adacore.com> * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, a-cofove.ads: Minor reformatting. 2013-10-10 Arnaud Charlet <charlet@adacore.com> * gnat_ugn.texi: Remove obsolete mention to -laddr2line. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb (Expand_N_Case_Expression): Indicate that the generated variable used as a target of the expression needs no initialization. 2013-10-10 Jose Ruiz <ruiz@adacore.com> * exp_util.adb (Corresponding_Runtime_Package): Remove the condition related to No_Dynamic_Attachment which was wrong. Protected types with interrupt handlers (when not using a restricted profile) are always treated as protected types with entries, regardless of the No_Dynamic_Attachment restriction. * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Simplify the code using the result of Corresponding_Runtime_Package. (Install_Private_Data_Declarations): When having static handlers and a non restricted profile, we use the type Static_Interrupt_Protection always, so we removed an extra wrong condition looking at the No_Dynamic_Attachment restriction. Simplify the code using the result of Corresponding_Runtime_Package. (Make_Initialize_Protection): Simplify the code using the result of Corresponding_Runtime_Package. (Install_Private_Data_Declaration): The No_Dynamic_Attachment restriction has nothing to do with static handlers. Remove the extra erroneous condition that was creating the wrong data type. 2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * sem_util.adb (Is_Object_Reference): Attribute 'Old produces an object reference. * gnat_rm.texi: Define accessibility level of X'Update(...) result. From-SVN: r203348
2013-10-10[multiple changes]Arnaud Charlet9-45/+102
2013-10-10 Yannick Moy <moy@adacore.com> * gnat_rm.texi, a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, a-cofove.ads: Update comment and doc of formal containers 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): For Pre/Post conditions that apply to a subprogram body, preserve the placement and order of the generated pragmas, which must appear before other declarations in the body. From-SVN: r203347
2013-10-10[multiple changes]Arnaud Charlet9-13/+606
2013-10-10 Bob Duff <duff@adacore.com> * gnat_ugn.texi: Add gnat2xml doc. 2013-10-10 Doug Rupp <rupp@adacore.com> * s-vxwork-arm.ads: Fix interface to FP_CONTEXT. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specification): An aspect Import on a variable need not have a convention specified, as long as the implicit convention of the object, obtained from its type, is Ada or Ada-related. 2013-10-10 Robert Dewar <dewar@adacore.com> * cstand.adb (Standard_Unsigned_64): New internal type. * gnat_rm.texi: Update documentation on To_Address. * sem_attr.adb (Analyze_Attribute, case To_Address): Fix problem with out of range static values given as literals or named numbers. * stand.ads (Standard_Unsigned_64): New internal type. * stand.adb: Minor reformatting. From-SVN: r203346
2013-10-10[multiple changes]Arnaud Charlet3-3/+29
2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Selected_Component, Has_Mode_Conformant_Spec): If selected component may be an indexing of a parameterless call to a protected function, and expansion is disabled, this is a valid candidate interpretation. 2013-10-10 Arnaud Charlet <charlet@adacore.com> * gnat_ugn.texi: Minor editing. From-SVN: r203345
2013-10-10[multiple changes]Arnaud Charlet12-76/+625
2013-10-10 Robert Dewar <dewar@adacore.com> * gnatlink.adb: Minor reformatting. 2013-10-10 Yannick Moy <moy@adacore.com> * debug.adb: Free flag d.E and change doc for flag d.K. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Check_Precondition_Postcondition): If the pragma comes from an aspect spec, and the subprogram is a library unit, treat as a ppc in a declarative part in ASIS mode, so that expression in aspect is properly analyzed. In this case there is no later point at which the aspect specification would be examined. 2013-10-10 Bob Duff <duff@adacore.com> * opt.ads: Minor comment fix. 2013-10-10 Vadim Godunko <godunko@adacore.com> * a-coinho-shared.ads, a-coinho-shared.adb: New file. * s-atocou.ads: Add procedure to initialize counter. * s-atocou.adb: Likewise. * s-atocou-builtin.adb: Likewise. * s-atocou-x86.adb: Likewise. * gcc-interface/Makefile.in: Select special version of Indefinite_Holders package on platforms where atomic built-ins are supported. Update tools target pairs for PikeOS. From-SVN: r203344
2013-10-10[multiple changes]Arnaud Charlet11-101/+91
2013-10-10 Robert Dewar <dewar@adacore.com> * sem_ch3.adb: Minor reformatting. 2013-10-10 Robert Dewar <dewar@adacore.com> * sinput-c.adb (Load_File): Ensure Source_Align alignment. * sinput-d.adb (Create_Debug_Source): Ensure Source_Align alignment. * sinput-l.adb (Create_Instantiation_Source): Ensure Source_Align alignment. (Load_File): Ditto. * sinput.ads, sinput.adb (Get_Source_File_Index): New optimized (single line) version. * types.ads (Source_Align): New definition. (Source_Buffer): Document new alignment requirement. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Analyze_Pragma, case Linker_Section): Allow this for types. 2013-10-10 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Minor adjustment to doc for To_Address attribute. 2013-10-10 Vadim Godunko <godunko@adacore.com> * s-stopoo.ads (Root_Storage_Pool): Add pragma Preelaborable_Initialization. From-SVN: r203343
2013-10-10compiler: Fix test for constant argument too large for make.Ian Lance Taylor1-2/+17
From-SVN: r203338
2013-10-10compiler: Don't inherit logical operator operand type from context.Ian Lance Taylor1-0/+9
From-SVN: r203337
2013-10-10Daily bump.GCC Administrator1-1/+1
From-SVN: r203335
2013-10-10compiler: A type conversion of a constant is not always a constant.Ian Lance Taylor1-2/+22
From-SVN: r203332
2013-10-09compiler, runtime: Fix complex division of NaN / 0.Ian Lance Taylor6-1/+107
From-SVN: r203331
2013-10-09params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...Easwaran Raman4-1/+19
2013-10-09 Easwaran Raman <eraman@google.com> * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param... * cfgexpand.c (defer_stack_allocation): ...use here * doc/invoke.texi: Add documentation for min-size-for-stack-sharing. From-SVN: r203330
2013-10-09tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.Zhenqiang Chen4-10/+150
* tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function. (operand_equal_for_value_replacement): New function, extracted from value_replacement and enhanced to catch more cases. (value_replacement): Use operand_equal_for_value_replacement. * gcc.dg/tree-ssa/phi-opt-11.c: New test. From-SVN: r203327