- 13 Dec, 2007 40 commits
-
-
2007-12-06 Robert Dewar <dewar@adacore.com> * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads, g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files. * scn.adb: Implement BOM recognition From-SVN: r130849
Robert Dewar committed -
* rtsfind.adb (Check_CRT): Take into account RTE_Available_Call Fixes another case where RTE_Available_Call was ignored instead of being taken into account. (Load_Fail): Ditto. * rtsfind.ads: Add new entries. From-SVN: r130848
Arnaud Charlet committed -
restrict.ads, [...] (Check_Implicit_Dynamic_Code_Allowed): New procedure to be called from the back end to check the... 2007-12-06 Bob Duff <duff@adacore.com> * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New procedure to be called from the back end to check the No_Implicit_Dynamic_Code restriction. From-SVN: r130847
Bob Duff committed -
2007-12-06 Emmanuel Briot <briot@adacore.com> Vincent Celier <celier@adacore.com> * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a string (Must_Check_Configuration, Default_Language_Is_Ada): new flags in prj.ads (Hash): Move instantiation of System.HTable.Hash from spec to body (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive systems, since we do not need to recompute the Name_Id for the canonical file name. (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id as a parameter. This parameter is in fact always "ada" in all calls, and we were doing 160560 extra calls to Name_Find to convert it to Name_Ada while loading a project with 40000 files * prj-attr.adb: Fix name of attribute Dependency_Driver Change the kind of indexing for attribute Root * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of variables already declared, in case constructions. * prj-env.adb (Initialize): Reset Current_Source_Path_File and Current_Object_Path_File to No_Path. * prj-ext.adb (Initialize_Project_Path): In multi language mode, use ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty. * prj-makr.adb: new parameter Current_Dir * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for Ada sources when language is not Ada. Change Opt.Follow_Links to Opt.Follow_Links_For_Files. (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms (Must_Check_Configuration, Default_Language_Is_Ada): new flags. (Locate_Directory): Always resolve links when computing Canonical_Path (Look_For_Sources): Make sure that Name_Buffer contains the file name in Source_Files before checking for the presence of a directory separator. Optimize calls to Name_Find when on case sensitive systems. (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id as a parameter. (Prj.Nmsc.Check): new parameter Current_Dir (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They cannot be empty and the spec suffix cannot be the same as the body or separate suffix. (Get_Unit): When a file name can be of several unit kinds (spec, body or subunit), always consider the longest suffix. (Check_Configuration): Do not issue an error if there is no compiler for a language. Just issue a warning and ignore the sources for the language. (Check_Library_Attributes): Only check Library_Dir if Library_Name is not empty. (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity (Unit_Exceptions): New hash table (Check_Naming_Schemes): Check if a file that could be a unit because of the naming scheme is not in fact a source because there is an exception for the unit. (Look_For_Sources): Put the unit exceptions in hash table Unit_Exceptions (Get_Unit_Exceptions): Give initial value No_Source to local variable Other_Part to avoid exception when code is compiled with validity checking. (Get_Sources_From_File): Check that there is no directory information in the file names. (Look_For_Sources): Check that there is no directory information in the list of file names in Source_Files. (Look_For_Sources): In multi-language mode, do not allow exception file names that are excluded. (Excluded_Sources_Htable): New hash table (Search_Directories.Check_File): New procedure to simplify Search_Directories. (Search_Directories): Do not consider excluded sources (Look_For_Sources): Populate Excluded_Sources_Htable before calling Search_Directories. (Get_Exceptions): Set component Lang_Kind of Source_Data (Get_Unit_Exceptions): Ditto (Search_Directories): Ditto * prj-pars.adb: new parameter Current_Dir * prj-part.ads, prj-part.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files. (Opt.Follow_Links_For_Dirs): New flag (Project_Path_Name_Of): Cache information returned by this routine as Locate_Regular_File is a costly routine. The code to output a log information and the effective call to Locate_Regular_File is now factorized into a routine (code clean-up). (Parse, Parse_Single_Project): new parameter Current_Dir When main project file cannot be found, indicate in the error message the project path that was used to do the search. * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag (Prj.Proc.Process*): new parameter Current_Dir * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files From-SVN: r130846
Emmanuel Briot committed -
inline.adb (Back_End_Cannot_Inline): Use new flag Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined 2007-12-06 Robert Dewar <dewar@adacore.com> * inline.adb (Back_End_Cannot_Inline): Use new flag Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag Has_Pragma_Inline_Always instead. of obsolete function Is_Always_Inlined (Build_Body_To_Inline): Same change (Cannot_Inline): Same change Do not give warning on exception raise in No_Return function * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited component has two inconsistent component clauses in the same record representation clause, favor the message that complains about duplication rather than inconsistency. Update comments. (Record_Representation_Clause): Do not warn on missing component clauses for inherited components of a type extension. (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for an overloadable item if it is a pragma that can apply to multiple overloadable entities (e.g. Inline) because a pragma cannot be on more than one chain at a time. (Validate_Unchecked_Conversion): Add code to warn on unchecked conversion where one of the operands is Ada.Calendar.Time. (Analyze_Attribute_Definition_Clause): Fix typo in error message. For now, ignore Component_Size clause on VM targets, as done for pragma Pack. From-SVN: r130845
Robert Dewar committed -
2007-12-06 Robert Dewar <dewar@adacore.com> * g-spipat.adb (Break): Fix accessibility error (vsn taking not null access Vstring) From-SVN: r130844
Robert Dewar committed -
2007-12-06 Robert Dewar <dewar@adacore.com> * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads, g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads, namet-sp.adb, namet-sp.ads: New files. * g-speche.adb: Use generic routine in g-spchge * s-wchcnv.ads, s-wchcnv.adb: Minor code cleanup (make formal type consistent with spec) * namet.adb: Update comments. * par-endh.adb (Evaluate_End_Entry): Use new Namet.Sp.Is_Bad_Spelling_Of function * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an ancestor is an access type initialized with a box, set its type explicitly, for use in subsequent expansion. (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of function From-SVN: r130843
Robert Dewar committed -
2007-12-06 Vasiliy Fofanov <fofanov@adacore.com> * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when set to True this procedure will create the value of type REG_EXPAND_SZ. It was only possible to create REG_SZ values before. From-SVN: r130842
Vasiliy Fofanov committed -
gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when object directory of main project... 2007-12-06 Vincent Celier <celier@adacore.com> * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when object directory of main project does not exist. On VMS, correctly set then environment variable for the source directories. From-SVN: r130841
Vincent Celier committed -
2007-12-06 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target * layout.adb (Resolve_Attribute, case 'Access): If designated type of context is a limited view, use non-limited view when available. If the non-limited view is an unconstrained array, this enforces consistency requirements in 3.10.2 (27). (Layout_Type): For an access type whose designated type is a limited view, examine its declaration to determine if it is an unconstrained array, and size the access type accordingly. (Layout_Type): Do not force 32-bits for convention c subprogram pointers in -gnatdm mode, only if real vms target. * sem_attr.adb (Analyze_Access_Attribute): Use new flag Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined (Analyze_Access_Attribute,Attribute_Address): Remove checks for violations of the No_Implicit_Dynamic_Code restriction. (Resolve_Attribute, case 'Access): If designated type of context is a limited view, use non-limited view when available. If the non-limited view is an unconstrained array, this enforces consistency requirements in 3.10.2 (27). (Layout_Type): For an access type whose designated type is a limited view, examine its declaration to determine if it is an unconstrained array, and size the access type accordingly. From-SVN: r130840
Robert Dewar committed -
2007-12-06 Emmanuel Briot <briot@adacore.com> * g-calend.ads (No_Time): New constant, to represent an uninitialized time value * g-catiio.ads, g-catiio.adb (Value): Added support for more date formats. (Month_Name_To_Number): New subprogram * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive letter to upper-case. From-SVN: r130839
Emmanuel Briot committed -
2007-12-06 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for assert fail * ug_words: Add entries for -gnatw.a -gnatw.A * sem_res.adb (Set_String_Literal_Subtype): If the context of the literal is a subtype with non-static constraints, use the base type of the context as the base of the string subtype, to prevent type mismatches in gigi. (Resolve_Actuals): If the actual is an entity name, generate a reference before the actual is resolved and expanded, to prevent spurious warnings on formals of enclosing protected operations. (Analyze_Overloaded_Selected_Component): If type of prefix if class-wide, use visible components of base type. (Resolve_Selected_Component): Ditto. (Resolve_Short_Circuit): Detect case of pragma Assert argument evaluating to False, and issue warning message. * usage.adb: Add lines for -gnatw.a and -gnatw.A From-SVN: r130838
Robert Dewar committed -
exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing support for generic dispatching constructor calls in which we need... 2007-12-06 Javier Miranda <miranda@adacore.com> * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing support for generic dispatching constructor calls in which we need to locate the tag of a secondary dispatch table associated with an interface type to properly dispatch the call. (Expand_N_Attribute_Reference [case Address], Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix handling of VM targets. From-SVN: r130837
Javier Miranda committed -
2007-12-06 Pascal Obry <obry@adacore.com> * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on Windows. This signal is used by gnatmake to kill child processes for example. From-SVN: r130836
Pascal Obry committed -
exp_disp.ads, [...] (Default_Prim_Op_Position): Primitive _Disp_Requeue occupies dispatch table slot number 15. 2007-12-06 Hristian Kirtchev <kirtchev@adacore.com> Javier Miranda <miranda@adacore.com> * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive _Disp_Requeue occupies dispatch table slot number 15. Move _Disp_Timed_Select to slot 16. (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which generate the spec and body of _Disp_Reqeueue. (Make_DT): Build and initialize the second dispatch table. Handle initialization of RC_Offset when the parent is a private type with variable size components. (Make_Secondary_DT): Complete documentation. Add support to initialize the second dispatch table. (Make_Tags): Generate the tag of the second dispatch table. (Register_Primitive): Add support to register primitives in the second dispatch table. From-SVN: r130835
Hristian Kirtchev committed -
2007-12-06 Hristian Kirtchev <kirtchev@adacore.com> Ed Schonberg <schonberg@adacore.com> * exp_ch9.adb (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and comment reformatting. (Set_Privals): Inherit aliased flag from formal. From code reading. (Build_Simple_Entry_Call): Out parameters of an access type are passed by copy and initialized from the actual. This includes entry parameters. (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95 and Ada 2005 models of requeue. (Null_Statements): Still connsider do-end block null if it contains Unreferenced and Warnings pragmas. (Expand_N_Accept_Statement): Do not optimize away null do end if dispatching policy is other than defaulted. (Expand_N_Timed_Entry_Call): When the triggering statement is a dispatching call, manually analyze the delay statement. (Find_Parameter_Type): Move subprogram to Sem_Util. From-SVN: r130834
Hristian Kirtchev committed -
exp_ch8.ads, [...] (Expand_N_Subprogram_Renaming_Declaration): In the case where the renamed subprogram is a dereference... 2007-12-06 Gary Dismukes <dismukes@adacore.com> * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): In the case where the renamed subprogram is a dereference, call Force_Evaluation on the prefix. From-SVN: r130833
Gary Dismukes committed -
exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute Is_Complation_Unit by Is_Library_Level_Entity... 2007-12-06 Javier Miranda <miranda@adacore.com> Ed Schonberg <schonberg@adacore.com> * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute Is_Complation_Unit by Is_Library_Level_Entity in the code that decides if the static dispatch tables need to be built. (Wrap_Transient_Declaration): Do not generate a finalization call if this is a renaming declaration and the renamed object is a component of a controlled type. From-SVN: r130832
Javier Miranda committed -
* exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer, Expand_Allocator_Expression): Take into account VM_Target * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use secondary stack when VM_Target /= No_VM From-SVN: r130831
Arnaud Charlet committed -
2007-12-06 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of predefined primitive _Disp_Requeue. (Make_Predefined_Primitive_Specs): Create the spec for predefined primitive _Disp_Requeue. (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the type of formal Renamed_Eq to Entity_Id (instead of Node_Id). (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is an interface type. In case of limited interfaces we now declare all the predefined primitives associated with synchronized interfaces as abstract. (Predef_Spec_Or_Body): For interface types generate abstract subprogram declarations. (Predefined_Primitive_Bodies): Add body of "=" if the parent of the tagged type is an interface type and there is no user-defined equality function. Add also bodies of predefined primitives associated with synchronized interfaces. (Freeze_Record_Type): Do not build bodies of predefined primitives of interface types because they are now defined abstract. Add missing documentation. (Expand_Record_Controller): Update occurrence of Related_Interface to Related_Type. (Build_Offset_To_Top_Functions): Do nothing in case of VM. (Expand_N_Object_Declaration): Take into account VM_Target when handling class wide interface object declaration. (Expand_Previous_Access_Type): Do not create a duplicate master entity if the access type already has one. (Expand_N_Object_Declaration): Defend against attempt to validity check generic types. Noticed for -gnatVcf specified with previous errors. From-SVN: r130830
Hristian Kirtchev committed -
2007-12-06 Ed Schonberg <schonberg@adacore.com> * expander.adb: Take into account N_Subprogram_Renaming_Declaration From-SVN: r130829
Ed Schonberg committed -
2007-12-06 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a limited ancestor part, initialize controllers of enclosing record before expanding ancestor aggregate. (Gen_Assign): If a component of the aggregate is box-initialized, add code to call Initialize if the component is controlled, and explicit assignment of null if the component is an access type. Handle properly aggregates for limited types that appear in object declarations when the aggregate contains controlled values such as protected types. When expanding limited aggregates into individual components, do not call Adjust on controlled components that are limited. From-SVN: r130828
Ed Schonberg committed -
2007-12-06 Geert Bosch <bosch@adacore.com> * eval_fat.adb (Decompose_Int): Handle argument of zero. (Compose): Remove special casing of zero. (Exponent): Likewise. (Fraction): Likewise. (Machine): Likewise. (Decompose): Update comment. From-SVN: r130827
Geert Bosch committed -
2007-12-06 Vincent Celier <celier@adacore.com> * errout.adb (Output_Source_Line): Do not keep a trailing space after the source line number if the source line is empty. From-SVN: r130826
Vincent Celier committed -
2007-12-06 Hristian Kirtchev <kirtchev@adacore.com> * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry. (Implemented_By_Entry, Set_Implemented_By_Entry): New routines. (Write_Entry_Flags): Add an entry for Implemented_By_Entry. (Renamed_In_Spec): New flag (Has_Pragma_Inline_Always): New flag Add missing doc for pragma Obsolescent_Warning Add missing doc for 17 additional unused flags (230-247) (Is_Derived_Type): Remove condition "not Is_Generic_Type". Alphabetize with clauses. Separate Is_Thunk and Has_Thunks flags (Write_Entity_Flags): Add forgotten entry for Has_Thunks (Related_Interface): Renamed to Related_Type. (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute. (Set_Is_Flag): Restrict the assertion. From-SVN: r130825
Hristian Kirtchev committed -
2007-12-06 Bob Duff <duff@adacore.com> * clean.adb (Usage): Add line for -aP (Check_Version_And_Help): Change Check_Version_And_Help to be generic, with a parameter "procedure Usage", instead of passing a pointer to a procedure. This is to eliminate trampolines (since the Usage procedure is often nested in a main procedure, and it would be inconvenient to unnest it). * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch to be generic, with a parameter "procedure Callback (...)", instead of passing a pointer to a procedure. This is to eliminate trampolines (since the Callback procedure is usually nested). * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb (Check_Version_And_Help): Change Check_Version_And_Help to be generic. * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets): Use the generic Heap_Sort_G instead of Heap_Sort_A. From-SVN: r130824
Bob Duff committed -
2007-12-06 Robert Dewar <dewar@adacore.com> * checks.adb: Fix optimization problem with short-circuited form From-SVN: r130823
Robert Dewar committed -
2007-12-06 Robert Dewar <dewar@adacore.com> * back_end.adb: Recognize -fno-inline From-SVN: r130822
Robert Dewar committed -
2007-12-06 Vincent Celier <celier@adacore.com> * opt.ads: Indicate what flags are used by the Project Manager, gprbuild and gprclean. (Opt.Follow_Links_For_Dirs): New flag (Warn_On_Assertion_Failure): New flag (Wide_Character_Encoding_Method_Specified): New flag (Suppress_All_Inlining): New switch set by -fno-inline (Real_VMS_Target): New flag New pragma Fast_Math From-SVN: r130821
Vincent Celier committed -
2007-12-06 Robert Dewar <dewar@adacore.com> * atree.adb (Flag231..Flag247): New functions (Set_Flag231..Set_Flag247): New procedures (Basic_Set_Convention): Rename Set_Convention to be Basic_Set_Convention (Nkind_In): New functions Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined (Register_Predefined_DT_Entry): Initialize slots of the second secondary dispatch table. Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List (Expand_N_Function_Call): Remove special provision for stack checking. * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation): Include _Disp_Requeue in the list of predefined operations. (Find_Interface_ADT): Modified to fulfill the new specification. Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List * par-ch4.adb, nlists.ads, nlists.adb: Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List * sinfo.ads, sinfo.adb: (Nkind_In): New functions Fix location of flag for unrecognized pragma message * sem_ch7.adb: Use Nkind_In From-SVN: r130820
Robert Dewar committed -
* a-tifiio.adb (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where the second or later Scaled_Divide would omit leading zeroes, resulting in too few digits produced and a Layout_Error as result. (Put): Initialize Pos. From-SVN: r130819
Geert Bosch committed -
2007-12-06 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * a-ngcoty.adb: New pragma Fast_Math * opt.adb: New pragma Fast_Math * par-prag.adb: Add Implemented_By_Entry to the list of pragmas which do not require any special processing. (Favor_Top_Level): New pragma. New pragma Fast_Math * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv (Expand_N_Attribute_Reference, Displace_Allocator_Pointer, Expand_Allocator_Expression): Take into account VM_Target (Expand_Attribute, case 'Identity): Handle properly the case where the prefix is a task interface. New pragma Fast_Math * par.adb (Next_Token_Is): New function (P_Pragma): Add Skipping parameter (U_Left_Paren): New procedure (U_Right_Paren): New procedure New pragma Fast_Math * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after subunit New pragma Fast_Math * sem_prag.adb: Add significance value to table Sig_Flag for pragma Implemented_By_Entry. (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry. (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep items, since it can apply to more than one overloadable entity. Set new flag Has_Pragma_Inline_Always for Inline_Always case. (Analyze_Pragma, case Complex_Representation): Improve error message. (Analyze_Pragma, case Assert): When assertions are disabled build the rewritten code with Sloc of expression rather than pragma, so new warning about failing is not deleted. (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to protected types and update error message to reflect that. Test whether the protected type is allowed for the pragma (an error is issued if the type has any entries, or components that do not have preelaborable initialization). New pragma Fast_Math (Analyze_Pragma, case No_Return): Handle generic instance * snames.h, snames.ads, snames.adb: Add new predefined name for interface primitive _Disp_Requeue. New pragma Fast_Math * a-tags.ads, a-tags.adb: New calling sequence for String_To_Wide_[Wide_]String (Secondary_Tag): New subprogram. * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here from Exp_Attr New calling sequence for String_To_Wide_[Wide_]String (Expand_Image_Attribute): Major rewrite. New calling sequence avoids the use of the secondary stack for image routines. * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New calling sequence for String_To_Wide_[Wide_]String * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in Ada 95 mode (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode (P_Formal_Part): Use Skipping parameter in P_Pragma call to improve error recovery * par-util.adb (Next_Token_Is): New function (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to semicolon if missing (P_Pragma): Implement new Skipping parameter Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List Fix location of flag for unrecognized pragma message * par-tchk.adb (U_Left_Paren): New procedure (U_Right_Paren): New procedure From-SVN: r130818
Robert Dewar committed -
2007-12-06 Robert Dewar <dewar@adacore.com> * a-textio.adb, a-textio.ads: Extensive changes to private part for wide character encoding * a-witeio.ads, a-witeio.adb, a-ztexio.ads, a-ztexio.adb (Look_Ahead): Fix mishandling of encoded sequences Move declaration of Wch_Con to private part (should not be visible) * ali.adb (Scan_ALI): Set default encoding method to brackets instead of UTF-8. Probably this is never used, but if it is, brackets is clearly correct. * bindgen.adb (Get_WC_Encoding): New procedure to properly handle setting wide character encoding for no main program case and when encoding is specified using -W? Initialize stack limit of environment task if stack limit method of stack checking is enabled. (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method (Get_Main_Unit_Name): New function. (Gen_Adainit_Ada): Add call to main program for .NET when needed. (Gen_Output_File): Set Bind_Main_Program to True for .NET * bindusg.adb: Add line for -Wx switch * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function Add comments Add new useful constant WC_Longest_Sequences * switch-b.adb: Clean up handling of -Wx switch For -gnatWx, set Wide_Character_Encoding_Method_Specified * switch-c.adb: -gnatg activates warning on assertion errors For -gnatWx, set Wide_Character_Encoding_Method_Specified * s-wchcon.adb: (Is_Start_Of_Encoding): New function From-SVN: r130817
Robert Dewar committed -
2007-12-06 Jose Ruiz <ruiz@adacore.com> * adaint.h: (__gnat_plist_init): Not defined for RTX. * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for RTX systems. * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb. (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB, EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS, GNATLIB_SHARED for RTX run time): Use the versions required by RTX. * mingw32.h: Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported. * sysdep.c (winflush_function for RTX): Procedure that does nothing since we only have problems with Windows 95/98, which are not supported by RTX. (__gnat_ttyname): Return the empty string on Nucleus, just as done on vxworks. From-SVN: r130816
Jose Ruiz committed -
2007-12-06 Robert Dewar <dewar@adacore.com> * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, a-cihama.adb, g-awk.adb, s-inmaop-posix.adb: Update handling of assigned value/unreferenced warnings * exp_smem.adb: Update handling of assigned value/unreferenced warnings * sem.adb: Update handling of assigned value/unreferenced warnings * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return * lib-xref.ads: Improve documentation for k xref type * lib-xref.adb: Update handling of assigned value/unreferenced warnings (Generate_Reference): Warning for reference to entity for which a pragma Unreferenced has been given should be unconditional. If the entity is a discriminal, mark the original discriminant as referenced. * sem_warn.ads, sem_warn.adb (Check_One_Unit): Test Renamed_In_Spec to control giving warning for no entities referenced in package (Check_One_Unit): Don't give message about no entities referenced in a package if a pragma Unreferenced has appeared. Handle new warning flag -gnatw.a/-gnatw.A Update handling of assigned value/unreferenced warnings * atree.h: Add flags up to Flag247 (Flag231): New macro. From-SVN: r130815
Robert Dewar committed -
2007-12-06 Eric Botcazou <ebotcazou@adacore.com> Bob Duff <duff@adacore.com> Tristan Gingold <gingold@adacore.com> * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-arm.ads, system-darwin-x86.ads, system.ads, system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads, system-vms-ia64.ads (Stack_Check_Limits): New target parameter. (Always_Compatible_Rep): New flag to control trampolines globally. (Dynamic_Trampolines_Used): New flag for implementing the No_Implicit_Dynamic_Code restriction more correctly (not yet used, and not yet set correctly for some targets). * s-taprop-vxworks.adb: Use stack limit method of stack checking. Simply indirectly call s-stchop when a task is created. * ali.ads: New flag added: Stack_Check_Switch_Set which is set when '-fstack-check' appears as an argument (entries A) in an ALI file. * fe.h (Stack_Check_Limits): Declare new target parameter. (Check_Implicit_Dynamic_Code_Allowed): New procedure. * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS. This variable is declared in C to be sure not subject to elaboration code. (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to Storage_Error. * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter. (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters. * s-stchop.ads: Add comments. * s-stchop-vxworks.adb: Package almost fully rewritten to use stack limit method of stack checking. * s-stchop-limit.ads: New file. From-SVN: r130814
Eric Botcazou committed -
2007-12-06 Robert Dewar <dewar@adacore.com> * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb, s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads, s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C for subprogram pointers. * g-ctrl_c.adb: New file. * g-ctrl_c.ads (Install_Handler): New body. * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined. (Freeze_Entity): check for tagged type in imported C subprogram (Freeze_Entity): check for 8-bit boolean in imported C subprogram (Freeze_Entity): check for convention Ada subprogram pointer in imported C subprogram. (Freeze_Fixed_Point_Type): In the case of a base type where the low bound would be chopped off and go from negative to zero, force Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower bound) so that the size computation for the base type will take negative values into account. From-SVN: r130813
Robert Dewar committed -
2007-12-06 Pascal Obry <obry@adacore.com> * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy version is provided for older GNU/Linux distribution not supporting thread affinity sets. * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf call. (bit_field): New packed boolean type used by cpu_set_t. (cpu_set_t): New type corresponding to the C type with the same name. Note that on the Ada side we use a bit field array for the affinity mask. There is not need for the C macro for setting individual bit. (pthread_setaffinity_np): New imported routine. * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is no null. (Create_Task): Set the processor affinity mask if information is present. * s-tasinf-linux.ads, s-tasinf-linux.adb: New files. From-SVN: r130812
Pascal Obry committed -
* Makefile.tpl (CFLAGS_FOR_TARGET): Add -g. (CXXFLAGS_FOR_TARGET): Add -O2 -g. * Makefile.in: Regenerate. From-SVN: r130811
Richard Sandiford committed -
i386.c (ix86_rtx_costs): Check op0 for ZERO_EXTEND when computing costs for widening multiplication. * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for ZERO_EXTEND when computing costs for widening multiplication. From-SVN: r130809
Torbjorn Granlund committed
-