summaryrefslogtreecommitdiff
path: root/gcc/ada/ttypes.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2013-04-11 13:21:21 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2013-04-11 13:21:21 +0000
commitcba2ae82b16bf383559d47de17d9c6941ab5be81 (patch)
treec26ec77aa0dc495db79fc307769ea6b8a6b21a59 /gcc/ada/ttypes.ads
parent489c9814633b5495bcde7f61998cdb5b6e80a383 (diff)
downloadgcc-cba2ae82b16bf383559d47de17d9c6941ab5be81.tar.gz
2013-04-11 Robert Dewar <dewar@adacore.com>
* back_end.adb (Register_Back_End_Types): Moved to Get_Targ * back_end.ads (C_String): Moved to Get_Targ (Register_Type_Proc): Moved to Get_Targ (Register_Back_End_Types): Moved to Get_Targ. * cstand.adb (Register_Float_Type): New interface (Create_Back_End_Float_Types): Use entries in FPT_Mode_Table. * get_targ.adb (Register_Back_End_Types): Moved here from Back_End. * get_targ.ads (C_String): Moved here from Back_End (Register_Type_Proc): Moved here from Back_End (Register_Back_End_Types): here from Back_End. * gnat1drv.adb (GGnat11drv): Add call to Write_Target_Dependent_Values; * lib-writ.ads, lib-writ.adb (Write_ALI): Remove section writing obsolete target dependent info. * opt.ads (Generate_Target_Dependent_Info): Removed (Target_Dependent_Info_Read): New flag (Target_Dependent_Info_Write): New flag * output.adb: Minor comment change * s-os_lib.ads: Minor reformatting * set_targ.ads, set_targ.adb: Minor reformatting. * switch-c.adb (Scan_Switches.First_Ptr): New variable (Scan_Front_End_Switches): Check -gnatd.b, -gnateT come first (Scan_Front_End_Switches): Handle -gnatet, -gnateT * ttypes.ads: Remove documentation section on target dependent info in ali file Remove four letter codes, no longer used Instead of using Get_Targ.Get_xxx, we use Set_Targ.xxx * usage.adb: Add usage lines for -gnatet/-gnateT * gcc-interface/Make-lang.in: Update dependencies. 2013-04-11 Thomas Quinot <quinot@adacore.com> * sem_ch4.adb: Update documentation. * sinfo.ads (N_Expression_With_Actions): Ditto. 2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): Add a guard to prevent the double insertion of the same aspect into a rep item list. This previously led to a circularity. 2013-04-11 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb (Eval_Attribute, case 'Access): Reject attribute reference if the prefix is the dereference of an anonymous access to subprogram type. * exp_attr.adb (Expand_N_Attribute_Reference, Access_Cases): Handle properly a reference to the current instance of a protected type from within a protected subprogram. * sem_res.adb (Find_Unique_Access_Type): Treat Attribute_Access_Type like Allocator_Type when resolving an equality operator. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197791 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/ttypes.ads')
-rw-r--r--gcc/ada/ttypes.ads133
1 files changed, 60 insertions, 73 deletions
diff --git a/gcc/ada/ttypes.ads b/gcc/ada/ttypes.ads
index be0162d6b44..924fb0e9051 100644
--- a/gcc/ada/ttypes.ads
+++ b/gcc/ada/ttypes.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- 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- --
@@ -26,7 +26,8 @@
-- This package contains constants describing target properties
with Types; use Types;
-with Get_Targ; use Get_Targ;
+with Get_Targ;
+with Set_Targ;
package Ttypes is
@@ -92,18 +93,6 @@ package Ttypes is
-- than referencing System.Storage_Unit, or Standard'Storage_Unit, both of
-- which would yield the host value.
- ----------------------------------------------
- -- Target-Dependent Information in ALI File --
- ----------------------------------------------
-
- -- If the flag Generate_Target_Dependent_Info is set (e.g. by use of the
- -- -gnatT switch), then the ALI file contains T lines representing each of
- -- the constants defined in this package (see Lib-Writ spec for details).
-
- -- These T lines use a code consisting of four upper case letters to
- -- identify the constant whose value is output. These four letter codes
- -- may be found as a comment in the declaration of each constant.
-
---------------------------------------------------
-- Target-Dependent Values for Types in Standard --
---------------------------------------------------
@@ -113,65 +102,64 @@ package Ttypes is
-- example, on some machines, Short_Float may be the same as Float, and
-- Long_Long_Float may be the same as Long_Float.
- Standard_Short_Short_Integer_Size : constant Pos := -- SINS
- Get_Char_Size;
- Standard_Short_Short_Integer_Width : constant Pos := -- SINW
- Width_From_Size
+ Standard_Short_Short_Integer_Size : constant Pos :=
+ Set_Targ.Char_Size;
+ Standard_Short_Short_Integer_Width : constant Pos :=
+ Get_Targ.Width_From_Size
(Standard_Short_Short_Integer_Size);
- Standard_Short_Integer_Size : constant Pos := -- SHIS
- Get_Short_Size;
- Standard_Short_Integer_Width : constant Pos := -- SHIW
- Width_From_Size
+ Standard_Short_Integer_Size : constant Pos :=
+ Set_Targ.Short_Size;
+ Standard_Short_Integer_Width : constant Pos :=
+ Get_Targ.Width_From_Size
(Standard_Short_Integer_Size);
- Standard_Integer_Size : constant Pos := -- INTS
- Get_Int_Size;
- Standard_Integer_Width : constant Pos := -- INTW
- Width_From_Size
+ Standard_Integer_Size : constant Pos :=
+ Set_Targ.Int_Size;
+ Standard_Integer_Width : constant Pos :=
+ Get_Targ.Width_From_Size
(Standard_Integer_Size);
- Standard_Long_Integer_Size : constant Pos := -- LINS
- Get_Long_Size;
- Standard_Long_Integer_Width : constant Pos := -- LINW
- Width_From_Size
+ Standard_Long_Integer_Size : constant Pos :=
+ Set_Targ.Long_Size;
+ Standard_Long_Integer_Width : constant Pos :=
+ Get_Targ.Width_From_Size
(Standard_Long_Integer_Size);
- Standard_Long_Long_Integer_Size : constant Pos := -- LLIS
- Get_Long_Long_Size;
- Standard_Long_Long_Integer_Width : constant Pos := -- LLIW
- Width_From_Size
+ Standard_Long_Long_Integer_Size : constant Pos :=
+ Set_Targ.Long_Long_Size;
+ Standard_Long_Long_Integer_Width : constant Pos :=
+ Get_Targ.Width_From_Size
(Standard_Long_Long_Integer_Size);
- Standard_Short_Float_Size : constant Pos := -- SFLS
- Get_Float_Size;
- Standard_Short_Float_Digits : constant Pos := -- SFLD
- Digits_From_Size
+ Standard_Short_Float_Size : constant Pos :=
+ Set_Targ.Float_Size;
+ Standard_Short_Float_Digits : constant Pos :=
+ Get_Targ.Digits_From_Size
(Standard_Short_Float_Size);
- Standard_Float_Size : constant Pos := -- FLTS
- Get_Float_Size;
- Standard_Float_Digits : constant Pos := -- FLTD
- Digits_From_Size
+ Standard_Float_Size : constant Pos :=
+ Set_Targ.Float_Size;
+ Standard_Float_Digits : constant Pos :=
+ Get_Targ.Digits_From_Size
(Standard_Float_Size);
- Standard_Long_Float_Size : constant Pos := -- LFLS
- Get_Double_Size;
- Standard_Long_Float_Digits : constant Pos := -- LFLD
- Digits_From_Size
+ Standard_Long_Float_Size : constant Pos :=
+ Set_Targ.Double_Size;
+ Standard_Long_Float_Digits : constant Pos :=
+ Get_Targ.Digits_From_Size
(Standard_Long_Float_Size);
- Standard_Long_Long_Float_Size : constant Pos := -- LLFS
- Get_Long_Double_Size;
- Standard_Long_Long_Float_Digits : constant Pos := -- LLFD
- Digits_From_Size
+ Standard_Long_Long_Float_Size : constant Pos :=
+ Set_Targ.Long_Double_Size;
+ Standard_Long_Long_Float_Digits : constant Pos :=
+ Get_Targ.Digits_From_Size
(Standard_Long_Long_Float_Size);
- Standard_Character_Size : constant Pos := -- CHAS
- Get_Char_Size;
+ Standard_Character_Size : constant Pos := Set_Targ.Char_Size;
- Standard_Wide_Character_Size : constant Pos := 16; -- WCHS
- Standard_Wide_Wide_Character_Size : constant Pos := 32; -- WWCS
+ Standard_Wide_Character_Size : constant Pos := 16;
+ Standard_Wide_Wide_Character_Size : constant Pos := 32;
-- Standard wide character sizes
-- Note: there is no specific control over the representation of
@@ -187,19 +175,18 @@ package Ttypes is
-- Target-Dependent Values for Types in System --
-------------------------------------------------
- System_Address_Size : constant Pos := Get_Pointer_Size; -- ADRS
+ System_Address_Size : constant Pos := Set_Targ.Pointer_Size;
-- System.Address'Size (also size of all thin pointers)
- System_Max_Binary_Modulus_Power : constant Pos := -- MBMP
+ System_Max_Binary_Modulus_Power : constant Pos :=
Standard_Long_Long_Integer_Size;
- System_Max_Nonbinary_Modulus_Power : constant Pos := -- MNMP
- Standard_Integer_Size;
+ System_Max_Nonbinary_Modulus_Power : constant Pos := Standard_Integer_Size;
- System_Storage_Unit : constant Pos := Get_Bits_Per_Unit; -- SUNI
- System_Word_Size : constant Pos := Get_Bits_Per_Word; -- WRDS
+ System_Storage_Unit : constant Pos := Set_Targ.Bits_Per_Unit;
+ System_Word_Size : constant Pos := Set_Targ.Bits_Per_Word;
- System_Tick_Nanoseconds : constant Pos := 1_000_000_000; -- TICK
+ System_Tick_Nanoseconds : constant Pos := 1_000_000_000;
-- Value of System.Tick in nanoseconds. At the moment, this is a fixed
-- constant (with value of 1.0 seconds), but later we should add this
-- value to the GCC configuration file so that its value can be made
@@ -209,25 +196,25 @@ package Ttypes is
-- Target-Dependent Values for Types in Interfaces --
-----------------------------------------------------
- Interfaces_Wchar_T_Size : constant Pos := Get_Wchar_T_Size; -- WCTS
+ Interfaces_Wchar_T_Size : constant Pos := Set_Targ.Wchar_T_Size;
----------------------------------------
-- Other Target-Dependent Definitions --
----------------------------------------
- Maximum_Alignment : constant Pos := Get_Maximum_Alignment; -- MAXA
+ Maximum_Alignment : constant Pos := Set_Targ.Maximum_Alignment;
-- The maximum alignment, in storage units, that an object or type may
-- require on the target machine.
- System_Allocator_Alignment : constant Pos := -- ALLA
- Get_System_Allocator_Alignment;
+ System_Allocator_Alignment : constant Pos :=
+ Set_Targ.System_Allocator_Alignment;
-- The alignment in storage units of addresses returned by malloc
- Max_Unaligned_Field : constant Pos := Get_Max_Unaligned_Field; -- MUNF
+ Max_Unaligned_Field : constant Pos := Set_Targ.Max_Unaligned_Field;
-- The maximum supported size in bits for a field that is not aligned
-- on a storage unit boundary.
- Bytes_Big_Endian : Boolean := Get_Bytes_BE /= 0; -- BEND
+ Bytes_Big_Endian : Boolean := Set_Targ.Bytes_BE /= 0;
-- Important note: for Ada purposes, the important setting is the bytes
-- endianness (Bytes_Big_Endian), not the bits value (Bits_Big_Endian).
-- This is because Ada bit addressing must be compatible with the byte
@@ -237,20 +224,20 @@ package Ttypes is
-- and thus relevant only to the back end. Note that this is a variable
-- rather than a constant, since it can be modified (flipped) by -gnatd8.
- Target_Strict_Alignment : Boolean := -- STRA
- Get_Strict_Alignment /= 0;
+ Target_Strict_Alignment : Boolean :=
+ Set_Targ.Strict_Alignment /= 0;
-- True if instructions will fail if data is misaligned. Note that this
-- is a variable rather than a constant since it can be modified (set to
-- True) if the debug flag -gnatd.A is used.
- Target_Double_Float_Alignment : constant Nat := -- DFLA
- Get_Double_Float_Alignment;
+ Target_Double_Float_Alignment : constant Nat :=
+ Set_Targ.Double_Float_Alignment;
-- The default alignment of "double" floating-point types, i.e. floating
-- point types whose size is equal to 64 bits, or 0 if this alignment is
-- not specifically capped.
- Target_Double_Scalar_Alignment : constant Nat := -- DSCA
- Get_Double_Scalar_Alignment;
+ Target_Double_Scalar_Alignment : constant Nat :=
+ Set_Targ.Double_Scalar_Alignment;
-- The default alignment of "double" or larger scalar types, i.e. scalar
-- types whose size is greater or equal to 64 bits, or 0 if this alignment
-- is not specifically capped.