diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-06-22 12:00:49 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-06-22 12:00:49 +0200 |
commit | 5c52bf3ba490639455d1ce816c2b2004bd3c65da (patch) | |
tree | 9bd7e03ea2f5e4ea9c071bb626f70a454deab26b | |
parent | be5a1b93684dfdc5f647f6fae4b93dd633190d07 (diff) | |
download | gcc-5c52bf3ba490639455d1ce816c2b2004bd3c65da.zip gcc-5c52bf3ba490639455d1ce816c2b2004bd3c65da.tar.gz gcc-5c52bf3ba490639455d1ce816c2b2004bd3c65da.tar.bz2 |
[multiple changes]
2010-06-22 Thomas Quinot <quinot@adacore.com>
* exp_attr.adb, lib-writ.ads, bindgen.adb: Minor reformatting.
* einfo.adb (Related_Expression, Set_Related_Expression): Add
assertions.
2010-06-22 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Add_Internal_Interface_Entities): Minor code
reorganization to properly check if the operation has been inherited as
an abstract operation.
2010-06-22 Ed Falis <falis@adacore.com>
* s-osinte-vxworks.ads: Complete previous change.
From-SVN: r161159
-rw-r--r-- | gcc/ada/ChangeLog | 16 | ||||
-rw-r--r-- | gcc/ada/bindgen.adb | 137 | ||||
-rw-r--r-- | gcc/ada/einfo.adb | 4 | ||||
-rw-r--r-- | gcc/ada/exp_attr.adb | 6 | ||||
-rw-r--r-- | gcc/ada/lib-writ.ads | 8 | ||||
-rw-r--r-- | gcc/ada/s-osinte-vxworks.ads | 3 | ||||
-rw-r--r-- | gcc/ada/sem_ch3.adb | 14 |
7 files changed, 101 insertions, 87 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 0f45849..2791cc5 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,21 @@ 2010-06-22 Thomas Quinot <quinot@adacore.com> + * exp_attr.adb, lib-writ.ads, bindgen.adb: Minor reformatting. + * einfo.adb (Related_Expression, Set_Related_Expression): Add + assertions. + +2010-06-22 Javier Miranda <miranda@adacore.com> + + * sem_ch3.adb (Add_Internal_Interface_Entities): Minor code + reorganization to properly check if the operation has been inherited as + an abstract operation. + +2010-06-22 Ed Falis <falis@adacore.com> + + * s-osinte-vxworks.ads: Complete previous change. + +2010-06-22 Thomas Quinot <quinot@adacore.com> + * sem_res.adb: Add comment. * projects.texi, gnat_ugn.texi: Remove macro. diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb index 2111898..883c606 100644 --- a/gcc/ada/bindgen.adb +++ b/gcc/ada/bindgen.adb @@ -1942,8 +1942,8 @@ package body Bindgen is for E in Elab_Order.First .. Elab_Order.Last loop - -- If not spec that has an associated body, then generate a - -- comment giving the name of the corresponding object file. + -- If not spec that has an associated body, then generate a comment + -- giving the name of the corresponding object file. if (not Units.Table (Elab_Order.Table (E)).SAL_Interface) and then Units.Table (Elab_Order.Table (E)).Utype /= Is_Spec @@ -1952,8 +1952,8 @@ package body Bindgen is (ALIs.Table (Units.Table (Elab_Order.Table (E)).My_ALI).Ofile_Full_Name); - -- If the presence of an object file is necessary or if it - -- exists, then use it. + -- If the presence of an object file is necessary or if it exists, + -- then use it. if not Hostparm.Exclude_Missing_Objects or else @@ -1975,8 +1975,7 @@ package body Bindgen is (ALIs.Table (Units.Table (Elab_Order.Table (E)).My_ALI).Sfile) then - -- Special case for g-trasym.obj, which is not included - -- in libgnat. + -- Special case for g-trasym.obj (not included in libgnat) Get_Name_String (ALIs.Table (Units.Table (Elab_Order.Table (E)).My_ALI).Sfile); @@ -2010,38 +2009,36 @@ package body Bindgen is -- This sort accomplishes two important purposes: - -- a) All application files are sorted to the front, and all - -- GNAT internal files are sorted to the end. This results - -- in a well defined dividing line between the two sets of - -- files, for the purpose of inserting certain standard - -- library references into the linker arguments list. - - -- b) Given two different units, we sort the linker options so - -- that those from a unit earlier in the elaboration order - -- comes later in the list. This is a heuristic designed - -- to create a more friendly order of linker options when - -- the operations appear in separate units. The idea is that - -- if unit A must be elaborated before unit B, then it is - -- more likely that B references libraries included by A, - -- than vice versa, so we want the libraries included by - -- A to come after the libraries included by B. - - -- These two criteria are implemented by function Lt_Linker_Option. - -- Note that a special case of b) is that specs are elaborated before - -- bodies, so linker options from specs come after linker options - -- for bodies, and again, the assumption is that libraries used by - -- the body are more likely to reference libraries used by the spec, - -- than vice versa. + -- a) All application files are sorted to the front, and all GNAT + -- internal files are sorted to the end. This results in a well + -- defined dividing line between the two sets of files, for the + -- purpose of inserting certain standard library references into + -- the linker arguments list. + + -- b) Given two different units, we sort the linker options so that + -- those from a unit earlier in the elaboration order comes later + -- in the list. This is a heuristic designed to create a more + -- friendly order of linker options when the operations appear in + -- separate units. The idea is that if unit A must be elaborated + -- before unit B, then it is more likely that B references + -- libraries included by A, than vice versa, so we want libraries + -- included by A to come after libraries included by B. + + -- These two criteria are implemented by function Lt_Linker_Option. Note + -- that a special case of b) is that specs are elaborated before bodies, + -- so linker options from specs come after linker options for bodies, + -- and again, the assumption is that libraries used by the body are more + -- likely to reference libraries used by the spec, than vice versa. Sort (Linker_Options.Last, Move_Linker_Option'Access, Lt_Linker_Option'Access); - -- Write user linker options, i.e. the set of linker options that - -- come from all files other than GNAT internal files, Lgnat is - -- left set to point to the first entry from a GNAT internal file, - -- or past the end of the entriers if there are no internal files. + -- Write user linker options, i.e. the set of linker options that come + -- from all files other than GNAT internal files, Lgnat is left set to + -- point to the first entry from a GNAT internal file, or past the end + -- of the entriers if there are no internal files. Lgnat := Linker_Options.Last + 1; @@ -2145,9 +2142,9 @@ package body Bindgen is Set_PSD_Pragma_Table; - -- Override Ada_Bind_File and Bind_Main_Program for VMs since - -- JGNAT only supports Ada code, and the main program is already - -- generated by the compiler. + -- Override Ada_Bind_File and Bind_Main_Program for VMs since JGNAT only + -- supports Ada code, and the main program is already generated by the + -- compiler. if VM_Target /= No_VM then Ada_Bind_File := True; @@ -2279,8 +2276,7 @@ package body Bindgen is WBI (" gnat_envp : System.Address;"); -- If the standard library is not suppressed, these variables - -- are in the runtime data area for easy access from the - -- runtime. + -- are in the run-time data area for easy run time access. if not Suppress_Standard_Library_On_Target then WBI (""); @@ -2475,8 +2471,8 @@ package body Bindgen is if not Cumulative_Restrictions.Set (No_Finalization) then - -- In the Java case, pragma Import C cannot be used, so the - -- standard Ada constructs will be used instead. + -- In the Java case, pragma Import C cannot be used, so the standard + -- Ada constructs will be used instead. if VM_Target = No_VM then WBI (""); @@ -2631,8 +2627,8 @@ package body Bindgen is WBI ("extern void __gnat_stack_usage_initialize (int size);"); end if; - -- Initialize stack limit for the environment task if the stack - -- check method is stack limit and stack check is enabled. + -- Initialize stack limit for the environment task if the stack check + -- method is stack limit and stack check is enabled. if Stack_Check_Limits_On_Target and then (Stack_Check_Default_On_Target or Stack_Check_Switch_Set) @@ -2666,8 +2662,8 @@ package body Bindgen is if Bind_Main_Program then - -- First deal with argc/argv/envp. In the normal case they - -- are in the run-time library. + -- First deal with argc/argv/envp. In the normal case they are in the + -- run-time library. if not Configurable_Run_Time_On_Target then WBI ("extern int gnat_argc;"); @@ -2680,8 +2676,8 @@ package body Bindgen is elsif not Command_Line_Args_On_Target then null; - -- Otherwise, in the configurable run-time case they are right in - -- the binder file. + -- Otherwise, in the configurable run-time case they are right in the + -- binder file. else WBI ("int gnat_argc;"); @@ -2694,8 +2690,8 @@ package body Bindgen is if not Configurable_Run_Time_On_Target then WBI ("extern int gnat_exit_status;"); - -- If configurable run time and no exit status on target, then - -- the generation of this variables is entirely suppressed. + -- If configurable run time and no exit status on target, then the + -- generation of this variables is entirely suppressed. elsif not Exit_Status_Supported_On_Target then null; @@ -2710,9 +2706,8 @@ package body Bindgen is WBI (""); end if; - -- When suppressing the standard library, the __gnat_break_start - -- routine (for the debugger to get initial control) is defined in - -- this file. + -- When suppressing the standard library, the __gnat_break_start routine + -- (for the debugger to get initial control) is defined in this file. if Suppress_Standard_Library_On_Target then WBI (""); @@ -2736,8 +2731,8 @@ package body Bindgen is Write_Statement_Buffer; end if; - -- Generate the adafinal routine. In no runtime mode, this is - -- not needed, since there is no finalization to do. + -- Generate the adafinal routine. In no runtime mode, this is not + -- needed, since there is no finalization to do. if not Cumulative_Restrictions.Set (No_Finalization) then Gen_Adafinal_C; @@ -2982,9 +2977,9 @@ package body Bindgen is -- unnnnn : constant Integer := 16#hhhhhhhh#; -- pragma Export (C, unnnnn, unam); - -- for each unit, where unam is the unit name suffixed by either B or - -- S for body or spec, with dots replaced by double underscores, and - -- hhhhhhhh is the version number, and nnnnn is a 5-digits serial number. + -- for each unit, where unam is the unit name suffixed by either B or S for + -- body or spec, with dots replaced by double underscores, and hhhhhhhh is + -- the version number, and nnnnn is a 5-digits serial number. procedure Gen_Versions_Ada is Ubuf : String (1 .. 6) := "u00000"; @@ -3054,8 +3049,8 @@ package body Bindgen is -- unsigned unam = 0xhhhhhhhh; - -- for each unit, where unam is the unit name suffixed by either B or - -- S for body or spec, with dots replaced by double underscores. + -- for each unit, where unam is the unit name suffixed by either B or S for + -- body or spec, with dots replaced by double underscores. procedure Gen_Versions_C is begin @@ -3193,9 +3188,9 @@ package body Bindgen is Get_Name_String (Units.Table (First_Unit_Entry).Uname); - -- If this is a child name, return only the name of the child, - -- since we can't have dots in a nested program name. Note that - -- we do not include the %b at the end of the unit name. + -- If this is a child name, return only the name of the child, since + -- we can't have dots in a nested program name. Note that we do not + -- include the %b at the end of the unit name. for J in reverse 1 .. Name_Len - 2 loop if J = 1 or else Name_Buffer (J - 1) = '.' then @@ -3227,12 +3222,12 @@ package body Bindgen is -- no better choice. If some other encoding is required when there is -- no main, it must be set explicitly using -Wx. - -- Note: if the ALI file always passed the wide character encoding - -- of every file, then we could use the encoding of the initial - -- specified file, but this information is passed only for potential - -- main programs. We could fix this sometime, but it is a very minor - -- point (wide character default encoding for [Wide_[Wide_]Text_IO - -- when there is no main program). + -- Note: if the ALI file always passed the wide character encoding of + -- every file, then we could use the encoding of the initial specified + -- file, but this information is passed only for potential main + -- programs. We could fix this sometime, but it is a very minor point + -- (wide character default encoding for [Wide_[Wide_]Text_IO when there + -- is no main program). elsif No_Main_Subprogram then return 'b'; @@ -3263,8 +3258,8 @@ package body Bindgen is Linker_Options.Table (Op2).Internal_File; -- If both internal or both non-internal, sort according to the - -- elaboration position. A unit that is elaborated later should - -- come earlier in the linker options list. + -- elaboration position. A unit that is elaborated later should come + -- earlier in the linker options list. else return Units.Table (Linker_Options.Table (Op1).Unit).Elab_Position @@ -3293,9 +3288,9 @@ package body Bindgen is Get_Name_String (Units.Table (Elab_Order.Table (E)).Uname); -- This is not a perfect approach, but is the current protocol - -- between the run-time and the binder to indicate that tasking - -- is used: system.os_interface should always be used by any - -- tasking application. + -- between the run-time and the binder to indicate that tasking is + -- used: system.os_interface should always be used by any tasking + -- application. if Name_Buffer (1 .. 19) = "system.os_interface" then With_GNARL := True; diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb index 8686a87..fd2eee3 100644 --- a/gcc/ada/einfo.adb +++ b/gcc/ada/einfo.adb @@ -2434,7 +2434,7 @@ package body Einfo is function Related_Expression (Id : E) return N is begin - pragma Assert (Is_Type (Id) + pragma Assert (Ekind (Id) in Type_Kind or else Ekind_In (Id, E_Constant, E_Variable)); return Node24 (Id); end Related_Expression; @@ -4893,6 +4893,8 @@ package body Einfo is procedure Set_Related_Expression (Id : E; V : N) is begin + pragma Assert (Ekind (Id) in Type_Kind + or else Ekind_In (Id, E_Constant, E_Variable, E_Void)); Set_Node24 (Id, V); end Set_Related_Expression; diff --git a/gcc/ada/exp_attr.adb b/gcc/ada/exp_attr.adb index 673ecfd..a88cf85 100644 --- a/gcc/ada/exp_attr.adb +++ b/gcc/ada/exp_attr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2010, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -1257,8 +1257,8 @@ package body Exp_Attr is -- subprogram spec or package. This sequence of code references the -- the unsigned constant created in the main program by the binder. - -- A special exception occurs for Standard, where the string - -- returned is a copy of the library string in gnatvsn.ads. + -- A special exception occurs for Standard, where the string returned + -- is a copy of the library string in gnatvsn.ads. when Attribute_Body_Version | Attribute_Version => Version : declare E : constant Entity_Id := Make_Temporary (Loc, 'V'); diff --git a/gcc/ada/lib-writ.ads b/gcc/ada/lib-writ.ads index b3207c1b..8e8e321 100644 --- a/gcc/ada/lib-writ.ads +++ b/gcc/ada/lib-writ.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2010, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -610,8 +610,8 @@ package Lib.Writ is --------------------- -- The reference lines contain information about references from any of the - -- units in the compilation (including, body version and version - -- attributes, linker options pragmas and source dependencies. + -- units in the compilation (including body version and version attributes, + -- linker options pragmas and source dependencies). -- ------------------------------------ -- -- E External Version References -- @@ -696,7 +696,7 @@ package Lib.Writ is -- reference data. See the spec of Par_SCO for full details of the format. ---------------------- - -- Global_Variables -- + -- Global variables -- ---------------------- -- The table structure defined here stores one entry for each diff --git a/gcc/ada/s-osinte-vxworks.ads b/gcc/ada/s-osinte-vxworks.ads index 146bc9a..dd5f1eb 100644 --- a/gcc/ada/s-osinte-vxworks.ads +++ b/gcc/ada/s-osinte-vxworks.ads @@ -155,7 +155,7 @@ package System.OS_Interface is SIG_DFL : constant := 0; SIG_IGN : constant := 1; - subtype sigset_t is System.VxWorks.Ext.sigset_t; + type sigset_t is private; type struct_sigaction is record sa_handler : System.Address; @@ -497,4 +497,5 @@ private type clockid_t is new int; CLOCK_REALTIME : constant clockid_t := 0; + type sigset_t is new System.VxWorks.Ext.sigset_t; end System.OS_Interface; diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index a28a107..09e5319 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -1567,15 +1567,15 @@ package body Sem_Ch3 is and then Alias (Prim) = Iface_Prim; Next_Elmt (El); end loop; - end; - end if; - -- If the operation was not explicitly overridden, it should - -- have been inherited as an abstract operation so Prim can - -- not be Empty at this stage. + -- If the operation was not explicitly overridden, it + -- should have been inherited as an abstract operation + -- so Prim can not be Empty at this stage. - if No (Prim) then - raise Program_Error; + if No (El) then + raise Program_Error; + end if; + end; end if; Derive_Subprogram |