aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2013-04-25 12:19:59 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2013-04-25 12:19:59 +0200
commita5226d6cf63c9e43cf34783278df4b803f6f5e1a (patch)
treebf16c1b2f4661f506fec58731f50f90e5617d96d /gcc
parent42fdc85bfbf3b7eab8b860c2fcfdc3b7696acb2e (diff)
downloadgcc-a5226d6cf63c9e43cf34783278df4b803f6f5e1a.zip
gcc-a5226d6cf63c9e43cf34783278df4b803f6f5e1a.tar.gz
gcc-a5226d6cf63c9e43cf34783278df4b803f6f5e1a.tar.bz2
[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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog14
-rw-r--r--gcc/ada/frontend.adb15
-rw-r--r--gcc/ada/sem_util.adb12
-rw-r--r--gcc/ada/system-vms-ia64.ads3
-rw-r--r--gcc/ada/targparm.adb6
-rw-r--r--gcc/ada/targparm.ads3
6 files changed, 49 insertions, 4 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 71295d8..ec3f06c2 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,17 @@
+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.
diff --git a/gcc/ada/frontend.adb b/gcc/ada/frontend.adb
index 749e948..08536c4 100644
--- a/gcc/ada/frontend.adb
+++ b/gcc/ada/frontend.adb
@@ -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
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 095510e..d95f69d 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -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
diff --git a/gcc/ada/system-vms-ia64.ads b/gcc/ada/system-vms-ia64.ads
index bdf2b2c..2f1c27c 100644
--- a/gcc/ada/system-vms-ia64.ads
+++ b/gcc/ada/system-vms-ia64.ads
@@ -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;
diff --git a/gcc/ada/targparm.adb b/gcc/ada/targparm.adb
index 5ed8408..ce3da1c 100644
--- a/gcc/ada/targparm.adb
+++ b/gcc/ada/targparm.adb
@@ -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;
diff --git a/gcc/ada/targparm.ads b/gcc/ada/targparm.ads
index 52a6ee4..094c340 100644
--- a/gcc/ada/targparm.ads
+++ b/gcc/ada/targparm.ads
@@ -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