===================================================================
@@ -310,6 +310,13 @@
procedure Check_TSD (TSD : Type_Specific_Data_Ptr) is
T : Tag;
+ E_Tag_Len : constant Integer := Length (TSD.External_Tag);
+ E_Tag : String (1 .. E_Tag_Len);
+ for E_Tag'Address use TSD.External_Tag.all'Address;
+ pragma Import (Ada, E_Tag);
+
+ -- Start of processing for Check_TSD
+
begin
-- Verify that the external tag of this TSD is not registered in the
-- runtime hash table.
@@ -317,7 +324,7 @@
T := External_Tag_HTable.Get (To_Address (TSD.External_Tag));
if T /= null then
- raise Program_Error with "duplicated external tag";
+ raise Program_Error with "duplicated external tag " & E_Tag;
end if;
end Check_TSD;
@@ -718,6 +725,8 @@
-- Length --
------------
+ -- Should this be reimplemented using the strlen GCC builtin???
+
function Length (Str : Cstring_Ptr) return Natural is
Len : Integer;