+2009-07-09 Thomas Quinot <quinot@adacore.com>
+
+ * g-socket.adb (Check_Selector): Do not create local copies of the
+ socket sets on the stack.
+
+2009-07-09 Vasiliy Fofanov <fofanov@adacore.com>
+
+ * gnat_ugn.texi: Add missing VMS translations.
+
2009-07-09 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Precondition): Do not analyze the
Res : C.int;
Last : C.int;
RSig : Socket_Type renames Selector.R_Sig_Socket;
- RSet : Socket_Set_Type;
- WSet : Socket_Set_Type;
- ESet : Socket_Set_Type;
TVal : aliased Timeval;
TPtr : Timeval_Access;
TPtr := TVal'Unchecked_Access;
end if;
- -- Copy R_Socket_Set in RSet and add read signalling socket
+ -- Add read signalling socket
- RSet := R_Socket_Set;
- Set (RSet, RSig);
+ Set (R_Socket_Set, RSig);
- -- Copy W_Socket_Set in WSet
-
- WSet := W_Socket_Set;
-
- -- Copy E_Socket_Set in ESet
-
- ESet := E_Socket_Set;
-
- Last := C.int'Max (C.int'Max (C.int (RSet.Last),
- C.int (WSet.Last)),
- C.int (ESet.Last));
+ Last := C.int'Max (C.int'Max (C.int (R_Socket_Set.Last),
+ C.int (W_Socket_Set.Last)),
+ C.int (E_Socket_Set.Last));
Res :=
C_Select
(Last + 1,
- RSet.Set'Access,
- WSet.Set'Access,
- ESet.Set'Access,
+ R_Socket_Set.Set'Access,
+ W_Socket_Set.Set'Access,
+ E_Socket_Set.Set'Access,
TPtr);
if Res = Failure then
-- If Select was resumed because of read signalling socket, read this
-- data and remove socket from set.
- if Is_Set (RSet, RSig) then
- Clear (RSet, RSig);
+ if Is_Set (R_Socket_Set, RSig) then
+ Clear (R_Socket_Set, RSig);
Res := Signalling_Fds.Read (C.int (RSig));
Status := Expired;
end if;
- -- Update RSet, WSet and ESet in regard to their new socket sets
-
- Narrow (RSet);
- Narrow (WSet);
- Narrow (ESet);
-
- -- Reset RSet as it should be if R_Sig_Socket was not added
-
- if Is_Empty (RSet) then
- Empty (RSet);
- end if;
-
- if Is_Empty (WSet) then
- Empty (WSet);
- end if;
-
- if Is_Empty (ESet) then
- Empty (ESet);
- end if;
-
- -- Deliver RSet, WSet and ESet
+ -- Update socket sets in regard to their new contents
- R_Socket_Set := RSet;
- W_Socket_Set := WSet;
- E_Socket_Set := ESet;
+ Narrow (R_Socket_Set);
+ Narrow (W_Socket_Set);
+ Narrow (E_Socket_Set);
end Check_Selector;
-----------
Typically
these tools do the necessary compilations automatically, so you should
not have to specify this switch in normal operation.
-Note that the combination of switches @option{-gnatct} generates a tree
-in the form required by ASIS applications.
+Note that the combination of switches @option{^-gnatct^/NOLOAD /TREE_OUTPUT^}
+generates a tree in the form required by ASIS applications.
@item -gnatu
@cindex @option{-gnatu} (@command{gcc})
@code{Style_Checks} (for further information about this pragma,
@pxref{Pragma Style_Checks,,, gnat_rm, GNAT Reference Manual}). For example,
@code{+RStyle_Checks:O} rule option activates and adds to @command{gnatcheck}
-output the compiler style check that corresponds to @code{-gnatyO} style
-check option.
+output the compiler style check that corresponds to
+@code{^-gnatyO^/STYLE_CHECKS=OVERRIDING_INDICATORS^} style check option.
@item Warnings
To record compiler warnings (@pxref{Warning Message Control}), use the rule