Commit a5226d6c by Arnaud Charlet

[multiple changes]

2013-04-25  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test
	for case of selecting from an unexpanded implicit dereference
	and do not make a recursive call on such a prefix.

2013-04-25  Doug Rupp  <rupp@adacore.com>

	* targparm.adb (VXF{_Str}): New tag for vaxfloat.
	(Get_Target_Parameters): Handle VXF tag.
	* targparm.ads (VAX_Float_On_Target): New boolean.
	* system-vms-ia64.ads (VAX_Float): New boolean.
	* frontend.adb (Frontend): Handle VAX float boolean.

From-SVN: r198284
parent 42fdc85b
2013-04-25 Gary Dismukes <dismukes@adacore.com>
* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test
for case of selecting from an unexpanded implicit dereference
and do not make a recursive call on such a prefix.
2013-04-25 Doug Rupp <rupp@adacore.com>
* targparm.adb (VXF{_Str}): New tag for vaxfloat.
(Get_Target_Parameters): Handle VXF tag.
* targparm.ads (VAX_Float_On_Target): New boolean.
* system-vms-ia64.ads (VAX_Float): New boolean.
* frontend.adb (Frontend): Handle VAX float boolean.
2013-04-25 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.ads, einfo.adb: Remove with and use clauses for Namet.
......
......@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
......@@ -56,6 +56,7 @@ with Sem_Ch8; use Sem_Ch8;
with Sem_SCIL;
with Sem_Elab; use Sem_Elab;
with Sem_Prag; use Sem_Prag;
with Sem_VFpt; use Sem_VFpt;
with Sem_Warn; use Sem_Warn;
with Sinfo; use Sinfo;
with Sinput; use Sinput;
......@@ -181,6 +182,18 @@ begin
Config_Pragmas := Empty_List;
end if;
-- Check for VAX Float
if Targparm.VAX_Float_On_Target then
-- pragma Float_Representation (VAX_Float);
Opt.Float_Format := 'V';
-- pragma Long_Float (G_Float);
Opt.Float_Format_Long := 'G';
Set_Standard_Fpt_Formats;
end if;
-- Now deal with specified config pragmas files if there are any
if Opt.Config_File_Names /= null then
......
......@@ -8089,10 +8089,20 @@ package body Sem_Util is
then
return True;
-- If the prefix is of an access type at this point, then we want
-- to return False, rather than calling this function recursively
-- on the access object (which itself might be a discriminant-
-- dependent component of some other object, but that isn't
-- relevant to checking the object passed to us). This avoids
-- issuing wrong errors when compiling with -gnatc, where there
-- can be implicit dereferences that have not been expanded.
elsif Is_Access_Type (Etype (Prefix (Object))) then
return False;
else
return
Is_Dependent_Component_Of_Mutable_Object (Prefix (Object));
end if;
elsif Nkind (Object) = N_Indexed_Component
......
......@@ -7,7 +7,7 @@
-- S p e c --
-- (OpenVMS 64bit Itanium GCC_ZCX DEC Threads Version) --
-- --
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
......@@ -144,6 +144,7 @@ private
Machine_Overflows : constant Boolean := False;
Machine_Rounds : constant Boolean := True;
OpenVMS : constant Boolean := True;
VAX_Float : constant Boolean := False;
Preallocated_Stacks : constant Boolean := False;
Signed_Zeros : constant Boolean := True;
Stack_Check_Default : constant Boolean := True;
......
......@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 1999-2012, Free Software Foundation, Inc. --
-- Copyright (C) 1999-2013, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
......@@ -68,6 +68,7 @@ package body Targparm is
SSL, -- Suppress_Standard_Library
UAM, -- Use_Ada_Main_Program_Name
VMS, -- OpenVMS
VXF, -- VAX Float
ZCD); -- ZCX_By_Default
Targparm_Flags : array (Targparm_Tags) of Boolean := (others => False);
......@@ -105,6 +106,7 @@ package body Targparm is
SSL_Str : aliased constant Source_Buffer := "Suppress_Standard_Library";
UAM_Str : aliased constant Source_Buffer := "Use_Ada_Main_Program_Name";
VMS_Str : aliased constant Source_Buffer := "OpenVMS";
VXF_Str : aliased constant Source_Buffer := "VAX_Float";
ZCD_Str : aliased constant Source_Buffer := "ZCX_By_Default";
-- The following defines a set of pointers to the above strings,
......@@ -142,6 +144,7 @@ package body Targparm is
SSL_Str'Access,
UAM_Str'Access,
VMS_Str'Access,
VXF_Str'Access,
ZCD_Str'Access);
-----------------------
......@@ -600,6 +603,7 @@ package body Targparm is
when SNZ => Signed_Zeros_On_Target := Result;
when UAM => Use_Ada_Main_Program_Name_On_Target := Result;
when VMS => OpenVMS_On_Target := Result;
when VXF => VAX_Float_On_Target := Result;
when ZCD => ZCX_By_Default_On_Target := Result;
goto Line_Loop_Continue;
......
......@@ -206,6 +206,9 @@ package Targparm is
OpenVMS_On_Target : Boolean := False;
-- Set to True if target is OpenVMS
VAX_Float_On_Target : Boolean := False;
-- Set to True if target float format is VAX Float
RTX_RTSS_Kernel_Module_On_Target : Boolean := False;
-- Set to True if target is RTSS module for RTX
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment