diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-04-11 13:21:21 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-04-11 13:21:21 +0000 |
commit | cba2ae82b16bf383559d47de17d9c6941ab5be81 (patch) | |
tree | c26ec77aa0dc495db79fc307769ea6b8a6b21a59 /gcc/ada/ttypes.ads | |
parent | 489c9814633b5495bcde7f61998cdb5b6e80a383 (diff) | |
download | gcc-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.ads | 133 |
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. |