summaryrefslogtreecommitdiffstats
path: root/gcc/ada
Commit message (Collapse)AuthorAgeFilesLines
...
* 2012-10-02 Robert Dewar <dewar@adacore.com>charlet2012-10-028-59/+42
| | | | | | | | | * sinfo.adb, sinfo.ads, sem_util.adb, sem_util.ads, types.h, exp_ch4.adb, exp_ch6.adb: Get rid of internal use of N_Return_Statement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191974 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Eric Botcazou <ebotcazou@adacore.com>charlet2012-10-024-16/+33
| | | | | | | | | | | | | | | | | | | * types.h: Minor cosmetic fix. 2012-10-02 Robert Dewar <dewar@adacore.com> * sinfo.ads: Remove refs of N_Conditional_Expression and N_Parameterized_Expression. 2012-10-02 Thomas Quinot <quinot@adacore.com> * exp_aggr.adb (Get_Component_Val): Rewrite code that computes justification of bits in enclosing word in an attempt to make it clearer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191973 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interfaces/decl.c (elaborate_expression_1): Use the variable forebotcazou2012-10-023-1/+11
| | | | | | | | | | bounds of loop iteraration scheme only for locally defined subtypes. * gcc-interface/trans.c (gigi): Fix formatting. (build_return_expr): Apply the NRV optimization only for BLKmode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191971 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Robert Dewar <dewar@adacore.com>charlet2012-10-0246-767/+795
| | | | | | | | | | | | | | | | | | | | * par_sco.adb, sem_ch3.adb, layout.adb, exp_ch7.adb, exp_imgv.adb, exp_util.adb, exp_util.ads, exp_attr.adb, sinfo.adb, sinfo.ads, exp_ch9.adb, style.ads, scos.ads, debug.adb, einfo.ads, scng.adb, checks.adb, checks.ads, sem.adb, par-ch4.adb, sem_util.adb, types.h, sem_res.adb, expander.adb, scans.ads, par.adb, exp_ch2.adb, gnat1drv.adb, stylesw.ads, sem_elab.adb, exp_ch4.adb, exp_ch4.ads, exp_ch6.adb, sem_ch4.adb, sem_ch4.ads, sem_ch6.adb, opt.ads, sem_eval.adb, sem_eval.ads, exp_intr.adb, sprint.adb, sprint.ads, styleg.ads: Change name Conditional_Expression to If_Expression. * gcc-interface/trans.c (gnat_to_gnu): Replace N_Conditional_Expression by N_If_Expression. * gcc-interface/Make-lang.in: Update dependencies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191967 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Robert Dewar <dewar@adacore.com>charlet2012-10-024-16/+59
| | | | | | | | | | | | | | | | | | | | | | | | | * exp_ch4.adb (Expand_N_Op_Expon): Use expression with actions for x ** 4. 2012-10-02 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb: (Analyze_Iterator_Specification): If container has a variable indexing aspect, the element is a variable and is modifiable in the loop. This check is also performed when the loop is expanded, but it must be done in semantic analysis when expansion is disabled, for example for ASIS usage. 2012-10-02 Ed Schonberg <schonberg@adacore.com> * lib-xref.adb (Generate_Reference): If a child subprogram has no previous spec, treat a reference to its formals (such as a parameter association) as coming from source in order to generate the proper references and enable gps navigation between reference and declaration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191965 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Robert Dewar <dewar@adacore.com>charlet2012-10-028-136/+400
| | | | | | | | | | | | | | | | | | | | | | | * checks.adb (Apply_Arithmetic_Overflow_Checked_Suppressed): New name for Apply_Arithmetic_Overflow_Normal (Apply_Arithmetic_Overflow_Minimized_Eliminated): Add handling for conditional expressions (Is_Signed_Integer_Arithmetic_Op): Now includes conditional expressions (Minimize_Eliminate_Overflow_Checks): Handle conditional expressions. * checks.ads: Minor comment fixes. * exp_ch4.adb (Expand_N_Case_Expression): Call Apply_Arithmetic_Overflow_Check (Expand_N_Conditional_Expression): Call Apply_Arithmetic_Overflow_Check * s-bignum.adb (Normalize): Remove incorrect precondition. * sem_res.adb (Resolve_Case_Expression): Set Do_Overflow_Check flag (Resolve_Conditional_Expression): Set Do_Overflow_Check flag. * sinfo.adb: Add Do_Overflow_Check for conditional expressions. * sinfo.ads: Minor documentation updates. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191964 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Ed Schonberg <schonberg@adacore.com>charlet2012-10-023-5/+16
| | | | | | | | | | | | | | | * exp_ch4.adb (Expand_N_Case_Expression): Do not introduce indirections when the type of the alternatives is an access type: more efficient, and removes anomalies when an alternative is statically null. 2012-10-02 Robert Dewar <dewar@adacore.com> * aspects.ads: Minor comment addition (Invariant is a GNAT aspect). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191963 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Robert Dewar <dewar@adacore.com>charlet2012-10-0217-89/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | * exp_ch7.adb, sem_dim.adb, sem_dim.ads, prj-part.adb, checks.adb, freeze.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting. 2012-10-02 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Fix typo preventing proper processing of Overflow_Checks pragmas for general case. 2012-10-02 Robert Dewar <dewar@adacore.com> * exp_ch4.adb (Expand_N_Op_Mod): Fix crash in ELIMINATED overflow checks mode when bignum mode is used. 2012-10-02 Robert Dewar <dewar@adacore.com> * stylesw.ads, gnat_ugn.texi: Document new style rule for NOT IN. * par-ch4.adb (P_Relational_Operator): Add style check for NOT IN. * style.ads, styleg.adb, styleg.ads (Check_Not_In): New procedure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191962 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Vincent Pucci <pucci@adacore.com>charlet2012-10-0210-56/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sem_attr.adb (Analyze_Attribute): Check dimension for attribute Old before it gets expanded. * sem_dim.adb (Analyze_Dimension_Has_Etype): Correctly propagate dimensions for identifier. 2012-10-02 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Expand_Iterator_Loop): Handle properly the case where the iterator type is derived locally from an instantiation of Ada.Iterators_Interface. * exp_ch7.adb (Establish_Transient_Scope): Do not create a transient scope if within the expansion of an iterator loop, because a transient block already exists. 2012-10-02 Vincent Celier <celier@adacore.com> * gnatcmd.adb: Use absolute path for configuration pragmas files * make.adb (Configuration_Pragmas_Switch.Absolute_Path): Moved to Makeutl. * makeutl.ads, makeutl.adb (Absolute_Path): New function, moved from make.adb. 2012-10-02 Vincent Celier <celier@adacore.com> * prj-part.adb (Post_Parse_Context_Clause): Resurrect Boolean parameter In_Limited. Check for circularity also if In_Limited is True. (Parse_Single_Project): Call Post_Parse_Context_Clause with In_Limited parameter. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191961 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Bob Duff <duff@adacore.com>charlet2012-10-028-125/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * checks.adb (Apply_Predicate_Check): Disable check in -gnatc mode. 2012-10-02 Vincent Pucci <pucci@adacore.com> * sem_ch6.adb (Analyze_Function_Call): Dimension propagation for function calls moved to Analyze_Dimension_Call. * sem_dim.adb (Analyze_Dimension_Call): Properly propagate the dimensions from the returned type for function calls. 2012-10-02 Vincent Celier <celier@adacore.com> * gnatcmd.adb: Take into account any configuration pragma file in the project files for gnat pretty/stub/metric. 2012-10-02 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Check_Indexing_Functions): Refine several tests on the legality of indexing aspects: Constant_Indexing functions do not have to return a reference type, and given an indexing aspect Func, not all overloadings of Func in the current scope need to be indexing functions. 2012-10-02 Vasiliy Fofanov <fofanov@adacore.com> * gnat_ugn.texi: Adjust docs for overflow checks to be VMS-friendly. 2012-10-02 Vincent Celier <celier@adacore.com> * switch-m.adb (Normalize_Compiler_Switches): Recognize switches -gnatox and -gnatoxx when x=0/1/2/3. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191960 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Vincent Pucci <pucci@adacore.com>charlet2012-10-029-64/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sem_ch4.adb (Analyze_Indexed_Component_Form): Dimension analysis for indexed components added. * sem_ch6.adb (Analyze_Function_Call): Dimension propagation for function calls added. * sem_dim.adb (Analyze_Dimension): Call to Analyze_Dimension_Has_Etype when N is a function call. (Analyze_Dimension_Call): Don't propagate anymore the dimensions for function calls since this is now treated separately in Analyze_Dimension_Has_Etype. (Analyze_Dimension_Has_Etype): For attribute references, propagate the dimensions from the prefix. * sem_dim.ads (Copy_Dimensions): Fix comment. 2012-10-02 Hristian Kirtchev <kirtchev@adacore.com> * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine. (Apply_Parameter_Aliasing_And_Validity_Checks): This routine has been split into two. (Apply_Parameter_Validity_Checks): New routine. * exp_ch6.adb (Expand_Call): Add checks to verify that actuals do not overlap. The checks are made on the caller side to overcome issues of parameter passing mechanisms. * freeze.adb (Freeze_Entity): Update call to Apply_Parameter_Aliasing_And_Validity_Checks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191959 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Ed Schonberg <schonberg@adacore.com>charlet2012-10-022-10/+31
| | | | | | | | | | | | | * sem_ch4.adb (Is_Empty_Range): Use bounds of index type to determine whether an array is empty when optimizing a quantified expression over a null range. Use of RM_Size was incorrect. Analyze condition before constant-folding the expression to catch potential errors. Modify the error message to avoid mathematical terminology. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191958 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Robert Dewar <dewar@adacore.com>charlet2012-10-027-7/+156
| | | | | | | | | | | | | | | | | | | * usage.adb, gnat_rm.texi, vms_data.ads: Add entry for /OVERFLOW_CHECKS=?? generating -gnato?? for control of extended overflow checking. * ug_words: Add entry for -gnato?? for /OVERFLOW_CHECKS=?? * gnat_ugn.texi: Add documentation for -gnato?? for control of overflow checking mode. 2012-10-02 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Quantified_Expression): If the iterator in a quantified expression is statically known to be null (e.g. a array with an empty index type) emit a warning. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191957 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-02 Robert Dewar <dewar@adacore.com>charlet2012-10-0211-49/+228
| | | | | | | | | | | | | | | | | | | | | | | | | * sem_dim.adb: Minor code reorganization. * sem_dim.ads: Add comment. 2012-10-02 Robert Dewar <dewar@adacore.com> * checks.ads, exp_ch4.adb, checks.adb (Minimize_Eliminate_Overflow_Checks): Add Top_Level parameter to avoid unnecessary conversions to Bignum. Minor reformatting. 2012-10-02 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Process_PPCs): Generate invariant checks for a return value whose type is an access type and whose designated type has invariants. Ditto for in-out parameters and in-parameters of an access type. * exp_ch3.adb (Build_Component_Invariant_Call): Add invariant check for an access component whose designated type has invariants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191956 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Vincent Pucci <pucci@adacore.com>charlet2012-10-014-21/+79
| | | | | | | | | | | | | | | | | * sem_aggr.adb (New_Copy_Tree_And_Copy_Dimensions): New routine. (Resolve_Record_Aggregate): New_Copy_Tree calls replaced by New_Copy_Tree_And_Copy_Dimensions calls. Move_Dimensions call replaced by Copy_Dimensions call. * sem_dim.adb (Analyze_Dimension_Component_Declaration): Don't remove the dimensions of expression in component declaration anymore. (Copy_Dimensions): New routine. (Move_Dimensions): Add call to Copy_Dimensions. * sem_dim.ads (Copy_Dimensions): New routine. (Move_Dimensions): Spec moved to body of Sem_Dim. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191922 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Ed Schonberg <schonberg@adacore.com>charlet2012-10-016-6/+124
| | | | | | | | | | | | | | | | | | | * checks.adb (Apply_Predicate_Check): If the predicate is a static one and the operand is static, evaluate the predicate at compile time. * sem_eval.ads, sem_eval.adb (Eval_Static_Predicate_Check): new procedure, to evaluate a static predicate check whenever possible. * sem_res.adb (Resolve_Type_Conversion): Apply predicate check on the conversion if the target type has predicates. 2012-10-01 Vincent Pucci <pucci@adacore.com> * sem_dim.adb (Has_Symbols): Complain if parameter Symbol has been provided by the user in the dimension output call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191921 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Robert Dewar <dewar@adacore.com>charlet2012-10-019-63/+437
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * checks.adb (Apply_Divide_Checks): New name for Apply_Divide_Check (Minimize_Eliminate_Overflow_Checks): Add code to handle division (and rem and mod) properly. (Apply_Division_Check): New procedure (Apply_Divide_Checks): Use Apply_Division_Check (Apply_Divide_Checks): Use Apply_Arithmetic_Overflow_Minimized_Eliminated. * checks.ads (Apply_Divide_Checks): New name for Apply_Divide_Check, also add clearer documentation for this routine and put in alfa order. * exp_ch4.adb (Apply_Divide_Checks): New name for Apply_Divide_Check. * s-bignum.adb (To_Bignum): Handle largest negative integer properly. * sem.adb (Analyze): Handle overflow suppression correctly (Analyze_List): Handle overflow suppression correctly * sem_res.adb (Analyze_And_Resolve): Handle overflow suppression correctly. 2012-10-01 Vasiliy Fofanov <fofanov@adacore.com> * s-oscons-tmplt.c, g-socket.ads: Revert previous change, breaks VMS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191920 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Robert Dewar <dewar@adacore.com>charlet2012-10-015-46/+192
| | | | | | | | | | | | | | | | | | | | | | * checks.adb (Minimize_Eliminate_Overflow_Checks): Changes for exponentiation. * exp_ch4.adb (Expand_N_Op_Expon): Changes for Minimize/Eliminate overflow checks. * s-bignum.adb (Compare): Fix bad precondition. 2012-10-01 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Build_Derived_Record_Type): If the derived type has new discriminantss that constrain inherited ones, use the discriminant type in the original declaration to check for conformance, because in the presence of array components with a smaller range that are constrained by the origina discriminant, the compiler will have created a narrower subtype for that discriminant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191919 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Robert Dewar <dewar@adacore.com>charlet2012-10-019-42/+470
| | | | | | | | | | | | | | | | | | | * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): Handle case of appearing in range in membership test. * exp_ch4.adb (Expand_Membership_Minimize_Eliminate_Overflow): New procedure (Expand_N_In): Use Expand_Membership_Minimize_Eliminate_Overflow. * rtsfind.ads: Add RE_Bignum_In_LLI_Range. * s-bignum.ads, s-bignum.adb (Bignum_In_LLI_Range): New function. * sinfo.ads, sinfo.adb (No_Minimize_Eliminate): New flag. 2012-10-01 Robert Dewar <dewar@adacore.com> * uintp.ads: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191918 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Ed Schonberg <schonberg@adacore.com>charlet2012-10-012-3/+16
| | | | | | | | * checks.adb: Improve warning message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191915 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Robert Dewar <dewar@adacore.com>charlet2012-10-014-2/+325
| | | | | | | | | | | | | | | | | | * checks.adb: Minor reformatting. 2012-10-01 Javier Miranda <miranda@adacore.com> * exp_ch3.adb (Expand_N_Object_Declaration): Suppress tag assignment for initializations that are aggregates. 2012-10-01 Robert Dewar <dewar@adacore.com> * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): New procedure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191914 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Robert Dewar <dewar@adacore.com>charlet2012-10-016-59/+107
| | | | | | | | | | | | | | | | | | | | | | | * checks.adb (Minimize_Eliminate_Checks): Changes from testing. (Apply_Arithmetic_Overflow_Minimized_Eliminated): Changes from testing. * sinfo.ads: Remove note on not setting Entity field in overflow case since this is no longer true. * Makefile.rtl: Add s-bignum.o 2012-10-01 Thomas Quinot <quinot@adacore.com> * Make-generated.in: Correction to previous change for s-oscons target. 2012-10-01 Thomas Quinot <quinot@adacore.com> * s-bignum.adb (Allocate_Bignum): Reorganize to kill strict aliasing warning. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191913 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Robert Dewar <dewar@adacore.com>charlet2012-10-0116-106/+2013
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * checks.adb (Overflow_Check_Mode): New function (Apply_Overflow_Check): New procedure (Is_Check_Suppressed): Moved here from Sem, Overflow_Check case now specially treated. * checks.ads (Overflow_Check_Mode): New function (Is_Check_Suppressed): Moved here from Sem (more logical) * exp_ch4.adb (Substitute_Valid_Check): Suppress warning about optimization if we are in MINIMIZED or ELIMINATED overflow checking mode and within an assertiom expression. * rtsfind.ads: Add entries for Bignum stuff. * s-bignum.ads, s-bignum.adb: New files. * sem.ads, sem.adb (Is_Check_Suppressed): Moved to Checks, more logical. * sem_prag.adb (Process_Suppress_Unsuppress): New behavior for Unsuppress of Overflow_Check (sets Checked instead of Minimized) * sem_res.adb: Update comments. * sinfo.ads (N_Op): Add documentation on overflow handling. * tbuild.ads, tbuild.adb (Convert_To_And_Rewrite): New procedure. * types.ads (Minimized_Or_Eliminated): New subtype. 2012-10-01 Eric Botcazou <ebotcazou@adacore.com> * layout.adb (Layout_Type): Do not set twice the address size on an access-to-unconstrained array if Debug_Flag_6 is set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191912 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com>charlet2012-10-015-107/+121
| | | | | | | | | | | | | | | | | | | | * sem_ch3.adb (Analyze_Declarations): Remove the specialized code which prevents freezing when the declarative list contains a _postconditions body. This is no longer needed because the body is now inserted at the end of the declarations. * sem_ch6.adb (Insert_After_Last_Declaration): New routine. (Insert_Before_First_Source_Declaration): Removed. (Process_PPCs): Insert the _postconditions body at the end of the declarative list to prevent premature freezing of types that appear in the declarations. 2012-10-01 Robert Dewar <dewar@adacore.com> * sem_aggr.adb, sem_dim.adb: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191911 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Ed Schonberg <schonberg@adacore.com>charlet2012-10-0118-310/+989
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sem_prag.adb (Process_Convention, Process_Import_Or_Interface): Adjust test so that when the pragma comes from an aspect specification it only applies to the entity in the original declaration. 2012-10-01 Thomas Quinot <quinot@adacore.com> * gnat_ugn.texi: Document new command line switch -fada-spec-parent. 2012-10-01 Thomas Quinot <quinot@adacore.com> * s-oscons-tmplt.c, g-socket.ads: Minor code improvement: use gcc builtin __alignof__ to get the alignment of struct fd_set. 2012-10-01 Vincent Pucci <pucci@adacore.com> * exp_ch6.adb (Expand_Call): Remove call to Remove_Dimension_In_Call. * sem_aggr.adb (Resolve_Array_Aggregate): Analyze dimension of components in array aggregate. (Resolve_Aggr_Expr): Propagate dimensions from the original expression Expr to the new created expression New_Expr when resolving the expression of a component in record aggregates. (Resolve_Record_Aggregate): Analyze dimension of components in record (or extension) aggregate. * sem_ch6.adb (Analyze_Subprogram_Specification): Analyze dimension of formals with default expressions in subprogram specification. * sem_ch8.adb (Analyze_Expanded_Name): Analyze dimension of expanded names. (Find_Selected_Component): Analyze dimension of selected component. * sem_dim.adb: Several dimension error messages reformatting. (Dimensions_Msg_Of): New flag Description_Needed in order to differentiate two different sort of dimension error messages. (Dim_Warning_For_Numeric_Literal): New routine. (Exists): New routine. (Move_Dimensions): Routine spec moved to spec file. * sem_dim.ads (String_From_Numeric_Literal): New routine. (Analyze_Dimension): Analyze dimension only when the node comes from source. Dimension analysis for expanded names added. (Analyze_Dimension_Array_Aggregate): New routine. (Analyze_Dimension_Call): New routine. (Analyze_Dimension_Component_Declaration): Warning if default expression is a numeric literal. (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine. (Analyze_Dimension_Formals): New routine. (Analyze_Dimension_Object_Declaration): Warning if default expression is a numeric literal. (Symbol_Of): Return either the dimension subtype symbol or the dimension symbol built by From_Dim_To_Str_Of_Unit_Symbols. * sem_dim.ads (Analyze_Dimension_Array_Aggregate): New routine. (Analyze_Dimension_Call): New routine. (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine. (Analyze_Dimension_Formals): New routine. (Move_Dimensions): Moved from sem_dim.adb. * s-dimmks.ads: Turn off the warnings for dimensioned object declaration. Dimensioned subtypes sorted in alphabetical order. New subtypes Area, Speed, Volume. * s-dmotpr.ads: Turn off the warnings for dimensioned object declaration. * sem_res.adb (Resolve_Call): Analyze dimension for calls. 2012-10-01 Thomas Quinot <quinot@adacore.com> * Make-generated.in: Minor cleanup of all targets: use MOVE_IF_CHANGE to put generated files in place, to avoid useless recompilations. 2012-10-01 Javier Miranda <miranda@adacore.com> * exp_disp.adb (Expand_Dispatching_Call): For functions returning interface types add an implicit conversion to the returned object to force the displacement of the pointer to the returned object to reference the corresponding secondary dispatch table. This is needed to handle well combined calls involving secondary dispatch tables (for example Obj.Prim1.Prim2). * exp_ch4.adb (Expand_Allocator_Expression): Declare internal access type as access to constant or access to variable depending on the context. Found working in this ticket. 2012-10-01 Ed Schonberg <schonberg@adacore.com> * checks.adb (Apply_Predicate_Check): Do not apply check to actual of predicate checking procedure, to prevent infinite recursion. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191910 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/Make-lang.in: Update dependencies.charlet2012-10-012-2/+7
| | | | | | | (GCC_LINK): Add -static-libstdc++. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191908 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (gigi): Adjust previous change to avoid acharlet2012-10-011-2/+4
| | | | | | | typecast that discards a const qualifier. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191907 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Arnaud Charlet <charlet@adacore.com>charlet2012-10-0184-823/+717
| | | | | | | | | | | | | | | | | | | | | | | | | | | * a-catizo.adb, a-stwiun.adb, a-cdlili.adb, a-cihama.adb, a-direct.adb, a-coinve.adb, a-calend.adb, a-ciorse.adb, a-coorma.adb, a-cfdlli.adb, a-stzunb-shared.adb, a-cfhase.adb, bindgen.adb, ceinfo.adb, a-tags.adb, einfo.adb, checks.adb, eval_fat.adb, a-cborma.adb, a-stwifi.adb, a-tifiio.adb, a-textio.adb, a-cidlli.adb, a-strunb-shared.adb, a-cimutr.adb, a-calcon.adb, a-exexpr-gcc.adb, a-ciormu.adb, a-stzunb.adb, a-stzsea.adb, a-ngelfu.adb, a-stzfix.adb, a-cihase.adb, a-cohama.adb, a-exetim-posix.adb, a-dirval-vms.adb, a-caldel-vms.adb, a-coorse.adb, errout.adb, a-except.adb, butil.adb, a-dirval-mingw.adb, a-cforma.adb, a-except-2005.adb, a-wtedit.adb, cstand.adb, a-stwiun-shared.adb, a-cbhama.adb, a-direio.adb, clean.adb, a-cborse.adb, back_end.adb, binde.adb, a-exexda.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb, a-coormu.adb, a-teioed.adb, a-convec.adb, a-wtenau.adb, exp_aggr.adb, a-ztedit.adb, a-cohase.adb, a-exetim-mingw.adb, bcheck.adb, a-dynpri.adb, a-cfhama.adb, a-calfor.adb, a-cbdlli.adb, a-crdlli.adb, a-cbmutr.adb, a-sequio.adb, a-ngcoar.adb, a-cforse.adb, a-strunb.adb, a-calend-vms.adb, a-clrefi.adb, a-cofove.adb, a-ztenau.adb, a-strfix.adb, a-cbhase.adb, a-stzsup.adb: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191905 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Vincent Pucci <pucci@adacore.com>charlet2012-10-0121-220/+571
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * s-gearop.adb (Vector_Matrix_Product): Dimensions check fixed. Index of Left in S evaluation fixed. 2012-10-01 Javier Miranda <miranda@adacore.com> * sem_ch3.adb (Analyze_Declarations): Avoid premature freezing caused by the internally generated subprogram _postconditions. * checks.adb (Expr_Known_Valid): Float literals are assumed to be valid in VM targets. 2012-10-01 Thomas Quinot <quinot@adacore.com> * sinput.ads, sinput.adb, sinput-l.adb sinput-c.adb (Sinput): New Instances table, tracking all generic instantiations. Source file attribute Instance replaces previous Instantiation attribute with an index into the Instances table. (Iterate_On_Instances): New generic procedure. (Create_Instantiation_Source): Record instantiations in Instances. (Tree_Read, Tree_Write): Read/write the instance table. * scils.ads, scos.adb (SCO_Instance_Table): New table, contains information copied from Sinput.Instance_Table, but self-contained within the SCO data structures. * par_sco.ads, par_sco.adb (To_Source_Location): Move to library level. (Record_Instance): New subprogram, used by... (Populate_SCO_Instance_Table): New subprogram to fill the SCO instance table from the Sinput one (called by SCO_Output). * opt.ads (Generate_SCO_Instance_Table): New option. * put_scos.adb (Write_Instance_Table): New subprogram, used by... (Put_SCOs): Dump the instance table at the end of SCO information if requested. * get_scos.adb (Get_SCOs): Read SCO_Instance_Table. * types.h: Add declaration for Instance_Id. * back_end.adb (Call_Back_End): Pass instance ids in source file information table. (Scan_Back_End_Switches): -fdebug-instances sets Opt.Generate_SCO_Instance_Table. * gcc-interface/gigi.h: File_Info_Type includes instance id. * gcc-interface/trans.c: Under -fdebug-instances, set instance id in line map from same in file info. 2012-10-01 Thomas Quinot <quinot@adacore.com> * sem_elab.adb: Minor reformatting (Check_Elab_Call): Minor fix to debugging code (add special circuit for the valid case where a 'Access attribute reference is passed to Check_Elab_Call). 2012-10-01 Thomas Quinot <quinot@adacore.com> * exp_ch3.adb: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191904 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Ed Schonberg <schonberg@adacore.com>charlet2012-10-0111-95/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * exp_ch3.ads (Build_Array_Invariant_Proc): moved to body. * exp_ch3.adb (Build_Array_Invariant_Proc, Build_Record_Invariant_Proc): transform into functions. (Insert_Component_Invariant_Checks): for composite types that have components with specified invariants, build a checking procedure, and make into the invariant procedure of the composite type, or incorporate it into the user- defined invariant procedure if one has been created. * sem_ch3.adb (Array_Type_Declaration): Checking for invariants on the component type is defered to the expander. 2012-10-01 Thomas Quinot <quinot@adacore.com> * xsnamest.adb, namet.h, sem_ch10.adb, s-oscons-tmplt.c, xoscons.adb: Minor reformatting. 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Apply_Parameter_Aliasing_And_Validity_Checks): Do not process subprogram renaminds because a) those cannot have PPC pragmas b) the renamed entity already has the PPCs. (Build_PPC_Pragma): Prepend a PPC pragma for consistency with Process_PPCs. * sem_ch6.adb (Last_Implicit_Declaration): Removed. (Process_PPCs): Insert a post condition body at the start of the declarative region of the related subprogram. This way the body will not freeze anything it shouldn't. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191903 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Robert Dewar <dewar@adacore.com>charlet2012-10-017-29/+63
| | | | | | | | | | | | | | * freeze.adb, sem_ch6.adb, opt.ads, sem_ch13.adb, exp_ch3.adb: Minor reformatting. 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Build_PPC_Pragma): A PPC pragma can now be properly associated with a subprogram body. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191902 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Ed Schonberg <schonberg@adacore.com>charlet2012-10-015-9/+218
| | | | | | | | | | | | | | | | | | | | * aspects.ads: Type_Invariant'class is a valid aspect. * sem_ch6.adb (Is_Public_Subprogram_For): with the exception of initialization procedures, subprograms that do not come from source are not public for the purpose of invariant checking. * sem_ch13.adb (Build_Invariant_Procedure): Handle properly the case of a non-private type in a package without a private part, when the type inherits invariants from its ancestor. 2012-10-01 Ed Schonberg <schonberg@adacore.com> * exp_ch3.adb (Build_Record_Invariant_Proc): new procedure to generate a checking procedure for record types that may have components whose types have type invariants declared. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191901 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Vincent Pucci <pucci@adacore.com>charlet2012-10-0117-426/+309
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * system-solaris-sparcv9.ads, system-mingw.ads, system-vms_64.ads: Flag Support_Atomic_Primitives set to True. 2012-10-01 Robert Dewar <dewar@adacore.com> * impunit.adb: Ada.Locales is a language defined unit. 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Apply_Parameter_Aliasing_Checks): Removed. (Apply_Parameter_Aliasing_And_Validity_Checks): New routine. (Apply_Parameter_Validity_Checks): Removed. * checks.ads (Apply_Parameter_Aliasing_Checks): Removed. (Apply_Parameter_Aliasing_And_Validity_Checks): New routine. (Apply_Parameter_Validity_Checks): Removed. * exp_ch6.adb (Expand_Call): Remove the generation of parameter aliasing checks. * freeze.adb: Remove with and use clauses for Validsw. (Freeze_Entity): Update the guard and generation of aliasing and scalar initialization checks for subprogram parameters. * opt.ads: Add new flags Check_Aliasing_Of_Parameters and Check_Validity_Of_Parameters along with comments on usage. * sem_attr.adb (Analyze_Attribute): Pragma Overlaps_Storage is no longer an Ada 2012 feature. * sem_ch4.adb: Remove with and use clauses for Checks and Validsw. (Analyze_Call): Remove the generation of aliasing checks for subprogram parameters. * sem_ch13.adb: Remove with and use clauses for Validsw. (Analyze_Aspect_Specifications): Remove the generation of scalar initialization checks. * switch-c.adb (Scan_Front_End_Switches): Add processing for -gnateA and -gnateV. * usage.adb (Usage): Add information on switches -gnateA and -gnateV. Remove information on validity switches 'l', 'L', 'v' and 'V'. * validsw.adb (Reset_Validity_Check_Options): Remove the reset of flags Validity_Check_Non_Overlapping_Params and Validity_Check_Valid_Scalars_On_Params. (Save_Validity_Check_Options): Remove the processing for flags Validity_Check_Non_Overlapping_Params and Validity_Check_Valid_Scalars_On_Params. (Set_Validity_Check_Options): Remove the processing for flags Validity_Check_Non_Overlapping_Params and Validity_Check_Valid_Scalars_On_Params. * validsw.ads: Remove flags Validity_Check_Non_Overlapping_Params and Validity_Check_Valid_Scalars_On_Params along with their comments on usage. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191900 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Yannick Moy <moy@adacore.com>charlet2012-10-015-15/+40
| | | | | | | | | | | | | | | | * sem_ch13.adb (Add_Invariants): Analyze the invariant expression as an assertion expression. * sem_ch3.adb / sem_ch3.ads (Preanalyze_Assert_Expression): New procedure that wraps a call to Preanalyze_Spec_Expression for assertion expressions, so that In_Assertion_Expr can be properly adjusted. * sem_prag.adb (Analyze_PPC_In_Decl_Part Check_Precondition_Postcondition Preanalyze_CTC_Args): Call the new Preanalyze_Assert_Expression. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191898 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Robert Dewar <dewar@adacore.com>charlet2012-10-015-25/+33
| | | | | | | | | | | | * checks.ads: Minor reformatting. 2012-10-01 Yannick Moy <moy@adacore.com> * types.ads, sem_prag.adb, sem.ads: Correct minor typos in comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191897 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Vincent Celier <celier@adacore.com>charlet2012-10-0119-136/+372
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * make.adb (Scan_Make_Arg): Only test for "vP" of the option includes at least 3 characters. * gnatcmd.adb (GNATCmd): Ditto. 2012-10-01 Eric Botcazou <ebotcazou@adacore.com> * exp_ch7.adb, sinfo.ads: Add comments. 2012-10-01 Robert Dewar <dewar@adacore.com> * checks.adb: Remove reference to Enable_Overflow_Checks Use Suppress_Options rather than Scope_Suppress. * gnat1drv.adb (Adjust_Global_Switches): Handle new overflow settings (Adjust_Global_Switches): Initialize Scope_Suppress from Suppress_Options. * opt.adb: Remove Enable_Overflow_Checks (use Suppress_Options instead). * opt.ads: Remove Overflow_Checks_Unsuppressed (not used) Remove Enable_Overflow_Checks (use Suppress_Options instead) Suppress_Options is now current setting (replaces Scope_Suppress). * osint.adb (Initialize): Deal with initializing overflow checking. * par-prag.adb: Add dummy entry for pragma Overflow_Checks. * sem.adb (Semantics): Save and restore In_Assertion_Expr Use Suppress_Options instead of Scope_Suppress. * sem.ads (In_Assertion_Expr): New flag (Scope_Suppress): Removed, use Suppress_Options instead. * sem_eval.adb (Compile_Time_Compare): Return Unknown in preanalysis mode. * sem_prag.adb (Process_Suppress_Unsuppress): Setting of Overflow_Checks_Unsuppressed removed (not used anywhere!) (Analyze_Pragma, case Check): Set In_Assertion_Expression (Analyze_Pragma, case Overflow_Checks): Implement new pragma * snames.ads-tmpl: Add names needed for handling pragma Overflow_Checks * switch-c.adb (Scan_Front_End_Switches) Handle -gnato? and -gnato?? where ? is 0-3 * types.ads: Updates and fixes to comment on Suppress_Record. 2012-10-01 Vincent Celier <celier@adacore.com> * prj-part.adb (Parse): Remove incorrect comment about checking imported non extending projects from and "extending all" one. Minor correction. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191895 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Robert Dewar <dewar@adacore.com>charlet2012-10-0110-19/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * make.adb, exp_ch3.adb: Minor reformatting. 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> * validsw.adb (Save_Validity_Check_Options): Do not set Validity_Check_Non_Overlapping_Params and Validity_Check_Valid_Scalars_On_Params when -gnatVa is present because the related checks are deemed too aggressive. 2012-10-01 Ed Schonberg <schonberg@adacore.com> * sem_util.ads sem_util.adb (Check_Internal_Protected_Use): reject use of protected procedure or entry within the body of a protected function of the same protected type, when usage is a call, an actual in an instantiation, a or prefix of 'Access. * sem_ch8.adb (Analyze_Subprogram_Renaming): Verify that target object in renaming of protected procedure is a variable, and apply Check_Internal_Protected_Use. * sem_res.adb (Analyze_Call, Analyze_Entry_Call): apply Check_Internal_Protected_Use rather than on-line code. * sem_attr.adb (Analyze_Access_Attribute): Verify that target object in accsss to protected procedure is a variable, and apply Check_Internal_Protected_Use. 2012-10-01 Gary Dismukes <dismukes@adacore.com> * sem_ch4.adb (Find_Equality_Types.Try_One_Interp): Exclude the predefined interpretation from consideration if it's for a "/=" operator of a tagged type. This will allow Analyze_Equality_Op to rewrite the "/=" as a logical negation of a call to the appropriate dispatching equality function. This needs to be done during analysis rather than expansion for the benefit of ASIS, which otherwise gets the unresolved N_Op_Ne operator from Standard. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191894 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Thomas Quinot <quinot@adacore.com>charlet2012-10-016-51/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnatcmd.adb, make.adb (Scan_Make_Arg, Inspect_Switches): Recognize and reject an invalid parameter passed to -vP. 2012-10-01 Yannick Moy <moy@adacore.com> * sem_warn.adb (Check_Infinite_Loop_Warning/Test_Ref): Improve the detection of modifications to the loop variable by noting that, if the type of variable is elementary and the condition does not contain a function call, then the condition cannot be modified by side-effects from a procedure call. 2012-10-01 Robert Dewar <dewar@adacore.com> * checks.adb: Add comments. 2012-10-01 Javier Miranda <miranda@adacore.com> * exp_ch3.adb (Expand_N_Object_Declaration): Improve condition catching never-ending recursion. The previous condition erroneously disabled silently the expansion of the class-wide interface object initialization in cases not involving the recursion. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191892 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Thomas Quinot <quinot@adacore.com>charlet2012-10-0119-77/+569
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * make.adb: Minor documentation fix: error messages are sent to stderr, not stdout. 2012-10-01 Hristian Kirtchev <kirtchev@adacore.com> * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine. (Apply_Parameter_Validity_Checks): New routines. * exp_ch6.adb (Expand_Call): Add aliasing checks to detect overlapping objects. * freeze.adb: Add with and use clauses for Checks and Validsw. (Freeze_Entity): Add checks to detect proper initialization of scalars. * sem_ch4.adb: Add with and use clauses for Checks and Validsw. (Analyze_Call): Add aliasing checks to detect overlapping objects. * sem_ch13.adb: Add with and use clauses for Validsw. (Analyze_Aspect_Specifications): Add checks to detect proper initialization of scalars. * sem_prag.adb (Chain_PPC): Correct the extraction of the subprogram name. * sem_util.adb (Is_Object_Reference): Attribute 'Result now produces an object. * usage.adb (Usage): Add usage lines for validity switches 'l', 'L', 'v' and 'V'. * validsw.adb (Reset_Validity_Check_Options): Include processing for flags Validity_Check_Non_Overlapping_Params and Validity_Check_Valid_Scalars_On_Params. Code reformatting. (Save_Validity_Check_Options): Include processing for flags Validity_Check_Non_Overlapping_Params and Validity_Check_Valid_Scalars_On_Params. (Set_Validity_Check_Options): Add processing for validity switches 'a', 'l', 'L', 'n', 'v' and 'V'. Code reformatting. * validsw.ads: Add new flags Validity_Check_Non_Overlapping_Params and Validity_Check_Valid_Scalars_On_Params along with comments on usage. 2012-10-01 Thomas Quinot <quinot@adacore.com> * namet.ads, xsnamest.adb, prj-env.adb, sem_warn.adb, errout.ads: Minor reformatting. * prj-part.adb: Add comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191890 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-01 Robert Dewar <dewar@adacore.com>charlet2012-10-017-20/+108
| | | | | | | | | | | | | | | | | | | | | | | | | * sinfo.ads, exp_aggr.adb, sem_ch13.adb: Minor reformatting. 2012-10-01 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb (Resolve_Array_Aggregate): Handle properly component associations given by subtypes that have static predicates. Improve error message for overlapping ranges in array aggregates. 2012-10-01 Pascal Obry <obry@adacore.com> * snames.ads-tmpl (Name_Link_Lib_Subdir): New constant. 2012-10-01 Ed Schonberg <schonberg@adacore.com> * sem_ch9.adb (Analyze_Requeue): The target of a requeue statement on a protected entry must be a variable. This is part of AI05-0225. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191889 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/Makefile.in (LIBBACKTRACE): New variable.ian2012-09-272-3/+15
| | | | | | | | | (LIBS): Add $(LIBBACKTRACE). (LIBDEPS): Add $(LIBBACKTRACE). (TOOLS_LIBS): Add ../../../libbacktrace/.libs/libbacktrace.a. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191793 138bc75d-0d04-0410-961f-82ee72b054a4
* Add missing entry for r191165ebotcazou2012-09-111-0/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191201 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove unnecessary VEC function overloads.dnovillo2012-09-112-16/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several VEC member functions that accept an element 'T' used to have two overloads: one taking 'T', the second taking 'T *'. This used to be needed because of the interface dichotomy between vectors of objects and vectors of pointers. In the past, vectors of pointers would use pass-by-value semantics, but vectors of objects would use pass-by-reference semantics. This is no longer necessary, but the distinction had remained. The main side-effect of this change is some code reduction in code that manipulates vectors of objects. For instance, - struct iterator_use *iuse; - - iuse = VEC_safe_push (iterator_use, heap, iterator_uses, NULL); - iuse->iterator = iterator; - iuse->ptr = ptr; + struct iterator_use iuse = {iterator, ptr}; + VEC_safe_push (iterator_use, heap, iterator_uses, iuse); Compile time performance was not affected. Tested on x86_64 and ppc64. Also built all-gcc on all targets using VEC routines: arm, bfin, c6x, epiphany, ia64, mips, sh, spu, and vms. 2012-09-10 Diego Novillo <dnovillo@google.com> * vec.h (vec_t::quick_push): Remove overload that accepts 'T *'. Update all users. (vec_t::safe_push): Likewise. (vec_t::quick_insert): Likewise. (vec_t::lower_bound): Likewise. (vec_t::safe_insert): Likewise. (vec_t::replace): Change second argument to 'T &'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191165 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (Loop_Statement_to_gnu): Revert to usingebotcazou2012-09-072-3/+9
| | | | | | | size_type_node instead of sizetype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191069 138bc75d-0d04-0410-961f-82ee72b054a4
* * layout.adb (Set_Elem_Alignment): Cap the alignment of access typesebotcazou2012-08-193-1/+22
| | | | | | | | | to that of a regular access type for non-strict-alignment platforms. * gcc-interface/utils.c (finish_fat_pointer_type): Do not set the alignment for non-strict-alignment platforms. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190515 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Use properebotcazou2012-08-192-2/+9
| | | | | | | | dummy type for the temporary COMPONENT_REF built for a derived tagged type with discriminant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190514 138bc75d-0d04-0410-961f-82ee72b054a4
* Add missing entry for merge from cxx-conversion branch.ebotcazou2012-08-151-1/+12
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190419 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge from cxx-conversion branch (http://gcc.gnu.org/wiki/cxx-conversion).dnovillo2012-08-153-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html, this patch changes the default bootstrap process so that stage 1 always builds with a C++ compiler. Other than the bootstrap change, the patch makes no functional changes to the compiler. Everything should build as it does now in trunk. The main changes in this patch are: 1- Configuration changes. 2- Re-write of VEC. 3- Re-write of gengtype to support C++ templates and user-provided marking functions. 4- New hash table class. 5- Re-write double_int. 6- Implement tree macros as inline functions so they can be called from gdb. As discussed before, several of these changes do not fully change the call sites to use the new APIs. The bootstrap changes have already been tested on a wide range of targets (http://gcc.gnu.org/wiki/CppBuildStatus). Additionally, I have tested the merged trunk on: x86_64-unknown-linux-gnu, mips64el-unknown-linux-gnu, powerpc64-unknown-linux-gnu, i686-pc-linux-gnu, and ia64-unknown-linux-gnu. ChangeLog 2012-08-14 Diego Novillo <dnovillo@google.com> Merge from cxx-conversion branch. * Makefile.tpl (STAGE[+id+]_CXXFLAGS): Remove POSTSTAGE1_CONFIGURE_FLAGS. * Makefile.in: Regenerate. * configure.ac (ENABLE_BUILD_WITH_CXX): Remove. Update all users. Force C++ when bootstrapping. * configure: Regenerate. libcpp/ChangeLog 2012-08-14 Diego Novillo <dnovillo@google.com> Merge from cxx-conversion branch. Configury. * Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX. * configure.ac: Likewise. * configure: Regenerate. 2012-08-14 Lawrence Crowl <crowl@google.com> Merge from cxx-conversion branch. New C++ hash table. * include/symtab.h (typedef struct ht hash_table): Change the typedef name to cpp_hash_table. Update all users of the typedef. gcc/ChangeLog 2012-08-14 Diego Novillo <dnovillo@google.com> Merge from cxx-conversion branch. Configury. * configure.ac (CXX_FOR_BUILD): Define and substitute. (BUILD_CXXFLAGS): Define. Remove all handlers of ENABLE_BUILD_WITH_CXX. Force all build to be with C++. * Makefile.in (BUILD_CXXFLAGS): Use it. Remove all handlers of ENABLE_BUILD_WITH_CXX. * configure: Regenerate. * config.in: Regenerate. * doc/install.texi: Remove documentation for --enable-build-with-cxx and --enable-build-poststage1-with-cxx. 2012-08-14 Diego Novillo <dnovillo@google.com> Merge from cxx-conversion branch. Re-implement VEC in C++. * vec.c (vec_heap_free): Convert into a template function. (vec_gc_o_reserve_1): Make extern. (vec_gc_p_reserve): Remove. (vec_gc_p_reserve_exact): Remove. (vec_gc_o_reserve): Remove. (vec_gc_o_reserve_exact): Remove. (vec_heap_o_reserve_1): Make extern. (vec_heap_p_reserve): Remove. (vec_heap_p_reserve_exact): Remove. (vec_heap_o_reserve): Remove. (vec_heap_o_reserve_exact): Remove. (vec_stack_p_reserve): Remove. (vec_stack_p_reserve_exact): Remove. * vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS, VEC_ASSERT, VEC_ASSERT_FAIL, vec_assert_fail): Move earlier in the file. (VEC): Define to vec_t<T>. (vec_allocation_t): Define. (struct vec_prefix): Move earlier in the file. (vec_t<T>): New template. (DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O, DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'. (DEF_VEC_A): Provide template instantiations for GC/PCH markers that do not traverse the vector. (vec_stack_p_reserve): Remove. (vec_stack_p_reserve_exact): Remove. (vec_stack_p_reserve_exact_1): Remove. (vec_stack_o_reserve): Remove. (vec_stack_o_reserve_exact): Remove. (vec_stack_free): Re-write as a template function. (vec_reserve): New template function. (vec_reserve_exact): New template function. (vec_heap_free): New template function if GATHER_STATISTICS is defined. Otherwise, macro that expands to free(). (VEC_length_1): New template function. (VEC_length): Call it. (VEC_empty_1): New template function. (VEC_empty): Call it. (VEC_address_1): New template function. (VEC_address): Call it. (VEC_last_1): New template function. (VEC_last): Call it. Change return type to T&. Change all users that used VEC_Os. (VEC_index_1): New template function. (VEC_index): Call it. Return a T& instead of a T*. Update all callers that were using VEC_O before. (VEC_iterate_1): New template function. (VEC_iterate): Call it. (VEC_embedded_size_1): New template function. (VEC_embedded_size): Call it. (VEC_embedded_init_1): New template function. (VEC_embedded_init): Call it. (VEC_alloc_1): New template function. (VEC_alloc): Call it. If A is 'stack', call XALLOCAVAR to do the allocation. (VEC_free_1): New template function. (VEC_free): Call it. (VEC_copy_1): New template function. (VEC_copy): Call it. (VEC_space_1): New template function (VEC_space): Call it. (VEC_reserve_1): New template function. (VEC_reserve): Call it. (VEC_reserve_exact_1): New template function. (VEC_reserve_exact): Call it. (VEC_splice_1): New template function. (VEC_splice): Call it. (VEC_safe_splice_1): New template function. (VEC_safe_splice): Call it. (VEC_quick_push_1): New template function. Create two overloads, one accepting T, the other accepting T *. Update all callers where T and T * are ambiguous. (VEC_quick_push): Call it. (VEC_safe_push_1): New template function. Create two overloads, one accepting T, the other accepting T *. Update all callers where T and T * are ambiguous. (VEC_safe_push): Call it. (VEC_pop_1): New template function. (VEC_pop): Call it. (VEC_truncate_1): New template function. (VEC_truncate): Call it. (VEC_safe_grow_1): New template function. (VEC_safe_grow): Call it. (VEC_safe_grow_cleared_1): New template function. (VEC_safe_grow_cleared): Call it. (VEC_replace_1): New template function. (VEC_replace): Call it. Always accept T instead of T*. Update all callers that used VEC_Os. (VEC_quick_insert_1): New template function. (VEC_quick_insert): Call it. (VEC_safe_insert_1): New template function. (VEC_safe_insert): Call it. (VEC_ordered_remove_1): New template function. (VEC_ordered_remove): Call it. (VEC_unordered_remove_1): New template function. (VEC_unordered_remove): Call it. (VEC_block_remove_1): New template function. (VEC_block_remove): Call it. (VEC_lower_bound_1): New template function. (VEC_lower_bound): Call it. (VEC_OP): Remove. (DEF_VEC_FUNC_P): Remove. (DEF_VEC_ALLOC_FUNC_P): Remove. (DEF_VEC_NONALLOC_FUNCS_P): Remove. (DEF_VEC_FUNC_O): Remove. (DEF_VEC_ALLOC_FUNC_O): Remove. (DEF_VEC_NONALLOC_FUNCS_O): Remove. (DEF_VEC_ALLOC_FUNC_I): Remove. (DEF_VEC_NONALLOC_FUNCS_I): Remove. (DEF_VEC_ALLOC_FUNC_P_STACK): Remove. (DEF_VEC_ALLOC_FUNC_O_STACK): Remove. (DEF_VEC_ALLOC_FUNC_I_STACK): Remove. (vec_reserve_exact): New template function. * gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove. * gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP]. (typedef_name): Emit vec_t<C1> instead of VEC_C1_C2. (def_vec_alloc): Remove. Update all callers. * gengtype.c (filter_type_name): New. (output_mangled_typename): Call it. (write_func_for_structure): Likewise. (write_types): Likewise. (write_root): Likewise. (write_typed_alloc_def): Likewise. (note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base. (note_def_vec_alloc): Remove. * gengtype.h (note_def_vec_alloc): Remove. (DEFVEC_ALLOC): Remove token code. * df-scan.c (df_bb_verify): Remove call to df_free_collection_rec inside the insn traversal loop. * gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK. * ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP. * reg-stack.c (stack): Rename to STACK_PTR. Update all users. * tree-vrp.c (stack): Rename to EQUIV_STACK. Update all users. * config/bfin/bfin.c (hwloop_optimize): Update some calls to VEC_* for vectors of non-pointers. * config/c6x/c6x.c (try_rename_operands): Likewise. (reshuffle_units): Likewise. * config/mips/mips.c (mips_multi_start): Likewise. (mips_multi_add): Likewise. (mips_multi_copy_insn): Likewise. (mips_multi_set_operand): Likewise. * hw-doloop.c (discover_loop): Likewise. (discover_loops): Likewise. (reorg_loops): Likewise. 2012-08-14 Diego Novillo <dnovillo@google.com> Merge from cxx-conversion branch. C++ support in gengtype. * coretypes.h (gt_pointer_operator): Move from ... * ggc.h: ... here. * doc/gty.texi: Document support for C++ templates and user-provided markers. * gcc/gengtype-lex.l: Update copyright year. Remove support for recognizing DEF_VEC_O, DEF_VEC_P and DEFVEC_I. * gengtype-parse.c: Update copyright year. (token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I. (require_template_declaration): New. (typedef_name): Call it. (type): Replace IS_UNION with KIND. Replace all users. (def_vec): Remove. Update all users. * gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT. (write_state_user_struct_type): New. (write_state_type): Call it. (read_state_user_struct_type): New. (read_state_type): Call it. * gengtype.c: Update copyright year. (dump_pair): Move declaration to the top. (dump_type): Likewise. (dump_type_list): Likewise. (dbgprint_count_type_at): Handle TYPE_USER_STRUCT. (create_user_defined_type): New. (resolve_typedef): Call it. (new_structure): Replace argument ISUNION with KIND. Change users to refer to KIND directly. Update all callers. (find_structure): Likewise. (set_gc_used_type): Handle TYPE_USER_STRUCT. (create_file): Update HDR to include new copyright year. (struct walk_type_data): Add field IN_PTR_FIELD. (output_mangled_typename): Handle TYPE_USER_STRUCT. (walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER. Clear it afterwards. Handle TYPE_USER_STRUCT. (write_types_process_field): Handle TYPE_USER_STRUCT. (get_type_specifier): Move earlier in the file. (write_type_decl): New. (write_marker_function_name): New. (write_user_func_for_structure_ptr): New. (write_user_func_for_structure_body): New. (write_user_marking_functions): New. (write_func_for_structure): Call write_marker_function_name and write_type_decl. Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user function directly. Call write_user_marking_functions on TYPE_USER_STRUCTs. (write_types_local_user_process_field): New. (write_pch_user_walking_for_structure_body): New. (write_pch_user_walking_functions): New. (write_types_local_process_field): Handle TYPE_USER_STRUCT. (write_local_func_for_structure): Do not call walk_type for TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly. Call write_pch_user_walking_functions for TYPE_USER_STRUCTs. (write_root): Handle TYPE_USER_STRUCT. (vec_prefix_type): Remove. Update all users. (note_def_vec): Remove. Update all users. (dump_typekind): Handle TYPE_USER_STRUCT. (dump_type): Initialize SEEN_TYPES, if needed. Handle TYPE_USER_STRUCT. (dump_everything): Do not initialize SEEN_TYPES. * gengtype.h: Update copyright year. (enum typekind): Add TYPE_USER_STRUCT. (union_or_struct_p): Rename from UNION_OR_STRUCT_P. Convert into function. Add an overload taking const_type_p. Update all callers. (new_structure): Change second field to type enum typekind. Update all users. (find_structure): Likewise. (note_def_vec): Remove. (DEFVEC_OP): Remove. (DEFVEC_I): Remove. * ggc-page.c (gt_ggc_mx): Add entry points for marking 'const char *&', 'unsigned char *&' and 'unsigned char&'. * ggc-zone.c (gt_ggc_mx): Add entry points for marking 'const char *&' and 'unsigned char *&'. * stringpool.c (gt_pch_nx): Add entry points for marking 'const char *&', 'unsigned char *&' and 'unsigned char&'. Add an entry point for the overload taking arguments 'unsigned char *', 'gt_pointer_operator' and 'void *'. * vec.h (struct vec_prefix): Remove GTY marker. (struct vec_t): Remove GTY((length)) attribute from field 'vec'. (gt_ggc_mx (vec_t<T> *)): New template function. (gt_pch_nx (vec_t<T> *)): New template function. (gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template function. (gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template function. * basic-block.h (struct edge_def): Mark GTY((user)). Remove all GTY markers from fields. (gt_ggc_mx): Declare. (gt_pch_nx): Declare. * tree-cfg.c (gt_ggc_mx): New. (gt_pch_nx): New. * gengtype-lex.l (USER_GTY): Add pattern for "user". * gengtype-parse.c (option): Handle USER_GTY. (opts_have): New. (type): Call it. If the keyword 'user' is used, do not walk the fields of the structure. * gengtype.h (USER_GTY): Add. * doc/gty.texi: Update. 2012-08-14 Lawrence Crowl <crowl@google.com> Merge cxx-conversion branch. Implement C++ hash table. * hash-table.h: New. Implementation borrowed from libiberty/hashtab.c. * hash-table.c: Likewise. * tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h. (static htab_t same_succ_htab): Change type to hash_table; move specification of helper functions from create call to declaration. Change users to invoke member functions. (same_succ_print_traverse): Make extern ssa_.... Change callers. Remove void* casting. (same_succ_hash): Likewise. (same_succ_equal): Likewise. (same_succ_delete): Likewise. * tree-ssa-threadupdate.c: Include hash-table.h. (struct local_info): Rename to ssa_local_info_t to avoid overloading the type name local_info with the variable name local_info. (static htab_t redirection_data): Change type to hash_table. Move specification of helper functions from create call to declaration. Change users to invoke member functions. (redirection_data_hash): Make extern ssa_.... Change callers. Remove void* casting. (redirection_data_eq): Likewise. (fix_duplicate_block_edges): Likewise. (create_duplicates): Likewise. (fixup_template_block): Likewise. (redirect_edges): Likewise. (lookup_redirection_data): Change types associated with the hash table from void* to their actual type. Remove unnecessary casts. * tree-ssa-ccp.c: Include hash-table.h. (typedef gimple_htab): New. Uses hash_table. Replace specific uses of htab_t with gimple_htab. Change users to invoke member functions. Move specification of helper functions from create call to declaration. * tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h. (hash_ssa_name_by_var): Make extern. Remove void* casting. (eq_ssa_name_by_var): Likewise. (coalesce_ssa_name): Change type of local static htab_t ssa_name_hash to hash_table. Change users to invoke member functions. Move specification of helper functions from create call to declaration. * coverage.c: Include hash-table.h instead of hashtab.h. (static htab_t counts_hash): Change type to hash_table; move specification of helper functions from create call to declaration. Change users to invoke member functions. (htab_counts_entry_hash): Make extern. Rename with coverage_... instead of htab_... Remove void* casting. (htab_counts_entry_eq): Likewise. (htab_counts_entry_del): Likewise. * tree-ssa-pre.c: Include hash-table.h instead of hashtab.h. (static htab_t expression_to_id): Change type to hash_table. Move specification of helper functions from create call to declaration. Change users to invoke member functions. (static htab_t phi_translate_table): Likewise. (pre_expr_eq): Make extern ssa_.... Change callers. Remove void* casting. (pre_expr_hash): Likewise. (expr_pred_trans_hash): Likewise. (expr_pred_trans_eq): Likewise. (alloc_expression_id): Change types associated with the hash table from void* to their actual type. Remove unnecessary casts. (lookup_expression_id): Likewise. (phi_trans_lookup): Likewise. (phi_trans_add): Likewise. * stringpool.c: Rename uses of libcpp typedef hash_table to cpp_hash_table. * Makefile.in: Add hash-table.o to OBJS-libcommon-target. Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H). 2012-08-14 Lawrence Crowl <crowl@google.com> Merge from cxx-conversion branch. Re-write double_int in C++. * hash-table.h (typedef double_int): Change to struct (POD). (double_int::make): New overloads for int to double-int conversion. (double_int::mask): New. (double_int::max_value): New. (double_int::min_value): New. (double_int::operator ++): New. (double_int::operator --): New. (double_int::operator *=): New. (double_int::operator +=): New. (double_int::operator -=): New. (double_int::to_signed): New. (double_int::to_unsigned): New. (double_int::fits_unsigned): New. (double_int::fits_signed): New. (double_int::fits): New. (double_int::trailing_zeros): New. (double_int::popcount): New. (double_int::multiple_of): New. (double_int::set_bit): New. (double_int::mul_with_sign): New. (double_int::operator * (binary)): New. (double_int::operator + (binary)): New. (double_int::operator - (binary)): New. (double_int::operator - (unary)): New. (double_int::operator ~ (unary)): New. (double_int::operator & (binary)): New. (double_int::operator | (binary)): New. (double_int::operator ^ (binary)): New. (double_int::and_not): New. (double_int::lshift): New. (double_int::rshift): New. (double_int::alshift): New. (double_int::arshift): New. (double_int::llshift): New. (double_int::lrshift): New. (double_int::lrotate): New. (double_int::rrotate): New. (double_int::div): New. (double_int::sdiv): New. (double_int::udiv): New. (double_int::mod): New. (double_int::smod): New. (double_int::umod): New. (double_int::divmod): New. (double_int::sdivmod): New. (double_int::udivmod): New. (double_int::ext): New. (double_int::zext): New. (double_int::sext): New. (double_int::is_zero): New. (double_int::is_one): New. (double_int::is_minus_one): New. (double_int::is_negative): New. (double_int::cmp): New. (double_int::ucmp): New. (double_int::scmp): New. (double_int::ult): New. (double_int::ugt): New. (double_int::slt): New. (double_int::sgt): New. (double_int::max): New. (double_int::smax): New. (double_int::umax): New. (double_int::min): New. (double_int::smin): New. (double_int::umin): New. (double_int::operator ==): New. (double_int::operator !=): New. (shwi_to_double_int): Change implementation to use member function. (double_int_minus_one): Likewise. (double_int_zero): Likewise. (double_int_one): Likewise. (double_int_two): Likewise. (double_int_ten): Likewise. (uhwi_to_double_int): Likewise. (double_int_to_shwi): Likewise. (double_int_to_uhwi): Likewise. (double_int_fits_in_uhwi_p): Likewise. (double_int_fits_in_shwi_p): Likewise. (double_int_fits_in_hwi_p): Likewise. (double_int_mul): Likewise. (double_int_mul_with_sign): Likewise. (double_int_add): Likewise. (double_int_sub): Likewise. (double_int_neg): Likewise. (double_int_div): Likewise. (double_int_sdiv): Likewise. (double_int_udiv): Likewise. (double_int_mod): Likewise. (double_int_smod): Likewise. (double_int_umod): Likewise. (double_int_divmod): Likewise. (double_int_sdivmod): Likewise. (double_int_udivmod): Likewise. (double_int_multiple_of): Likewise. (double_int_setbit): Likewise. (double_int_ctz): Likewise. (double_int_not): Likewise. (double_int_ior): Likewise. (double_int_and): Likewise. (double_int_and_not): Likewise. (double_int_xor): Likewise. (double_int_lshift): Likewise. (double_int_rshift): Likewise. (double_int_lrotate): Likewise. (double_int_rrotate): Likewise. (double_int_cmp): Likewise. (double_int_scmp): Likewise. (double_int_ucmp): Likewise. (double_int_max): Likewise. (double_int_smax): Likewise. (double_int_umax): Likewise. (double_int_min): Likewise. (double_int_smin): Likewise. (double_int_umin): Likewise. (double_int_ext): Likewise. (double_int_sext): Likewise. (double_int_zext): Likewise. (double_int_mask): Likewise. (double_int_max_value): Likewise. (double_int_min_value): Likewise. (double_int_zero_p): Likewise. (double_int_one_p): Likewise. (double_int_minus_one_p): Likewise. (double_int_equal_p): Likewise. (double_int_popcount): Likewise. * hash-table.c (double_int_mask): Reuse implementation for double_int::mask. (double_int_max_value): Likewise. (double_int_min_value): Likewise. (double_int_ext): Likewise. (double_int_zext): Likewise. (double_int_sext): Likewise. (double_int_mul_with_sign): Likewise. (double_int_divmod): Likewise. (double_int_sdivmod): Likewise. (double_int_udivmod): Likewise. (double_int_div): Likewise. (double_int_sdiv): Likewise. (double_int_udiv): Likewise. (double_int_mod): Likewise. (double_int_smod): Likewise. (double_int_umod): Likewise. (double_int_multiple_of): Likewise. (double_int_lshift): Likewise. (double_int_rshift): Likewise. (double_int_lrotate): Likewise. (double_int_rrotate): Likewise. (double_int_cmp): Likewise. (double_int_ucmp): Likewise. (double_int_scmp): Likewise. (double_int_max): Likewise. (double_int_smax): Likewise. (double_int_umax): Likewise. (double_int_min): Likewise. (double_int_smin): Likewise. (double_int_umin): Likewise. (double_int_min): Likewise. (double_int_min): Likewise. (double_int_min): Likewise. (double_int_min): Likewise. (double_int_min): Likewise. (double_int_min): Likewise. (double_int::alshift): New. (double_int::arshift): New. (double_int::llshift): New. (double_int::lrshift): New. (double_int::ult): New. (double_int::ugt): New. (double_int::slt): New. (double_int::sgt): New. (double_int_setbit): Reuse implementation for double_int::set_bit, which avoids a name conflict with a macro. (double_int_double_int_ctz): Reuse implementation for double_int::trailing_zeros. (double_int_fits_in_shwi_p): Reuse implementation for double_int::fits_signed. (double_int_fits_in_hwi_p): Reuse implementation for double_int::fits. (double_int_mul): Reuse implementation for binary double_int::operator *. (double_int_add): Likewise. (double_int_sub): Likewise. (double_int_neg): Reuse implementation for unary double_int::operator -. (double_int_max_value): Likewise. * fixed-value.c: Change to use member functions introduced above. 2012-08-14 Lawrence Crowl <crowl@google.com> Merge cxx-conversion branch. Support tree macro calling from gdb. * tree.h (tree_check): New. (TREE_CHECK): Use inline function above instead of __extension__. (tree_not_check): New. (TREE_NOT_CHECK): Use inline function above instead of __extension__. (tree_check2): New. (TREE_CHECK2): Use inline function above instead of __extension__. (tree_not_check2): New. (TREE_NOT_CHECK2): Use inline function above instead of __extension__. (tree_check3): New. (TREE_CHECK3): Use inline function above instead of __extension__. (tree_not_check3): New. (TREE_NOT_CHECK3): Use inline function above instead of __extension__. (tree_check4): New. (TREE_CHECK4): Use inline function above instead of __extension__. (tree_not_check4): New. (TREE_NOT_CHECK4): Use inline function above instead of __extension__. (tree_check5): New. (TREE_CHECK5): Use inline function above instead of __extension__. (tree_not_check5): New. (TREE_NOT_CHECK5): Use inline function above instead of __extension__. (contains_struct_check): New. (CONTAINS_STRUCT_CHECK): Use inline function above instead of __extension__. (tree_class_check): New. (TREE_CLASS_CHECK): Use inline function above instead of __extension__. (tree_range_check): New. (TREE_RANGE_CHECK): Use inline function above instead of __extension__. (omp_clause_subcode_check): New. (OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of __extension__. (omp_clause_range_check): New. (OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of __extension__. (expr_check): New. (EXPR_CHECK): Use inline function above instead of __extension__. (non_type_check): New. (NON_TYPE_CHECK): Use inline function above instead of __extension__. (tree_vec_elt_check): New. (TREE_VEC_ELT_CHECK): Use inline function above instead of __extension__. (omp_clause_elt_check): New. (OMP_CLAUSE_ELT_CHECK): Use inline function above instead of __extension__. (tree_operand_check): New. (TREE_OPERAND_CHECK): Use inline function above instead of __extension__. (tree_operand_check_code): New. (TREE_OPERAND_CHECK_CODE): Use inline function above instead of __extension__. (TREE_CHAIN): Simplify implementation. (TREE_TYPE): Simplify implementation. (tree_operand_length): Move for compilation dependences. * gdbinit.in: (macro define __FILE__): New. (macro define __LINE__): New. (skip "tree.h"): New. gcc/cp/ChangeLog 2012-08-14 Diego Novillo <dnovillo@google.com> Merge from cxx-conversion branch. Re-write VEC in C++. * call.c (add_function_candidate): Remove const qualifier from call to VEC_index. 2012-08-14 Diego Novillo <dnovillo@google.com> Merge from cxx-conversion branch. Configury. * go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX. * go-gcc.cc: Likewise. * go-system.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190402 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-08-06 Jose Ruiz <ruiz@adacore.com> charlet2012-08-062-3/+24
| | | | | | | | | * gcc-interface/Makefile.in: Add support for 32-bit VxWorks for SPARC in kernel mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190173 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-08-06 Arnaud Charlet <charlet@adacore.com>charlet2012-08-0613-72/+468
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * prj-attr.adb (Register_New_Package): Add missing blank. 2012-08-06 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Is_Two_Dim_Packed_Array): New predicate, used when computing maximum size allowable to construct static aggregate. 2012-08-06 Vincent Pucci <pucci@adacore.com> * freeze.adb (Freeze_Entity): Inherit_Aspects_At_Freeze_Point calls added for derived types and subtypes. * sem_aux.adb, sem_aux.ads (Get_Rep_Item, Get_Rep_Pragma, Has_Rep_Pragma): New routines. * sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): New routine. * sem_ch13.adb (Analyze_Aspect_Specifications): Error message for aspect Lock_Free fixed. (Inherits_Aspects_At_Freeze_Point): New routine. * sem_ch3.adb: Several flag settings removed since inheritance of aspects must be performed at freeze point. 2012-08-06 Thomas Quinot <quinot@adacore.com> * s-oscons-tmplt.c: Fix s-oscons.ads formatting on VxWorks. 2012-08-06 Vincent Pucci <pucci@adacore.com> * sem_dim.adb (Analyze_Dimension_Binary_Op): Issue an error message for unknown exponent at compile-time. 2012-08-06 Gary Dismukes <dismukes@adacore.com> * sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Enhance comment to make it clear that the aggregate's evaluation might still involve run-time checks even though the aggregate is considered known at compile time. * sinfo.ads (Compile_Time_Known_Aggregate): Correct comment to refer to Exp_Aggr instead of Sem_Aggr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190172 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud