summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-10 10:35:01 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-10 10:35:01 +0000
commit284a54ba02ea14f46eb7f5da50463ac49350731d (patch)
tree08f19541b2e232c7ac20c6ccc5c406ae9ee8e99f /gcc
parent14de9547e6e3387ebde7a7bae28e42881c7b9810 (diff)
downloadgcc-284a54ba02ea14f46eb7f5da50463ac49350731d.tar.gz
2009-04-10 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Check_Naming_Schemes): Initialize local variable Casing to avoid gcc warning. 2009-04-10 Robert Dewar <dewar@adacore.com> * g-comlin.adb: Add ??? comment 2009-04-10 Ed Schonberg <schonberg@adacore.com> * sem_warn.adb (Check_Unused_Withs): Do not emit message about unreferenced entities for a package with no visible declarations. 2009-04-10 Robert Dewar <dewar@adacore.com> * exp_ch9.adb: Minor reformatting git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145886 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog18
-rw-r--r--gcc/ada/exp_ch9.adb27
-rw-r--r--gcc/ada/g-comlin.adb5
-rw-r--r--gcc/ada/prj-nmsc.adb12
-rw-r--r--gcc/ada/sem_warn.adb48
5 files changed, 91 insertions, 19 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index afdf19d336f..0da0147f605 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,21 @@
+2009-04-10 Vincent Celier <celier@adacore.com>
+
+ * prj-nmsc.adb (Check_Naming_Schemes): Initialize local variable Casing
+ to avoid gcc warning.
+
+2009-04-10 Robert Dewar <dewar@adacore.com>
+
+ * g-comlin.adb: Add ??? comment
+
+2009-04-10 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_warn.adb (Check_Unused_Withs): Do not emit message about
+ unreferenced entities for a package with no visible declarations.
+
+2009-04-10 Robert Dewar <dewar@adacore.com>
+
+ * exp_ch9.adb: Minor reformatting
+
2009-04-10 Thomas Quinot <quinot@adacore.com>
* sem_prag.adb: Minor reformatting
diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb
index 8ff47dcdf4b..75603f0a426 100644
--- a/gcc/ada/exp_ch9.adb
+++ b/gcc/ada/exp_ch9.adb
@@ -738,22 +738,25 @@ package body Exp_Ch9 is
-- At the end of the statement sequence, Complete_Rendezvous is called.
-- A label skipping the Complete_Rendezvous, and all other accept
-- processing, has already been added for the expansion of requeue
- -- statements.
+ -- statements. The Sloc is copied from the last statement since it
+ -- is really part of this last statement.
- Call := Build_Runtime_Call (Sloc (Last (Statements (Stats))),
- RE_Complete_Rendezvous);
+ Call :=
+ Build_Runtime_Call
+ (Sloc (Last (Statements (Stats))), RE_Complete_Rendezvous);
Insert_Before (Last (Statements (Stats)), Call);
Analyze (Call);
-- If exception handlers are present, then append Complete_Rendezvous
- -- calls to the handlers, and construct the required outer block.
+ -- calls to the handlers, and construct the required outer block. As
+ -- above, the Sloc is copied from the last statement in the sequence.
if Present (Exception_Handlers (Stats)) then
Hand := First (Exception_Handlers (Stats));
-
while Present (Hand) loop
- Call := Build_Runtime_Call (Sloc (Last (Statements (Hand))),
- RE_Complete_Rendezvous);
+ Call :=
+ Build_Runtime_Call
+ (Sloc (Last (Statements (Hand))), RE_Complete_Rendezvous);
Append (Call, Statements (Hand));
Analyze (Call);
Next (Hand);
@@ -11996,11 +11999,11 @@ package body Exp_Ch9 is
-- side effects.
Append_To (Args,
- New_Copy_Tree (
- Expression (First (
- Pragma_Argument_Associations (
- Find_Task_Or_Protected_Pragma
- (Tdef, Name_Task_Name))))));
+ New_Copy_Tree
+ (Expression (First
+ (Pragma_Argument_Associations
+ (Find_Task_Or_Protected_Pragma
+ (Tdef, Name_Task_Name))))));
else
Append_To (Args, Make_Identifier (Loc, Name_uTask_Name));
diff --git a/gcc/ada/g-comlin.adb b/gcc/ada/g-comlin.adb
index fb1cae0914f..adb1553836e 100644
--- a/gcc/ada/g-comlin.adb
+++ b/gcc/ada/g-comlin.adb
@@ -92,8 +92,9 @@ package body GNAT.Command_Line is
Index_In_Switches : out Integer;
Switch_Length : out Integer;
Param : out Switch_Parameter_Type);
- -- return the Longest switch from Switches that matches at least
- -- partially Arg. Index_In_Switches is set to 0 if none matches
+ -- Return the Longest switch from Switches that at least partially
+ -- partially Arg. Index_In_Switches is set to 0 if none matches.
+ -- What are other parameters??? in particular Param is not always set???
procedure Unchecked_Free is new Ada.Unchecked_Deallocation
(Argument_List, Argument_List_Access);
diff --git a/gcc/ada/prj-nmsc.adb b/gcc/ada/prj-nmsc.adb
index 3d6737109e6..7d532892b81 100644
--- a/gcc/ada/prj-nmsc.adb
+++ b/gcc/ada/prj-nmsc.adb
@@ -3280,7 +3280,7 @@ package body Prj.Nmsc is
-- value in the language config.
declare
- Dot_Repl : constant Variable_Value :=
+ Dot_Repl : constant Variable_Value :=
Util.Value_Of
(Name_Dot_Replacement,
Naming.Decl.Attributes, In_Tree);
@@ -3291,17 +3291,21 @@ package body Prj.Nmsc is
(Name_Casing,
Naming.Decl.Attributes,
In_Tree);
- Casing : Casing_Type;
- Casing_Defined : Boolean := False;
+
+ Casing : Casing_Type := All_Lower_Case;
+ -- Casing type (junk initialization to stop bad gcc warning)
+
+ Casing_Defined : Boolean := False;
Sep_Suffix : constant Variable_Value :=
Prj.Util.Value_Of
(Variable_Name => Name_Separate_Suffix,
In_Variables => Naming.Decl.Attributes,
In_Tree => In_Tree);
+
Separate_Suffix : File_Name_Type := No_File;
+ Lang_Id : Language_Index;
- Lang_Id : Language_Index;
begin
-- Check attribute Dot_Replacement
diff --git a/gcc/ada/sem_warn.adb b/gcc/ada/sem_warn.adb
index 10611743d85..076355b7cd0 100644
--- a/gcc/ada/sem_warn.adb
+++ b/gcc/ada/sem_warn.adb
@@ -1887,6 +1887,11 @@ package body Sem_Warn is
-- warn that the context clause could be moved to the body, because
-- the renaming may be intended to re-export the unit.
+ function Has_Visible_Entities (P : Entity_Id) return Boolean;
+ -- If a package has no declared entities, inhibit warning because
+ -- there is nothing to be referenced. The package may be in the
+ -- context just in order to carry a linker pragma for example.
+
-------------------------
-- Check_Inner_Package --
-------------------------
@@ -2011,6 +2016,47 @@ package body Sem_Warn is
return Empty;
end Find_Package_Renaming;
+ --------------------------
+ -- Has_Visible_Entities --
+ --------------------------
+
+ function Has_Visible_Entities (P : Entity_Id) return Boolean is
+ E : Entity_Id;
+
+ begin
+
+ -- If unit in context is not a package, it is a subprogram that
+ -- is not called or a generic unit that is not instantiated
+ -- in the current unit, and warning is appropriate.
+
+ if Ekind (P) /= E_Package then
+ return True;
+ end if;
+
+ -- If unit comes from a limited_with clause, look for declaration
+ -- of shadow entities.
+
+ if Present (Limited_View (P)) then
+ E := First_Entity (Limited_View (P));
+ else
+ E := First_Entity (P);
+ end if;
+
+ while Present (E)
+ and then E /= First_Private_Entity (P)
+ loop
+ if Comes_From_Source (E)
+ or else Present (Limited_View (P))
+ then
+ return True;
+ end if;
+
+ Next_Entity (E);
+ end loop;
+
+ return False;
+ end Has_Visible_Entities;
+
-- Start of processing for Check_One_Unit
begin
@@ -2066,7 +2112,7 @@ package body Sem_Warn is
-- Otherwise simple unreferenced message
- else
+ elsif Has_Visible_Entities (Entity (Name (Item))) then
Error_Msg_N
("?unit& is not referenced!", Name (Item));
end if;