[multiple changes]

2010-06-17  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb: expand NOT for VMS types.
	* sem_util.adb: Use OpenVMS_On_Target for IS_VMS_Operator.

2010-06-17  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads: Add qualifier for '--no-elim-dispatch' gnatelim option.
	* gnat_ugn.texi (gnatelim): add description for --no-elim-dispatch
	option.

From-SVN: r160908
This commit is contained in:
Arnaud Charlet 2010-06-17 15:03:27 +02:00
parent 6f76a2575b
commit c77599d5f6
5 changed files with 43 additions and 2 deletions

View File

@ -1,3 +1,14 @@
2010-06-17 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb: expand NOT for VMS types.
* sem_util.adb: Use OpenVMS_On_Target for IS_VMS_Operator.
2010-06-17 Sergey Rybin <rybin@adacore.com>
* vms_data.ads: Add qualifier for '--no-elim-dispatch' gnatelim option.
* gnat_ugn.texi (gnatelim): add description for --no-elim-dispatch
option.
2010-06-17 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_Call): Do not expand a call to an internal

View File

@ -6631,7 +6631,7 @@ package body Exp_Ch4 is
---------------------
-- If the argument is other than a Boolean array type, there is no special
-- expansion required.
-- expansion required, except for VMS operations on signed integers.
-- For the packed case, we call the special routine in Exp_Pakd, except
-- that if the component size is greater than one, we use the standard
@ -6681,6 +6681,23 @@ package body Exp_Ch4 is
return;
end if;
-- For the VMS "not" on signed integer types, use conversion to and
-- from a predefined modular type.
if Is_VMS_Operator (Entity (N)) then
declare
LI : constant Entity_Id := RTE (RE_Unsigned_64);
begin
Rewrite (N,
Unchecked_Convert_To (Typ,
(Make_Op_Not (Loc,
Right_Opnd => Unchecked_Convert_To (LI, Right_Opnd (N))))));
Analyze_And_Resolve (N, Typ);
return;
end;
end if;
-- Only array types need any other processing
if not Is_Array_Type (Typ) then

View File

@ -10727,6 +10727,10 @@ is named @file{gnatelim.log} and is located in the current directory.
@cindex @option{^-log^/LOGFILE^} (@command{gnatelim})
Duplicate all the output sent to @file{stderr} into a specified log file.
@cindex @option{^--no-elim-dispatch^/NO_DISPATCH^} (@command{gnatelim})
@item ^--no-elim-dispatch^/NO_DISPATCH^
Do not generate pragmas for dispatching operations.
@cindex @option{^-o^/OUTPUT^} (@command{gnatelim})
@item ^-o^/OUTPUT^=@var{report_file}
Put @command{gnatelim} output into a specified file. If this file already exists,

View File

@ -7034,7 +7034,8 @@ package body Sem_Util is
begin
return Ekind (Op) = E_Function
and then Is_Intrinsic_Subprogram (Op)
and then Scope (Op) = System_Aux_Id;
and then Chars (Scope (Scope (Op))) = Name_System
and then OpenVMS_On_Target;
end Is_VMS_Operator;
-----------------

View File

@ -3597,6 +3597,13 @@ package VMS_Data is
-- HIGH A great number of messages are output, most of them not
-- being useful for the user.
S_Elim_Nodisp : aliased constant S := "/NO_DISPATCH " &
"--no-elim-dispatch";
-- /NONO_DISPATCH (D)
-- /NO_DISPATCH
--
-- Do not generate pragmas for dispatching operations.
S_Elim_Project : aliased constant S := "/PROJECT_FILE=<" &
"-P>";
-- /PROJECT_FILE=filename
@ -3709,6 +3716,7 @@ package VMS_Data is
S_Elim_Logfile 'Access,
S_Elim_Main 'Access,
S_Elim_Mess 'Access,
S_Elim_Nodisp 'Access,
S_Elim_Out 'Access,
S_Elim_Project 'Access,
S_Elim_Quiet 'Access,