+2009-04-16 Olivier Hainque <hainque@adacore.com>
+
+ * gnat_ugn.texi (gnatmem description): Make it explicit that
+ gnatmem is designed to work in association with static runtime
+ library only.
+
+2009-04-16 Thomas Quinot <quinot@adacore.com>
+
+ * sem_type.adb: Minor reformatting
+
+2009-04-16 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * s-osprim-darwin.adb, s-osprim-posix.adb (Clock): Add comment
+ concerning return codes of gettimeofday and return value check.
+
+2009-04-16 Ed Falis <falis@adacore.com>
+
+ * s-vxwext-kernel.ads (Int_Lock, Int_Unlock): set to convention C so
+ body can be renaming of imported routines.
+
+2009-04-16 Vasiliy Fofanov <fofanov@adacore.com>
+
+ * s-asthan-vms-alpha.adb: Disable warnings on alignment in a more
+ targeted fashion.
+
2009-04-15 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch9.adb: Comment improvements.
The @code{gnatmem} utility monitors dynamic allocation and
deallocation activity in a program, and displays information about
incorrect deallocations and possible sources of memory leaks.
-It provides three type of information:
+It is designed to work in association with a static runtime library
+only and in this context provides three types of information:
@itemize @bullet
@item
General information concerning memory management, such as the total
type Descriptor_Type is new SSE.Storage_Array (1 .. 48);
for Descriptor_Type'Alignment use Standard'Maximum_Alignment;
- pragma Warnings (Off, Descriptor_Type);
- -- Suppress harmless warnings about alignment.
- -- Should explain why this warning is harmless ???
type Descriptor_Ref is access all Descriptor_Type;
Process_AST_Ptr : constant AST_Handler := Process_AST'Access;
-- Reference to standard procedure descriptor for Process_AST
+ pragma Warnings (Off, "*alignment*");
+ -- Suppress harmless warnings about alignment.
+ -- Should explain why this warning is harmless ???
+
function To_Descriptor_Ref is new Ada.Unchecked_Conversion
(AST_Handler, Descriptor_Ref);
Original_Descriptor_Ref : constant Descriptor_Ref :=
To_Descriptor_Ref (Process_AST_Ptr);
+ pragma Warnings (On, "*alignment*");
+
begin
if ATID.Is_Terminated (Taskid) then
raise Program_Error;
pragma Unreferenced (Result);
begin
+ -- The return codes for gettimeofday are as follows (from man pages):
+ -- EPERM settimeofday is called by someone other than the superuser
+ -- EINVAL Timezone (or something else) is invalid
+ -- EFAULT One of tv or tz pointed outside accessible address space
+
+ -- None of these codes signal a potential clock skew, hence the return
+ -- value is never checked.
+
Result := gettimeofday (TV'Access, null);
return Duration (TV.tv_sec) + Duration (TV.tv_usec) / 10#1#E6;
end Clock;
pragma Unreferenced (Result);
begin
+ -- The return codes for gettimeofday are as follows (from man pages):
+ -- EPERM settimeofday is called by someone other than the superuser
+ -- EINVAL Timezone (or something else) is invalid
+ -- EFAULT One of tv or tz pointed outside accessible address space
+
+ -- None of these codes signal a potential clock skew, hence the return
+ -- value is never checked.
+
Result := gettimeofday (TV'Access, null);
return Duration (TV.tv_sec) + Duration (TV.tv_usec) / 10#1#E6;
end Clock;
type Interrupt_Vector is new System.Address;
function Int_Lock return int;
- pragma Inline (Int_Lock);
+ pragma Convention (C, Int_Lock);
function Int_Unlock return int;
- pragma Inline (Int_Unlock);
+ pragma Convention (C, Int_Unlock);
function Interrupt_Connect
(Vector : Interrupt_Vector;
then
return True;
- -- An aggregate is compatible with an array or record type.
+ -- An aggregate is compatible with an array or record type
elsif T2 = Any_Composite
and then Ekind (T1) in E_Array_Type .. E_Record_Subtype