Unlike for subprogram instantiation, -gnatyr does not report style violation 
for package instantiation, more precisely for the name of the generic package.

Fixing this uncovered style violations in the sources of the compiler itself!

Tested on x86-64/Linux, applied on the mainline.


2025-10-17  Eric Botcazou  <[email protected]>

        PR ada/122295
        * sem_ch12.adb (Analyze_Package_Instantiation): Force Style_Check
        to False only after possibly installing the parent.
        * aspects.adb (UAD_Pragma_Map): Fix style violation.
        * inline.adb (To_Pending_Instantiations): Likewise.
        * lib.ads (Unit_Names): Likewise.
        * repinfo.adb (Relevant_Entities): Likewise.
        * sem_ch7.adb (Subprogram_Table): Likewise.
        (Traversed_Table): Likewise.
        * sem_util.adb (Interval_Sorting): Likewise.


2025-10-17  Eric Botcazou  <[email protected]>

        * gnat.dg/specs/style1.ads: New test.

-- 
Eric Botcazou
diff --git a/gcc/ada/aspects.adb b/gcc/ada/aspects.adb
index 44b7494b924..c9eaea1b7f9 100644
--- a/gcc/ada/aspects.adb
+++ b/gcc/ada/aspects.adb
@@ -578,7 +578,7 @@ package body Aspects is
         return UAD_Pragma_Map_Header
       is (UAD_Pragma_Map_Header (Chars mod UAD_Pragma_Map_Size));
 
-      package UAD_Pragma_Map is new GNAT.Htable.Simple_Htable
+      package UAD_Pragma_Map is new GNAT.HTable.Simple_HTable
         (Header_Num => UAD_Pragma_Map_Header,
          Key        => Name_Id,
          Element    => Opt_N_Pragma_Id,
diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb
index a592494500f..9e60fa81de9 100644
--- a/gcc/ada/inline.adb
+++ b/gcc/ada/inline.adb
@@ -151,7 +151,7 @@ package body Inline is
    function Node_Hash (Id : Node_Id) return Node_Header_Num;
    --  Simple hash function for Node_Ids
 
-   package To_Pending_Instantiations is new GNAT.Htable.Simple_HTable
+   package To_Pending_Instantiations is new GNAT.HTable.Simple_HTable
      (Header_Num => Node_Header_Num,
       Element    => Int,
       No_Element => -1,
diff --git a/gcc/ada/lib.ads b/gcc/ada/lib.ads
index 928f6f840c8..f5c6571ced3 100644
--- a/gcc/ada/lib.ads
+++ b/gcc/ada/lib.ads
@@ -901,7 +901,7 @@ private
    function Unit_Name_Hash (Id : Unit_Name_Type) return Unit_Name_Header_Num;
    --  Simple hash function for Unit_Name_Types
 
-   package Unit_Names is new GNAT.Htable.Simple_HTable
+   package Unit_Names is new GNAT.HTable.Simple_HTable
      (Header_Num => Unit_Name_Header_Num,
       Element    => Unit_Number_Type,
       No_Element => No_Unit,
diff --git a/gcc/ada/repinfo.adb b/gcc/ada/repinfo.adb
index e236e4e54be..41afbb7ecbf 100644
--- a/gcc/ada/repinfo.adb
+++ b/gcc/ada/repinfo.adb
@@ -119,7 +119,7 @@ package body Repinfo is
    function Entity_Hash (Id : Entity_Id) return Entity_Header_Num;
    --  Simple hash function for Entity_Ids
 
-   package Relevant_Entities is new GNAT.Htable.Simple_HTable
+   package Relevant_Entities is new GNAT.HTable.Simple_HTable
      (Header_Num => Entity_Header_Num,
       Element    => Boolean,
       No_Element => False,
diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb
index de9cff14246..3575b04ad96 100644
--- a/gcc/ada/sem_ch12.adb
+++ b/gcc/ada/sem_ch12.adb
@@ -4990,14 +4990,6 @@ package body Sem_Ch12 is
 
       Preanalyze_Actuals (N, Act_Decl_Id);
 
-      --  Turn off style checking in instances. If the check is enabled on the
-      --  generic unit, a warning in an instance would just be noise. If not
-      --  enabled on the generic, then a warning in an instance is just wrong.
-      --  This must be done after analyzing the actuals, which do come from
-      --  source and are subject to style checking.
-
-      Style_Check := False;
-
       Init_Env;
       Env_Installed := True;
 
@@ -5016,6 +5008,14 @@ package body Sem_Ch12 is
          Check_Generic_Child_Unit (Gen_Id, Parent_Installed);
       end if;
 
+      --  Turn off style checking in instances. If the check is enabled on the
+      --  generic unit, a warning in an instance would just be noise. If not
+      --  enabled on the generic, then a warning in an instance is just wrong.
+      --  This must be done after analyzing the actuals and possibly installing
+      --  the parent, which come from source and are subject to style checking.
+
+      Style_Check := False;
+
       Gen_Unit := Entity (Gen_Id);
 
       --  A package instantiation is Ghost when it is subject to pragma Ghost
diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb
index 1d838e24bf4..90219ac8216 100644
--- a/gcc/ada/sem_ch7.adb
+++ b/gcc/ada/sem_ch7.adb
@@ -206,7 +206,7 @@ package body Sem_Ch7 is
    function Node_Hash (Id : Entity_Id) return Entity_Header_Num;
    --  Simple hash function for Entity_Ids
 
-   package Subprogram_Table is new GNAT.Htable.Simple_HTable
+   package Subprogram_Table is new GNAT.HTable.Simple_HTable
      (Header_Num => Entity_Header_Num,
       Element    => Boolean,
       No_Element => False,
@@ -216,7 +216,7 @@ package body Sem_Ch7 is
    --  Hash table to record which subprograms are referenced. It is declared
    --  at library level to avoid elaborating it for every call to Analyze.
 
-   package Traversed_Table is new GNAT.Htable.Simple_HTable
+   package Traversed_Table is new GNAT.HTable.Simple_HTable
      (Header_Num => Entity_Header_Num,
       Element    => Boolean,
       No_Element => False,
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 9e2083b8383..7f864d66ffa 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -31148,7 +31148,7 @@ package body Sem_Util is
          ----------------------
 
          package Interval_Sorting is
-           new Gnat.Heap_Sort_G (Move_Interval, Lt_Interval);
+           new GNAT.Heap_Sort_G (Move_Interval, Lt_Interval);
 
          -------------
          -- Is_Null --
-- { dg-do compile }
-- { dg-options "-gnatyr" }

with Ada.Containers.Vectors;
with Ada.Unchecked_Conversion;

package Style1 is

  package My_Vector is new ada.containers.vectors -- { dg-warning " bad casing" }
    (Index_Type   => Positive,
     Element_Type => Integer);

  type Word is mod 2**32;

  function My_Conv is new ada.unchecked_conversion -- { dg-warning " bad casing" }
    (Source => Integer,
     Target => Word);

end Style1;

Reply via email to