Human-readable file and unit names in SPARK cross-references were only needed to make the ALI file human-redable. They are now removed (but can be added to the debug routine dspark if needed).
Modified code is only executed as part of GNATprove, so no impact on the frontend. Behaviour unaffected, so no test provided. Tested on x86_64-pc-linux-gnu, committed on trunk 2017-11-08 Piotr Trojanek <troja...@adacore.com> * spark_xrefs.ads (SPARK_File_Record): Remove string components. * spark_xrefs.adb (dspark): Remove pretty-printing of removed SPARK_File_Record components. * lib-xref-spark_specific.adb (Add_SPARK_File): Do not store string representation of files/units.
Index: lib-xref-spark_specific.adb =================================================================== --- lib-xref-spark_specific.adb (revision 254540) +++ lib-xref-spark_specific.adb (working copy) @@ -208,11 +208,6 @@ procedure Traverse_Scopes is new Traverse_Compilation_Unit (Detect_And_Add_SPARK_Scope); - -- Local variables - - File_Name : String_Ptr; - Unit_File_Name : String_Ptr; - -- Start of processing for Add_SPARK_File begin @@ -240,29 +235,10 @@ Traverse_Scopes (CU => Cunit (Ubody)); end if; - -- Make entry for new file in file table - - Get_Name_String (Reference_Name (File)); - File_Name := new String'(Name_Buffer (1 .. Name_Len)); - - -- For subunits, also retrieve the file name of the unit. Only do so if - -- unit has an associated compilation unit. - - if Present (Cunit (Unit (File))) - and then Nkind (Unit (Cunit (Unit (File)))) = N_Subunit - then - Get_Name_String (Reference_Name (Main_Source_File)); - Unit_File_Name := new String'(Name_Buffer (1 .. Name_Len)); - else - Unit_File_Name := null; - end if; - SPARK_File_Table.Append ( - (File_Name => File_Name, - Unit_File_Name => Unit_File_Name, - File_Num => Dspec, - From_Scope => From, - To_Scope => SPARK_Scope_Table.Last)); + (File_Num => Dspec, + From_Scope => From, + To_Scope => SPARK_Scope_Table.Last)); end Add_SPARK_File; --------------------- Index: spark_xrefs.adb =================================================================== --- spark_xrefs.adb (revision 254539) +++ spark_xrefs.adb (working copy) @@ -48,13 +48,6 @@ Write_Int (Int (Index)); Write_Str (". File_Num = "); Write_Int (Int (AFR.File_Num)); - Write_Str (" File_Name = """); - - if AFR.File_Name /= null then - Write_Str (AFR.File_Name.all); - end if; - - Write_Char ('"'); Write_Str (" From = "); Write_Int (Int (AFR.From_Scope)); Write_Str (" To = "); Index: spark_xrefs.ads =================================================================== --- spark_xrefs.ads (revision 254539) +++ spark_xrefs.ads (working copy) @@ -154,13 +154,6 @@ -- entries have been constructed. type SPARK_File_Record is record - File_Name : String_Ptr; - -- Pointer to file name in ALI file - - Unit_File_Name : String_Ptr; - -- Pointer to file name for unit in ALI file, when File_Name refers to a - -- subunit; otherwise null. - File_Num : Nat; -- Dependency number in ALI file