aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
2012-12-05[multiple changes]Arnaud Charlet6-32/+90
2012-12-05 Thomas Quinot <quinot@adacore.com> * par_sco.adb (Traverse_Aspects): Ensure we always have an entry in the sloc -> SCO map for invariants, since Set_SCO_Pragma_Enabled is called with that sloc when checks are enabled. 2012-12-05 Thomas Quinot <quinot@adacore.com> * exp_ch4.adb: Minor reformatting. 2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> * par-prag.adb: Checks and processing of pragma Assume are carried out by Sem_Prag. * sem_prag.adb (Analyze_Pragma): Check the legality of pragma Assume. * snames.ads-tmpl: Add new name Assume. Add a pragma identifier for Assume. From-SVN: r194215
2012-12-05aspects.ads, [...]: Add aspect Relative_Deadline.Ed Schonberg4-1/+63
2012-12-05 Ed Schonberg <schonberg@adacore.com> * aspects.ads, aspects.adb: Add aspect Relative_Deadline. * sem_ch13.adb (Analyze_Aspect_Specifications): Process aspect Relative_Deadline, and introduce the corresponding pragma within the task definition of the task type to which it applies. (Check_Aspect_At_Freeze_Point): Expression in a Relative_Deadline aspect is of type Time_Span. From-SVN: r194214
2012-12-05[multiple changes]Arnaud Charlet3-27/+89
2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Check_Loop_Invariant_Variant_Placement): When pragma Loop_[In]variant does not appear immediately within the statements of a loop, it must appear in a chain of nested blocks. 2012-12-05 Thomas Quinot <quinot@adacore.com> * sem_ch13.adb: Minor reformatting. Remove redundant assertion. From-SVN: r194213
2012-12-05Minor reformatting.Arnaud Charlet2-11/+13
From-SVN: r194212
2012-12-05[multiple changes]Arnaud Charlet10-169/+375
2012-12-05 Thomas Quinot <quinot@adacore.com> * par_sco.adb, scos.ads, put_scos.adb, put_scos.ads, get_scos.adb: Generation of SCOs for aspects. 2012-12-05 Thomas Quinot <quinot@adacore.com> * sem_prag.adb (Check_Precondition_Postcondition): Remove redundant call to Set_SCO_Pragma_Enabled (the pragma will be rewritten into a pragma Check later on, and the call will be made when processing the rewritten pragma). (Analyze_Pragma, case Pragma_Check): Omit call to Set_SCO_Pragma_Enabled if Split_PPC is set. 2012-12-05 Olivier Hainque <hainque@adacore.com> * tracebak.c: Add partial support for Lynx178. 2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> * sem_attr.adb (Analyze_Attribute): Improve the error message related to loop assertions. 2012-12-05 Gary Dismukes <dismukes@adacore.com> * atree.ads: Minor reformatting. From-SVN: r194211
2012-12-05[multiple changes]Arnaud Charlet7-76/+134
2012-12-05 Robert Dewar <dewar@adacore.com> * atree.ads, par-ch4.adb, sem_attr.adb, sem_ch13.adb: Minor reformatting. 2012-12-05 Eric Botcazou <ebotcazou@adacore.com> * gnat_ugn.texi (Switches for gcc): Document -flto and reorder. 2012-12-05 Ed Schonberg <schonberg@adacore.com> * par-ch5.adb (P_Condition): Handle properly Ada 2012 expressions that must be parenthesized before checking for redundant parentheses when that check is enabled. From-SVN: r194210
2012-12-05[multiple changes]Arnaud Charlet5-24/+76
2012-12-05 Ed Schonberg <schonberg@adacore.com> * par-ch4.adb (P_Allocator): In Ada 2012 (AI05-0104) an uninitialized allocator cannot carry an explicit not null indicator. * sem_ch4.adb (Analyze_Allocator): Remove code that implements the check for AI05-0104, the check is syntactic and performed in the parser. 2012-12-05 Geert Bosch <bosch@adacore.com> * sem_attr.adb (Analyze_Attribute): Use base type for floating point attributes. 2012-12-05 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications, Ahalyze_Aspect_Default_Value): For a scalar type attach default value to base type as well, because it is a type-specific aspect even though it can be specified on a first subtype. From-SVN: r194209
2012-12-05[multiple changes]Arnaud Charlet10-118/+556
2012-12-05 Yannick Moy <moy@adacore.com> * urealp.ads: Minor rewording. 2012-12-05 Yannick Moy <moy@adacore.com> * aspects.ads (No_Duplicates_Allowed): Forbid use of duplicate Contract_Cases aspects. * sem_prag.adb (Analyze_Pragma/Pragma_Contract_Case): Rename POST_CASE into CONTRACT_CASE in both grammar and code, to be consistent with current language definition. Issue a more precise error message when the pragma duplicates another pragma or aspect. 2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference): Add processing for attribute Update. (Expand_Update_Attribute): New routine. * par-ch4.adb (P_Name): The sole expression of attribute Update is an aggregate, parse it accordingly. * sem_attr.adb (Analyze_Attribute): Verify the legality of attribute Update. (Eval_Attribute): Attribute Update does not need evaluation because it is never static. * snames.ads-tmpl: Add Name_Update to the list of special names recognized by the compiler. Add an Attribute_Id for Update. 2012-12-05 Ed Schonberg <schonberg@adacore.com> * exp_util.adb (Remove_Side_Effects): For purposes of removing side effects, qualified expressions do not receive a special treatment, even though in Ada 2012 they are defined as object references. 2012-12-05 Thomas Quinot <quinot@adacore.com> * par-ch3.adb: Minor reformatting. From-SVN: r194207
2012-12-05exp_dist.adb (Build_From_Any_Call, [...]): For a used-defined subtype, ↵Thomas Quinot2-4/+32
always go to the first subtype of the base type. 2012-12-05 Thomas Quinot <quinot@adacore.com> * exp_dist.adb (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call): For a used-defined subtype, always go to the first subtype of the base type. From-SVN: r194206
2012-12-05[multiple changes]Arnaud Charlet8-27/+52
2012-12-05 Thomas Quinot <quinot@adacore.com> * exp_dist.adb: Minor reformatting. 2012-12-05 Tristan Gingold <gingold@adacore.com> * Make-generated.in: Remove the VMS host specific part, as VMS compilers aren't built anymore on VMS. 2012-12-05 Thomas Quinot <quinot@adacore.com> * sem.adb, errout.ads, atree.adb, atree.ads (Check_Error_Detected): Only return quietly if a serious error of configurable run time violation has been found. 2012-12-05 Yannick Moy <moy@adacore.com> * sem_res.adb (Resolve_Type_Conversion): In Alfa_Mode, do not apply conversion checks. From-SVN: r194205
2012-12-05[multiple changes]Arnaud Charlet14-36/+128
2012-12-05 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Expand_N_Assignment_Statement): Handle properly the generation of discriminant checks when the left-hand side has a type with hidden discriminants. * sem_ch3.ads (Is_Visible_Component): Add defaulted parameter to specify the node on which component visibility is being checked. * sem_ch3.adb (Is_Visible_Component): Use new parameter to determine whether the reference comes from a type conversion to a full view of a private type with unknown discriminants. * sem_ch4.adb (Analyze_Selected_Component): Call Is_Visible_Component with added parameter. 2012-12-05 Arnaud Charlet <charlet@adacore.com> * make.adb: Minor comment update. 2012-12-05 Arnaud Charlet <charlet@adacore.com> * gnatlink.adb: Also use -x adascil in CodePeer mode when calling gcc. * exp_ch5.adb: Minor reformatting. 2012-12-05 Bob Duff <duff@adacore.com> * exp_ch4.adb: Minor comment. 2012-12-05 Bob Duff <duff@adacore.com> * par-ch4.adb: Set Paren_Count correctly for a parenthesized expression containing a conditional expression or quantified expression. * sprint.adb: Update comment. 2012-12-05 Bob Duff <duff@adacore.com> * style.adb, scans.ads, styleg.adb: Update comments. 2012-12-05 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Find_Selected_Component): Handle properly an expanded name whose prefix is the expanded name of an enclosing entry, that is to say a construct such as T.E.X, where T is an enclosing concurrent type and E is an enclosing entry. From-SVN: r194204
2012-12-05[multiple changes]Arnaud Charlet12-259/+381
2012-12-05 Robert Dewar <dewar@adacore.com> * lib-writ.adb (Write_ALI): Output T lines. * lib-writ.ads: Minor reformatting. Add documentation of T lines. * opt.ads (Generate_Target_Dependent_Info): New flag. * switch-c.adb (Scan_Switches): Recognize -gnatet switch (target dependent info). * ttypes.ads: Add four letter codes to declarations (for target dependent info). * usage.adb: Add line for -gnatet switch. 2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> * exp_prag.adb (Expand_N_Pragma): Add a call to expand pragma Loop_Variant. (Expand_Pragma_Loop_Assertion): Removed. (Expand_Pragma_Loop_Variant): New routine. * par-prag.adb: Remove Pragma_Loop_Assertion and add two new Pragma_Loop_Invariant and Pragma_Loop_Variant entries. * sem_attr.adb (Analyze_Attribute): Update the code which locates the enclosing pragma. * sem_prag.adb (Analyze_Pragma): Remove the code which analyzes pragma Loop_Assertion as the pragma is now obsolete. Add the machinery to checks the semantics of pragmas Loop_Invariant and Loop_Variant. (Check_Loop_Invariant_Variant_Placement): New routine. * snames.ads-tmpl: Remove name Loop_Assertion. Add new names Loop_Invariant and Loop_Variant. Rename Name_Decreasing to Name_Decreases and Name_Increasing to Name_Increases. Remove the pragma Id for Loop_Assertion and add two new Ids for Loop_Invariant and Loop_Variant. From-SVN: r194203
2012-12-05[multiple changes]Arnaud Charlet12-46/+90
2012-12-05 Robert Dewar <dewar@adacore.com> * gnatchop.adb, sem_attr.ads, sem_ch4.adb, sem_ch6.adb, exp_disp.adb, atree.adb, sem_eval.adb: Minor reformatting. 2012-12-05 Yannick Moy <moy@adacore.com> * uintp.adb (UI_Div_Rem): Correct algorithm D to remove potential overflow. 2012-12-05 Robert Dewar <dewar@adacore.com> * exp_ch4.adb (Expand_N_Op_Mod): Minor comment additions. (Expand_N_Op_Rem): Ditto. 2012-12-05 Robert Dewar <dewar@adacore.com> * sem_attr.adb: Minor reformatting. 2012-12-05 Robert Dewar <dewar@adacore.com> * usage.adb: Update lines for -gnato? switch. From-SVN: r194202
2012-12-05[multiple changes]Arnaud Charlet4-13/+35
2012-12-05 Ed Schonberg <schonberg@adacore.com> * par-ch6.adb (P_Return_Object_Declaration): Do not check for legality of Aliased keyword. * sem_ch6.adb (Analyze_Function_Return): The keyword aliased is legal in an extended return statement only if the return type is immutably limited. 2012-12-05 Javier Miranda <miranda@adacore.com> * exp_disp.adb (Expand_Interface_Thunk): Simplify management of controlling formals. Required to avoid problems with primitives of internally generated base types associated with constrained tagged types. From-SVN: r194201
2012-12-05[multiple changes]Arnaud Charlet13-18/+815
2012-12-05 Ed Schonberg <schonberg@adacore.com> * sem_eval.adb: Remove spurious warnings. 2012-12-05 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Build_Explicit_Dereference): Set properly the type of the prefix prior to rewriting, because subsequent legality checks examine the original node. 2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb: Add Contract_Cases to the canonical aspects map. * aspects.ads: Add aspect Contract_Cases in the various aspect tables. * par-prag.adb: The parser does not need to perform special actions for pragma Contract_Cases. * sem_ch6.adb (Expand_Contract_Cases): New routine. (Process_Contract_Cases): Convert pragma Contract_Cases into pre- and post- condition checks that verify the runtime state of all case guards and their corresponding consequences. * sem_ch13.adb (Analyze_Aspect_Specifications): Perform various legality checks on aspect Contract_Cases. The aspect is transformed into a pragma. * sem_prag.adb: Add an entry in table Sig_Flags for pragma Contract_Cases. (Analyze_Pragma): Perform various legality checks on pragma Contract_Cases. The pragma is associated with the contract of the related subprogram. (Chain_CTC): Omit pragma Contract_Cases because it does not introduce a unique case name and does not follow the syntax of Contract_Case and Test_Case. * snames.ads-tmpl: Add new name Name_Contract_Cases. Add a Pragma_Id for Contract_Cases. 2012-12-05 Thomas Quinot <quinot@adacore.com> * sem_ch5.adb: Minor reformatting. 2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> * sem_attr.ads: Add an entry for attribute Loop_Entry in the Attribute_Impl_Def table. 2012-12-05 Bob Duff <duff@adacore.com> * gnatchop.adb (Read_File): Avoid storage leak, and in most cases avoid an extra copy of the string. From-SVN: r194199
2012-12-05[multiple changes]Arnaud Charlet4-3/+64
2012-12-05 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Preanalyze_Range): If the expression, which denotes some domain of iteration, has a type with implicit dereference, and does not have any iterable aspects, insert dereference to obtain proper container type. 2012-12-05 Bob Duff <duff@adacore.com> * par-ch8.adb (P_Use_Type_Clause): Fix the Sloc for "use all type ..." to point to "use". 2012-12-05 Arnaud Charlet <charlet@adacore.com> * make.adb (Compile): Always pass -x adascil in CodePeer mode. From-SVN: r194198
2012-12-05[multiple changes]Arnaud Charlet12-11/+166
2012-12-05 Ed Schonberg <schonberg@adacore.com> * s-rident.ads, restrict.ads: Remove discrepancies between the documentation on implementation-defined restrictions, and the internal data structure used for warnings and errors on implementation-defined restriction violations. 2012-12-05 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Chain_PPC): Pre- and postcondition aspects are legal on a subprogram body that acts as a spec. 2012-12-05 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Find_Selected_Component): If the selector name is an overloadable entity but the name is not overloaded, generate reference to it rather than delaying this until resolution. 2012-12-05 Robert Dewar <dewar@adacore.com> * checks.ads, checks.adb (Activate_Overflow_Check): No effect for MOD/REM/unary + * exp_ch4.adb (Expand_N_Op_Mod): Remove call to set Do_Overflow_Check. 2012-12-05 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Find_Non_Universal_Interpretation): Use the types of the right operand if the left operand is null. 2012-12-05 Sergey Rybin <rybin@adacore.com frybin> * gnat_ugn.texi, vms_data.ads: document gnatpp -nn option. 2012-12-05 Jose Ruiz <ruiz@adacore.com> * init.c (__gnat_install_handler): For the LEON VxWorks kernel run-time library we need to install a trap handler directly in the trap table (no support by the OS) for the software trap 0. From-SVN: r194196
2012-12-05[multiple changes]Arnaud Charlet4-9/+23
2012-12-05 Eric Botcazou <ebotcazou@adacore.com> * gnat_rm.texi (Interfacing to C++): Document new restrictions. 2012-12-05 Ben Brosgol <brosgol@adacore.com> * gnat_ugn.texi: Fix typo. 2012-12-05 Robert Dewar <dewar@adacore.com> * gnatbind.adb: Minor reformatting. From-SVN: r194195
2012-12-05[multiple changes]Arnaud Charlet4-4/+23
2012-12-05 Arnaud Charlet <charlet@adacore.com> * gnat_ugn.texi: Fix typo. 2012-12-05 Tristan Gingold <gingold@adacore.com> * gnatbind.adb: Minor comment update. 2012-12-05 Yannick Moy <moy@adacore.com> * gnat1drv.adb (Adjust_Global_Switches): Set flags to indicate that CodePeer backend deals with divide and overflow checks. From-SVN: r194194
2012-12-05gnat_rm.texi: Update overflow description.Robert Dewar11-115/+115
2012-12-05 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Update overflow description. Pragma Overflow_Checks changed to Overflow_Mode. 2012-12-05 Robert Dewar <dewar@adacore.com> * checks.ads, exp_ch4.adb, gnat1drv.adb, par-prag.adb, sem_prag.adb, snames.ads-tmpl, switch-c.adb, types.ads, checks.adb: Change pragma Overflow_Checks to Overflow_Mode. Separate overflow checking from overflow mode. Several name changes to reflect this separation. CHECKED mode is renamed STRICT mode. From-SVN: r194193
2012-12-05[multiple changes]Arnaud Charlet6-232/+258
2012-12-05 Yannick Moy <moy@adacore.com> * gnat1drv.adb (Adjust_Global_Switches): Move setting of flags for Alfa mode before general treatment of flags, so that overflow checks settings are set appropriately in Alfa mode. Also set the mode to STRICT in Alfa mode if not already set by the user. 2012-12-05 Robert Dewar <dewar@adacore.com> * sem_ch3.adb: Minor reformatting. 2012-12-05 Steve Baird <baird@adacore.com> * sinfo.ads: Improve comments about SCIL-related node kinds and selector functions. 2012-12-05 Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb (Build_Limited_Views): Even though the unit is not analyzed, place its entity on the name in the with clause, so that warnings on unused with-clause are properly supported for limited withs. 2012-12-05 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Update overflow description. Pragma Overflow_Checks changed to Overflow_Mode. From-SVN: r194191
2012-12-05[multiple changes]Arnaud Charlet6-18/+62
2012-12-05 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Build_Derived_Private_Type): Handle properly a completion in a grand-child unit when the parent type is itself a private type in a child unit whose full view is itself a derivation from a private type. 2012-12-05 Gary Dismukes <dismukes@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference, case Attribute_Valid): Remove code for issuing warning on Valid within a predicate. Moved to Sem_Attr. Remove with and use of Errout. * sem_attr.adb (Analyze_Attribute, case Attribute_Valid): Test for prefix's subtype having a predicate and issue warning about infinite recursion if Valid occurs within the subtype's predicate. Warning moved here from Exp_Attr. 2012-12-05 Yannick Moy <moy@adacore.com> * debug.adb: Minor comment addition. 2012-12-05 Yannick Moy <moy@adacore.com> * gnat1drv.adb (Adjust_Global_Switches): In CodePeer mode, check overflows by default, even when the user suppresses overflow checks. From-SVN: r194190
2012-12-05[multiple changes]Arnaud Charlet3-20/+109
2012-12-05 Thomas Quinot <quinot@adacore.com> * err_vars.ads: Fix minor typo in comment. 2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> * sem_attr.adb (Analyze_Attribute): Do not analyze the attribute arguments when processing Loop_Entry. Rewrite the analysis of attribute Loop_Entry to handle an optional loop name. (Convert_To_Indexed_Component): New routine. (Eval_Attribute): Remove ??? comment and explain why Loop_Entry does not need to be evaluated. From-SVN: r194189
2012-12-01re PR ada/52110 (s-osinte.ads:447:09: "clockid_t" conflicts with declaration ↵John David Anglin3-2/+18
at line 194) PR ada/52110 * s-osinte-hpux-dce.ads: Declare pthread_rwlockattr_t and pthread_rwlock_t subtypes. Delete duplicate declaration of clockid_t. * s-taspri-hpux-dce.ads: Change "pragma Atomic (Thread)" to comment. From-SVN: r194024
2012-11-28Fix date and trailing space in previous commit.Eric Botcazou2-2/+2
From-SVN: r193887
2012-11-28stor-layout.c (layout_type): Do not clear TREE_OVERFLOW on overflowed ↵Eric Botcazou6-72/+101
zeroes, except in one specific case. * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not clear TREE_OVERFLOW on overflowed zeroes, except in one specific case. ada/ * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use valid_constant_size_p to detect too large objects. <E_Subprogram_Type>: Likewise for too large return types. (allocatable_size_p): Call valid_constant_size_p in the fixed case. (annotate_value) <INTEGER_CST>: Simplify. <BIT_AND_EXPR>: Deal with negative values here. * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use valid_constant_size_p to detect too large objects on the LHS. * gcc-interface/misc.c (default_pass_by_ref): Likewise for large types. And use TYPE_SIZE_UNIT throughout. (must_pass_by_ref): Likewise. * gcc-interface/utils.c (max_size) <tcc_unary>: Split from common case. <tcc_binary>: Likewise. Call size_binop instead of fold_build2. <tcc_expression>: Simplify. * gcc-interface/utils2.c (build_allocator): Use valid_constant_size_p to detect too large allocations. From-SVN: r193886
2012-11-23trans.c (Attribute_to_gnu): Look through a view conversion from constrained ↵Eric Botcazou2-1/+19
to unconstrained form. * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Length>: Look through a view conversion from constrained to unconstrained form. From-SVN: r193751
2012-11-23decl.c (components_need_strict_alignment): New.Eric Botcazou2-9/+54
* gcc-interface/decl.c (components_need_strict_alignment): New. (components_to_record): Do not pack the variants if one of the fields needs strict alignment. Likewise for the variant part as a whole. Specify the position of the variants even if the size isn't specified, but do not specify the size of the variant part in this case. From-SVN: r193750
2012-11-20Introduce vNULL to use as a nil initializer for vec<>.Diego Novillo2-2/+8
This patch implements Jakub's idea of adding an empty struct with a typecast operator that returns nil vectors. This is useful to shorten all the initializers when declaring vec instances or passing nil vectors as function arguments. 2012-11-20 Diego Novillo <dnovillo@google.com> Jakub Jelinek <jakub@redhat.com> ChangeLog * vec.h (struct vnull): Declare. (vNULL): Declare. * vec.c (vNULL): Define. * bb-reorder.c: Replace all vec<T, A>() initializers with vNULL. * cfgexpand.c: Likewise. * cfgloop.c: Likewise. * cfgloopanal.c: Likewise. * cfgloopmanip.c: Likewise. * cgraph.c: Likewise. * config/c6x/c6x.c: Likewise. * config/i386/i386.c: Likewise. * df-core.c: Likewise. * dominance.c: Likewise. * dwarf2out.c: Likewise. * except.c: Likewise. * function.c: Likewise. * gcse.c: Likewise. * genautomata.c: Likewise. * graphds.c: Likewise. * graphite-scop-detection.c: Likewise. * graphite.c: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * ipa-cp.c: Likewise. * ipa-inline-analysis.c: Likewise. * ipa-inline-transform.c: Likewise. * ipa-inline.c: Likewise. * ipa-prop.c: Likewise. * ipa-split.c: Likewise. * ipa-utils.c: Likewise. * ira-build.c: Likewise. * lto-cgraph.c: Likewise. * lto-streamer-in.c: Likewise. * lto-symtab.c: Likewise. * opts-global.c: Likewise. * passes.c: Likewise. * ree.c: Likewise. * sched-deps.c: Likewise. * sel-sched-ir.c: Likewise. * sel-sched-ir.h: Likewise. * sel-sched.c: Likewise. * stor-layout.c: Likewise. * trans-mem.c: Likewise. * tree-call-cdce.c: Likewise. * tree-cfg.c: Likewise. * tree-data-ref.c: Likewise. * tree-diagnostic.c: Likewise. * tree-eh.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-predcom.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-manip.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-phiopt.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-propagate.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa-threadedge.c: Likewise. * tree-ssa-uninit.c: Likewise. * tree-stdarg.c: Likewise. * tree-switch-conversion.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-slp.c: Likewise. * tree-vect-stmts.c: Likewise. * value-prof.c: Likewise. * varasm.c: Likewise. ada/ChangeLog * gcc-interface/decl.c: Replace all vec<T,A>() initializers with vNULL. cp/ChangeLog * name-lookup.c: Replace all vec<T, A>() initializers with vNULL. * semantics.c: Likewise. fortran/ChangeLog * trans-openmp.c: Replace all vec<T, A>() initializers with vNULL. lto/ChangeLog * lto.c: Replace all vec<T, A>() initializers with vNULL. objc/ChangeLog * objc-act.c: Replace all vec<T, A>() initializers with vNULL. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r193677
2012-11-18decl.c: Remove trailing spaces.Eric Botcazou3-4/+9
* gcc-interface/decl.c: Remove trailing spaces. * gcc-interface/trans.c: Remove trailing spaces. From-SVN: r193597
2012-11-17This patch rewrites the old VEC macro-based interface into a new one based ↵Diego Novillo6-215/+208
on the template class 'vec'. This patch rewrites the old VEC macro-based interface into a new one based on the template class 'vec'. The user-visible changes are described in http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec. I have tested the patch pretty extensively: - Regular bootstraps on x86_64, ppc, ia64, sparc and hppa. - Bootstraps with --enable-checking=release - Bootstraps with --enable-checking=gc,gcac - Basic builds on all targets (using contrib/config-list.mk). We no longer access the vectors via VEC_* macros. The pattern is "VEC_operation (T, A, V, args)" becomes "V.operation (args)". The only thing I could not do is create proper ctors and dtors for the vec class. Since these vectors are stored in unions, we have to keep them as PODs (C++03 does not allow non-PODs in unions). This means that creation and destruction must be explicit. There is a new method vec<type, allocation, layout>::create() and another vec<type, allocation, layout>::destroy() to allocate the internal vector. For vectors that must be pointers, there is a family of free functions that implement the operations that need to tolerate NULL vectors. These functions all start with the prefix 'vec_safe_'. See the wiki page for details. The gengtype change removes the special handling for VEC() that used to exist in gengtype. Additionally, it allows gengtype to recognize templates of more than one argument and introduces the concept of an undefined type (useful for template arguments that may or may not be types). When a TYPE_UNDEFINED is reached, gengtype will ignore it if it happens inside a type marked with GTY((user)). Otherwise, it will emit an error. Finally, gengtype rejects root types marked GTY((user)) that are not first class pointers. 2012-11-16 Diego Novillo <dnovillo@google.com> VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) * vec.c (register_overhead): Convert it into member function of vec_prefix. (release_overhead): Likewise. (calculate_allocation): Likewise. (vec_heap_free): Remove. (vec_gc_o_reserve_1): Remove. (vec_heap_o_reserve_1): Remove. (vec_stack_o_reserve_1): Remove. (vec_stack_o_reserve_exact): Remove. (register_stack_vec): New. (stack_vec_register_index): New. (unregister_stack_vec): New. (vec_assert_fail): Remove. * vec.h: Conditionally include ggc.h. Document conditional hackery. Update top-level documentation. (ALONE_VEC_CHECK_INFO): Remove. (VEC_CHECK_INFO): Remove. (ALONE_VEC_CHECK_DECL): Remove. (VEC_CHECK_DECL): Remove. (ALONE_VEC_CHECK_PASS): Remove. (VEC_CHECK_PASS): Remove. (VEC_ASSERT): Remove. (vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and va_stack. Mark fields alloc_ and num_ as protected. (struct vec_t): Remove. Remove all function members. (struct vl_embed): Declare. (struct vl_ptr): Declare. (free): Remove. (reserve_exact): Remove. (reserve): Remove. (safe_splice): Remove. (safe_push): Remove. (safe_grow): Remove. (safe_grow_cleared): Remove. (safe_insert): Remove. (DEF_VEC_I): Remove. (DEF_VEC_ALLOC_I): Remove. (DEF_VEC_P): Remove. (DEF_VEC_ALLOC_P): Remove. (DEF_VEC_O): Remove. (DEF_VEC_ALLOC_O): Remove. (DEF_VEC_ALLOC_P_STACK): Remove. (DEF_VEC_ALLOC_O_STACK): Remove. (DEF_VEC_ALLOC_I_STACK): Remove. (DEF_VEC_A): Remove. (DEF_VEC_ALLOC_A): Remove. (vec_stack_p_reserve_exact_1): Remove. (vec_stack_o_reserve): Remove. (vec_stack_o_reserve_exact): Remove. (VEC_length): Remove. (VEC_empty): Remove. (VEC_address): Remove. (vec_address): Remove. (VEC_last): Remove. (VEC_index): Remove. (VEC_iterate): Remove. (VEC_embedded_size): Remove. (VEC_embedded_init): Remove. (VEC_free): Remove. (VEC_copy): Remove. (VEC_space): Remove. (VEC_reserve): Remove. (VEC_reserve_exact): Remove. (VEC_splice): Remove. (VEC_safe_splice): Remove. (VEC_quick_push): Remove. (VEC_safe_push): Remove. (VEC_pop): Remove. (VEC_truncate): Remove. (VEC_safe_grow): Remove. (VEC_replace): Remove. (VEC_quick_insert): Remove. (VEC_safe_insert): Remove. (VEC_ordered_remove): Remove. (VEC_unordered_remove): Remove. (VEC_block_remove): Remove. (VEC_lower_bound): Remove. (VEC_alloc): Remove. (VEC_qsort): Remove. (va_heap): Declare. (va_heap::default_layout): New typedef to vl_ptr. (va_heap::reserve): New. (va_heap::release): New. (va_gc): Declare. (va_gc::default_layout): New typedef to vl_embed. (va_gc::reserve): New. (va_gc::release): New. (va_gc_atomic): Declare. Inherit from va_gc. (va_stack): Declare. (va_stack::default_layout): New typedef to vl_ptr. (va_stack::alloc): New. (va_stack::reserve): New. (va_stack::release): New. (register_stack_vec): Declare. (stack_vec_register_index): Declare. (unregister_stack_vec): Declare. (vec<T, A = va_heap, L = typename A::default_layout>): Declare empty vec template. (vec<T, A, vl_embed>): Partial specialization for embedded layout. (vec<T, A, vl_embed>::allocated): New. (vec<T, A, vl_embed>::length): New. (vec<T, A, vl_embed>::is_empty): New. (vec<T, A, vl_embed>::address): New. (vec<T, A, vl_embed>::operator[]): New. (vec<T, A, vl_embed>::last New. (vec<T, A, vl_embed>::space): New. (vec<T, A, vl_embed>::iterate): New. (vec<T, A, vl_embed>::iterate): New. (vec<T, A, vl_embed>::copy): New. (vec<T, A, vl_embed>::splice): New. (vec<T, A, vl_embed>::quick_push New. (vec<T, A, vl_embed>::pop New. (vec<T, A, vl_embed>::truncate): New. (vec<T, A, vl_embed>::quick_insert): New. (vec<T, A, vl_embed>::ordered_remove): New. (vec<T, A, vl_embed>::unordered_remove): New. (vec<T, A, vl_embed>::block_remove): New. (vec<T, A, vl_embed>::qsort): New. (vec<T, A, vl_embed>::lower_bound): New. (vec<T, A, vl_embed>::embedded_size): New. (vec<T, A, vl_embed>::embedded_init): New. (vec<T, A, vl_embed>::quick_grow): New. (vec<T, A, vl_embed>::quick_grow_cleared): New. (vec_safe_space): New. (vec_safe_length): New. (vec_safe_address): New. (vec_safe_is_empty): New. (vec_safe_reserve): New. (vec_safe_reserve_exact): New. (vec_alloc): New. (vec_free): New. (vec_safe_grow): New. (vec_safe_grow_cleared): New. (vec_safe_iterate): New. (vec_safe_push): New. (vec_safe_insert): New. (vec_safe_truncate): New. (vec_safe_copy): New. (vec_safe_splice): New. (vec<T, A, vl_ptr>): New partial specialization for the space efficient layout. (vec<T, A, vl_ptr>::exists): New. (vec<T, A, vl_ptr>::is_empty): New. (vec<T, A, vl_ptr>::length): New. (vec<T, A, vl_ptr>::address): New. (vec<T, A, vl_ptr>::operator[]): New. (vec<T, A, vl_ptr>::operator!=): New. (vec<T, A, vl_ptr>::operator==): New. (vec<T, A, vl_ptr>::last): New. (vec<T, A, vl_ptr>::space): New. (vec<T, A, vl_ptr>::iterate): New. (vec<T, A, vl_ptr>::copy): New. (vec<T, A, vl_ptr>::reserve): New. (vec<T, A, vl_ptr>::reserve_exact): New. (vec<T, A, vl_ptr>::splice): New. (vec<T, A, vl_ptr>::safe_splice): New. (vec<T, A, vl_ptr>::quick_push): New. (vec<T, A, vl_ptr>::safe_push): New. (vec<T, A, vl_ptr>::pop): New. (vec<T, A, vl_ptr>::truncate): New. (vec<T, A, vl_ptr>::safe_grow): New. (vec<T, A, vl_ptr>::safe_grow_cleared): New. (vec<T, A, vl_ptr>::quick_grow): New. (vec<T, A, vl_ptr>::quick_grow_cleared): New. (vec<T, A, vl_ptr>::quick_insert): New. (vec<T, A, vl_ptr>::safe_insert): New. (vec<T, A, vl_ptr>::ordered_remove): New. (vec<T, A, vl_ptr>::unordered_remove): New. (vec<T, A, vl_ptr>::block_remove): New. (vec<T, A, vl_ptr>::qsort): New. (vec<T, A, vl_ptr>::lower_bound): New. (vec_stack_alloc): Define. (FOR_EACH_VEC_SAFE_ELT): Define. * vecir.h: Remove. Update all users. * vecprim.h: Remove. Update all users. Move uchar to coretypes.h. * Makefile.in (VEC_H): Add $(GGC_H). Remove vecir.h and vecprim.h dependencies everywhere. 2012-11-16 Diego Novillo <dnovillo@google.com> * gengtype-lex.l (VEC): Remove. Add characters in the set [\!\>\.-]. * gengtype-parse.c (token_names): Remove "VEC". (require_template_declaration): Remove handling of VEC_TOKEN. (type): Likewise. Call create_user_defined_type when parsing GTY((user)). * gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED. (write_state_undefined_type): New. (write_state_type): Call write_state_undefined_type for TYPE_UNDEFINED. (read_state_type): Call read_state_undefined_type for TYPE_UNDEFINED. * gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED. (create_user_defined_type): Make extern. (type_for_name): Factor out of resolve_typedef. (create_undefined_type): New (resolve_typedef): Call it when we cannot find a previous typedef and the type is not a template. (find_structure): Accept TYPE_UNDEFINED. (set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES, default to false. Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or ALLOWED_UNDEFINED_TYPES is set. Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT. (filter_type_name): Accept templates with more than one argument. (output_mangled_typename): Handle TYPE_UNDEFINED (walk_type): Likewise. (write_types_process_field): Likewise. (write_func_for_structure): If CHAIN_NEXT is set, ORIG_S should not be a user-defined type. (write_types_local_user_process_field): Handle TYPE_ARRAY, TYPE_NONE and TYPE_UNDEFINED. (write_types_local_process_field): Likewise. (contains_scalar_p): Return 0 for TYPE_USER_STRUCT. (write_root): Reject user-defined types that are not pointers. Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT and TYPE_PARAM_STRUCT. (output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and TYPE_ARRAY. (dump_typekind): Handle TYPE_UNDEFINED. * gengtype.h (enum typekind): Add TYPE_UNDEFINED. (create_user_defined_type): Declare. (enum gty_token): Remove VEC_TOKEN. 2012-11-16 Diego Novillo <dnovillo@google.com> Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) * coretypes.h (uchar): Define. * alias.c: Use new vec API in vec.h. * asan.c: Likewise. * attribs.c: Likewise. * basic-block.h: Likewise. * bb-reorder.c: Likewise. * builtins.c: Likewise. * calls.c: Likewise. * cfg.c: Likewise. * cfganal.c: Likewise. * cfgcleanup.c: Likewise. * cfgexpand.c: Likewise. * cfghooks.c: Likewise. * cfghooks.h: Likewise. * cfgloop.c: Likewise. * cfgloop.h: Likewise. * cfgloopanal.c: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * cgraph.c: Likewise. * cgraph.h: Likewise. * cgraphclones.c: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * compare-elim.c: Likewise. * coverage.c: Likewise. * cprop.c: Likewise. * data-streamer.h: Likewise. * dbxout.c: Likewise. * dce.c: Likewise. * df-core.c: Likewise. * df-problems.c: Likewise. * df-scan.c: Likewise. * dominance.c: Likewise. * domwalk.c: Likewise. * domwalk.h: Likewise. * dse.c: Likewise. * dwarf2cfi.c: Likewise. * dwarf2out.c: Likewise. * dwarf2out.h: Likewise. * emit-rtl.c: Likewise. * except.c: Likewise. * except.h: Likewise. * expr.c: Likewise. * expr.h: Likewise. * final.c: Likewise. * fold-const.c: Likewise. * function.c: Likewise. * function.h: Likewise. * fwprop.c: Likewise. * gcc.c: Likewise. * gcse.c: Likewise. * genattr.c: Likewise. * genattrtab.c: Likewise. * genautomata.c: Likewise. * genextract.c: Likewise. * genopinit.c: Likewise * ggc-common.c: Likewise. * ggc.h: Likewise. * gimple-low.c: Likewise. * gimple-ssa-strength-reduction.c: Likewise. * gimple-streamer-in.c: Likewise. * gimple.c: Likewise. * gimple.h: Likewise. * gimplify.c: Likewise. * graph.c: Likewise. * graphds.c: Likewise. * graphds.h: Likewise. * graphite-blocking.c: Likewise. * graphite-clast-to-gimple.c: Likewise. * graphite-dependences.c: Likewise. * graphite-interchange.c: Likewise. * graphite-optimize-isl.c: Likewise. * graphite-poly.c: Likewise. * graphite-poly.h: Likewise. * graphite-scop-detection.c: Likewise. * graphite-scop-detection.h: Likewise. * graphite-sese-to-poly.c: Likewise. * graphite.c: Likewise. * godump.c: Likewise. * haifa-sched.c: Likewise. * hw-doloop.c: Likewise. * hw-doloop.h: Likewise. * ifcvt.c: Likewise. * insn-addr.h: Likewise. * ipa-cp.c: Likewise. * ipa-inline-analysis.c: Likewise. * ipa-inline-transform.c: Likewise. * ipa-inline.c: Likewise. * ipa-inline.h: Likewise. * ipa-prop.c: Likewise. * ipa-prop.h: Likewise. * ipa-pure-const.c: Likewise. * ipa-ref-inline.h: Likewise. * ipa-ref.c: Likewise. * ipa-ref.h: Likewise. * ipa-reference.c: Likewise. * ipa-split.c: Likewise. * ipa-utils.c: Likewise. * ipa-utils.h: Likewise. * ipa.c: Likewise. * ira-build.c: Likewise. * ira-color.c: Likewise. * ira-emit.c: Likewise. * ira-int.h: Likewise. * ira.c: Likewise. * loop-invariant.c: Likewise. * loop-unroll.c: Likewise. * lower-subreg.c: Likewise. * lra-lives.c: Likewise. * lra.c: Likewise. * lto-cgraph.c: Likewise. * lto-section-out.c: Likewise. * lto-streamer-in.c: Likewise. * lto-streamer-out.c: Likewise. * lto-streamer.h: Likewise. * lto-symtab.c: Likewise. * mcf.c: Likewise. * modulo-sched.c: Likewise. * omp-low.c: Likewise. * opts-common.c: Likewise. * opts-global.c: Likewise. * opts.c: Likewise. * opts.h: Likewise. * passes.c: Likewise. * predict.c: Likewise. * print-tree.c: Likewise. * profile.c: Likewise. * profile.h: Likewise. * read-rtl.c: Likewise. * ree.c: Likewise. * reg-stack.c: Likewise. * regrename.c: Likewise. * regrename.h: Likewise. * reload.c: Likewise. * reload.h: Likewise. * reload1.c: Likewise. * rtl.h: Likewise. * sched-deps.c: Likewise. * sched-int.h: Likewise. * sdbout.c: Likewise. * sel-sched-dump.c: Likewise. * sel-sched-ir.c: Likewise. * sel-sched-ir.h: Likewise. * sel-sched.c: Likewise. * sese.c: Likewise. * sese.h: Likewise. * statistics.h: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * store-motion.c: Likewise. * tlink.c: Likewise. * toplev.c: Likewise. * trans-mem.c: Likewise. * tree-browser.c: Likewise. * tree-call-cdce.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-chrec.c: Likewise. * tree-chrec.h: Likewise. * tree-complex.c: Likewise. * tree-data-ref.c: Likewise. * tree-data-ref.h: Likewise. * tree-dfa.c: Likewise. * tree-diagnostic.c: Likewise. * tree-dump.c: Likewise. * tree-eh.c: Likewise. * tree-emutls.c: Likewise. * tree-flow.h: Likewise. * tree-if-conv.c: Likewise. * tree-inline.c: Likewise. * tree-inline.h: Likewise. * tree-into-ssa.c: Likewise. * tree-iterator.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-mudflap.c: Likewise. * tree-optimize.c: Likewise. * tree-outof-ssa.c: Likewise. * tree-parloops.c: Likewise. * tree-phinodes.c: Likewise. * tree-predcom.c: Likewise. * tree-pretty-print.c: Likewise. * tree-scalar-evolution.c: Likewise. * tree-sra.c: Likewise. * tree-ssa-address.c: Likewise. * tree-ssa-alias.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-coalesce.c: Likewise. * tree-ssa-dce.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-ssa-forwprop.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-live.h: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-ssa-loop-manip.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-operands.c: Likewise. * tree-ssa-phiopt.c: Likewise. * tree-ssa-phiprop.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-propagate.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-sccvn.h: Likewise. * tree-ssa-strlen.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa-tail-merge.c: Likewise. * tree-ssa-threadedge.c: Likewise. * tree-ssa-threadupdate.c: Likewise. * tree-ssa-uncprop.c: Likewise. * tree-ssa-uninit.c: Likewise. * tree-ssa.c: Likewise. * tree-ssanames.c: Likewise. * tree-stdarg.c: Likewise. * tree-streamer-in.c: Likewise. * tree-streamer-out.c: Likewise. * tree-streamer.c: Likewise. * tree-streamer.h: Likewise. * tree-switch-conversion.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-generic.c: Likewise. * tree-vect-loop-manip.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-vect-slp.c: Likewise. * tree-vect-stmts.c: Likewise. * tree-vectorizer.c: Likewise. * tree-vectorizer.h: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. * value-prof.c: Likewise. * value-prof.h: Likewise. * var-tracking.c: Likewise. * varasm.c: Likewise. * varpool.c: Likewise. * vmsdbgout.c: Likewise. * config/bfin/bfin.c: Likewise. * config/c6x/c6x.c: Likewise. * config/darwin.c: Likewise. * config/i386/i386.c: Likewise. * config/ia64/ia64.c: Likewise. * config/mep/mep.c: Likewise. * config/mips/mips.c: Likewise. * config/pa/pa.c: Likewise. * config/rs6000/rs6000-c.c: Likewise. * config/rs6000/rs6000.c: Likewise. * config/rx/rx.c: Likewise. * config/spu/spu-c.c: Likewise. * config/vms/vms.c: Likewise. * config/vxworks.c: Likewise. * config/epiphany/resolve-sw-modes.c: Likewise. From-SVN: r193595
2012-11-09re PR other/52438 (Some files still GPLv2)Eric Botcazou5-166/+43
PR other/52438 * s-taspri-lynxos.ads: Delete. * s-osinte-kfreebsd-gnu.ads: Change license to GPL V3+. * s-tpopsp-rtems.adb: Likewise. * s-osinte-rtems.adb: Likewise. From-SVN: r193375
2012-11-09trans.c (gnat_to_gnu): Deal with a missing library unit instead of calling ↵Eric Botcazou2-5/+27
gnat_to_gnu on Emtpy. * gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Body_Stub>: Deal with a missing library unit instead of calling gnat_to_gnu on Emtpy. Remove last bits of support for SCIL nodes. Add cases for nodes that should only be present when annotating types. Add default abort. From-SVN: r193357
2012-11-07Makefile.in: Revert most changes.Eric Botcazou3-5/+42
* gcc-interface/Makefile.in: Revert most changes. * gcc-interface/Make-lang.in (gnatlib): Remove ada/s-oscons.ads. libada/ * libada/Makefile.in: Revert most changes. From-SVN: r193280
2012-11-06* gcc-interface/Makefile.in (copy-s-oscons): New target.Arnaud Charlet2-0/+6
From-SVN: r193239
2012-11-06[multiple changes]Arnaud Charlet8-288/+1111
2012-11-06 Robert Dewar <dewar@adacore.com> * err_vars.ads, atree.ads: Minor reformatting. 2012-11-06 Arnaud Charlet <charlet@adacore.com> * gcc-interface/Make-lang.in: Update dependencies. * gcc-interface/Makefile.in: Add runtime pairs for Android. Rework handling of s-oscons.ads. * s-osinte-android.ads, s-osinte-android.adb: New files. 2012-11-06 Tristan Gingold <gingold@adacore.com> * gcc-interface/trans.c (gnat_to_gnu): For N_Real_Literal, create the binary representation of vax floats. From-SVN: r193238
2012-11-06[multiple changes]Arnaud Charlet43-121/+160
2012-11-06 Tristan Gingold <gingold@adacore.com> * sem_ch9.adb (Analyze_Protected_Type_Declaration): Fix thinko in previous commit. 2012-11-06 Jose Ruiz <ruiz@adacore.com> * ali.adb (Scan_ALI): Fix parsing mechanism for -fstack-check. 2012-11-06 Thomas Quinot <quinot@adacore.com> * atree.adb, atree.ads, einfo.adb, errout.adb, errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, err_vars.ads, expander.adb, exp_ch13.adb, exp_ch2.adb, exp_ch6.adb, exp_dist.adb, fe.h, fmap.adb, fmap.ads, gprep.adb, makeutl.adb, osint.adb, osint.ads, par_sco.adb, prepcomp.adb, prj-part.adb, prj-proc.adb, scng.adb, sdefault.ads, sem_ch10.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_dim.adb, sem_elab.adb, sem_eval.adb, sem_intr.adb, sem_prag.adb, sem_type.adb, sem_warn.adb, stylesw.adb, stylesw.ads, targparm.adb, targparm.ads (Cascaded_Error): Rename to more descriptive name 'Check_Error_Detected'. Add calls to Check_Error_Detected at places where semantic analysis is abandoned assuming a previously detected error. From-SVN: r193235
2012-11-06[multiple changes]Arnaud Charlet5-87/+133
2012-11-06 Robert Dewar <dewar@adacore.com> * exp_ch4.adb: Minor comment change. 2012-11-06 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Extensive revision of documentation of overflow checking. * vms_data.ads: Overflow check numbers must be in range 1-3, not 0-3. 2012-11-06 Tristan Gingold <gingold@adacore.com> * sem_ch9.adb (Analyze_Protected_Type_Declaration): Emit a warning if pragma Priority is used in presence of an interrupt handler. From-SVN: r193234
2012-11-06checks.ads, [...]: Minor changes throughout for new overflow checking.Robert Dewar12-409/+370
2012-11-06 Robert Dewar <dewar@adacore.com> * checks.ads, checks.adb, exp_ch4.adb: Minor changes throughout for new overflow checking. * exp_util.adb (Insert_Actions): Remove special casing of Overflow_Check. * gnat1drv.adb (Adjust_Global_Switches): Fixes for new handling of overflow checks. * sem.adb (Analyze): Remove special casing of Overflow_Check (Analyze_List): ditto. * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Remove SUPPRESSED and change CHECKED to STRICT. * sem_res.adb (Analyze_And_Resolve): No longer treat Overflow_Check specially. (Preanalyze_And_Resolve): ditto. (Resolve): ditto. * snames.ads-tmpl: Replace Name_Checked by Name_Strict. * switch-c.adb (Get_Overflow_Mode): Eliminate 0 setting, CHECKED => STRICT. * types.ads (Overflow_Check_Type): Remove Suppressed, change Checked to Strict (Suppress_Record): Overflow check controlled by Suppress array. From-SVN: r193233
2012-11-06sem_res.adb (Preanalyze_And_Resolve): In Alfa mode do not disable checks...Ed Schonberg2-4/+28
2012-11-06 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Preanalyze_And_Resolve): In Alfa mode do not disable checks, so that flags can be properly set on expressions that are not further expanded. From-SVN: r193231
2012-11-06exp_attr.adb, [...]: Minor reformatting.Robert Dewar3-0/+9
2012-11-06 Robert Dewar <dewar@adacore.com> * exp_attr.adb, sem_attr.adb: Minor reformatting. From-SVN: r193230
2012-11-06exp_attr.adb (Expand_N_Attribute_Reference): Apply a predicate check when ↵Gary Dismukes3-2/+45
evaluating the attribute Valid... 2012-11-06 Gary Dismukes <dismukes@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference): Apply a predicate check when evaluating the attribute Valid, and issue a warning about infinite recursion when the check occurs within the predicate function of the prefix's subtype. * exp_ch4.adb (Expand_N_In): Remove test for Is_Discrete_Type when we're checking that there's no predicate check function as a condition for substituting a Valid check for a scalar membership test (substitution should be suppressed for any kind of scalar subtype with a predicate check). Also, don't emit a predicate check when the right operand is a range. From-SVN: r193228
2012-11-06[multiple changes]Arnaud Charlet15-36/+721
2012-11-06 Robert Dewar <dewar@adacore.com> * par_sco.adb, bindgen.adb, exp_vfpt.adb, exp_vfpt.ads, exp_ch2.adb, errout.adb, sem_ch8.adb: Minor reformatting. 2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb: Include Loop_Entry_Attributes to the list of Node/List/Elist10 usage. (Loop_Entry_Attributes): New routine. (Set_Loop_Entry_Attributes): New routine. (Write_Field10_Name): Add an output string for Loop_Entry_Attributes. * einfo.ads: Define new attribute Loop_Entry_Attributes along with its usage in nodes. (Loop_Entry_Attributes): New routine and dedicated pragma Inline. (Set_Loop_Entry_Attributes): New routine and dedicated pragma Inline. * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand Attribute_Loop_Entry here. * exp_ch5.adb: Add with and use clause for Elists; (Expand_Loop_Entry_Attributes): New routine. (Expand_N_Loop_Statement): Add a call to Expand_Loop_Entry_Attributes. * exp_prag.adb (Expand_Pragma_Loop_Assertion): Specialize the search to include multiple nested loops produced by the expansion of Ada 2012 array iterator. * sem_attr.adb: Add with and use clause for Elists. (Analyze_Attribute): Check the legality of attribute Loop_Entry. (Resolve_Attribute): Nothing to do for Loop_Entry. (S14_Attribute): New routine. * snames.ads-tmpl: Add a comment on entries marked with HiLite. Add new name Name_Loop_Entry. Add new attribute Attribute_Loop_Entry. From-SVN: r193227
2012-11-06[multiple changes]Arnaud Charlet7-17/+116
2012-11-06 Geert Bosch <bosch@adacore.com> * eval_fat.adb (Machine, Succ): Fix front end to support static evaluation of attributes on targets with both VAX and IEEE float. * sem_util.ads, sem_util.adb (Has_Denormals, Has_Signed_Zeros): New type-specific functions. Previously we used Denorm_On_Target and Signed_Zeros_On_Target directly, but that doesn't work well for OpenVMS where a single target supports both floating point with and without signed zeros. * sem_attr.adb (Attribute_Denorm, Attribute_Signed_Zeros): Use new Has_Denormals and Has_Signed_Zeros functions to support both IEEE and VAX floating point on a single target. 2012-11-06 Tristan Gingold <gingold@adacore.com> * bindgen.adb (System_Interrupts_Used): New variable. (Gen_Adainit): Declare and call Install_Restricted_Handlers_Sequential if System.Interrupts is used when elaboration policy is sequential. 2012-11-06 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb: Complete previous change. From-SVN: r193225
2012-11-06[multiple changes]Arnaud Charlet11-129/+141
2012-11-06 Tristan Gingold <gingold@adacore.com> * fe.h (Get_Vax_Real_Literal_As_Signed): Declare. * eval_fat.adb, eval_fat.ads (Decompose_Int): Move spec in package spec. * exp_vfpt.adb, exp_vfpt.ads (Vax_Real_Literal_As_Signed): New function. (Expand_Vax_Real_Literal): Remove. * exp_ch2.adb (Expand_N_Real_Literal): Do nothing. * sem_eval.adb (Expr_Value_R): Remove special Vax float case, as this is not anymore a special case. 2012-11-06 Yannick Moy <moy@adacore.com> * uintp.ads: Minor correction of typo in comment. 2012-11-06 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragnma, case Unchecked_Union): remove requirement that discriminants of an unchecked_union must have defaults. 2012-11-06 Vasiliy Fofanov <fofanov@adacore.com> * projects.texi: Minor wordsmithing. From-SVN: r193224
2012-11-06sem_ch9.adb, [...]: Minor reformatting.Robert Dewar4-17/+21
2012-11-06 Robert Dewar <dewar@adacore.com> * sem_ch9.adb, exp_vfpt.adb, xoscons.adb: Minor reformatting. From-SVN: r193223
2012-11-06[multiple changes]Arnaud Charlet4-6/+113
2012-11-06 Tristan Gingold <gingold@adacore.com> * exp_vfpt.adb: Document VAX float point layout. 2012-11-06 Geert Bosch <bosch@adacore.com> * eval_fat.adb (Machine): Don't return -0.0 on targets without signed zeros. 2012-11-06 Ed Schonberg <schonberg@adacore.com> * sem_ch9.adb (Analyze_Entry_Call_Alternative, Check_Triggering_Statement): Reject properly an indirect call. From-SVN: r193222
2012-11-06xoscons.adb, [...]: Add support for post-processing.Pascal Obry4-63/+206
2012-11-06 Pascal Obry <obry@adacore.com> * xoscons.adb, xutil.adb, xutil.ads: Add support for post-processing. From-SVN: r193221
2012-11-06[multiple changes]Arnaud Charlet4-16/+35
2012-11-06 Yannick Moy <moy@adacore.com> * s-bignum.adb (Div_Rem): Fix another bug in step D3. 2012-11-06 Tristan Gingold <gingold@adacore.com> * s-tarest.adb (Create_Restricted_Task): Call Create_Restricted_Task_Sequential in sequential case. 2012-11-06 Hristian Kirtchev <kirtchev@adacore.com> * exp_prag.adb (Expand_Pragma_Loop_Assertion): Do not rewrite the pragma into a null statement as its presence is desirable in -gnatG output. From-SVN: r193219
2012-11-06[multiple changes]Arnaud Charlet3-6/+31
2012-11-06 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Check_Constrained_Object): Do nothing if the renamed object is a limited record. 2012-11-06 Bernard Banner <banner@adacore.com> * sysdep.c (_getpagesize): New. Minor reformatting. From-SVN: r193218