From 2941bf7dabfa03f232316f2c29fa7e13328b09ba Mon Sep 17 00:00:00 2001 From: Arnaud Charlet Date: Fri, 18 Jul 2014 13:00:59 +0200 Subject: [PATCH] [multiple changes] 2014-07-18 Robert Dewar * gnat_rm.texi: Remove mention of obsolete attributes Max[_Interrupt]_Priority, which have never been implemented (or at the very least were removed long ago if they ever were implemented. Add documentation of Max[_Interrupt]_Priority constants in package System. * ttypes.ads: Document actual handling of package System, rather than a historical fantasy version. Remove mention of non-existent attributes Max[_Interrupt]_Priority. 2014-07-18 Pascal Obry * a-witeio.adb (Put): No 16-bit character output when text translation is disabled. * i-cstrea.ads: Code clean up. From-SVN: r212813 --- gcc/ada/ChangeLog | 16 ++++++++++++++++ gcc/ada/a-witeio.adb | 2 +- gcc/ada/gnat_rm.texi | 31 +++++++++---------------------- gcc/ada/i-cstrea.ads | 12 +++++++----- gcc/ada/ttypes.ads | 30 ++++++++++++++---------------- 5 files changed, 47 insertions(+), 44 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ab3d1d3..49cbaec 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,21 @@ 2014-07-18 Robert Dewar + * gnat_rm.texi: Remove mention of obsolete attributes + Max[_Interrupt]_Priority, which have never been implemented + (or at the very least were removed long ago if they ever were + implemented. Add documentation of Max[_Interrupt]_Priority + constants in package System. + * ttypes.ads: Document actual handling of package System, + rather than a historical fantasy version. Remove mention of + non-existent attributes Max[_Interrupt]_Priority. + +2014-07-18 Pascal Obry + + * a-witeio.adb (Put): No 16-bit character output when text + translation is disabled. + * i-cstrea.ads: Code clean up. +2014-07-18 Robert Dewar + * gnat_rm.texi: Document that Wchar_T_Size and Word_Size are static attributes. diff --git a/gcc/ada/a-witeio.adb b/gcc/ada/a-witeio.adb index 6324906..59e06e2 100644 --- a/gcc/ada/a-witeio.adb +++ b/gcc/ada/a-witeio.adb @@ -1257,7 +1257,7 @@ package body Ada.Wide_Text_IO is FIO.Check_Write_Status (AP (File)); if wide_text_translation_required /= 0 - or else File.Text_Encoding /= Default_Text + or else File.Text_Encoding in Non_Default_Text_Content_Encoding then set_mode (fileno (File.Stream), File.Text_Encoding); Discard := fputwc (Wide_Character'Pos (Item), File.Stream); diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi index 1615b46..ed78288 100644 --- a/gcc/ada/gnat_rm.texi +++ b/gcc/ada/gnat_rm.texi @@ -363,8 +363,6 @@ Implementation Defined Attributes * Attribute Loop_Entry:: * Attribute Machine_Size:: * Attribute Mantissa:: -* Attribute Max_Interrupt_Priority:: -* Attribute Max_Priority:: * Attribute Maximum_Alignment:: * Attribute Mechanism_Code:: * Attribute Null_Parameter:: @@ -8399,8 +8397,6 @@ consideration, you should minimize the use of these attributes. * Attribute Loop_Entry:: * Attribute Machine_Size:: * Attribute Mantissa:: -* Attribute Max_Interrupt_Priority:: -* Attribute Max_Priority:: * Attribute Maximum_Alignment:: * Attribute Mechanism_Code:: * Attribute Null_Parameter:: @@ -8965,23 +8961,6 @@ The @code{Mantissa} attribute is provided for compatibility with Ada 83. See the Ada 83 reference manual for an exact description of the semantics of this attribute. -@node Attribute Max_Interrupt_Priority -@unnumberedsec Attribute Max_Interrupt_Priority -@cindex Interrupt priority, maximum -@findex Max_Interrupt_Priority -@noindent -@code{Standard'Max_Interrupt_Priority} (@code{Standard} is the only -permissible prefix), provides the same value as -@code{System.Max_Interrupt_Priority}. - -@node Attribute Max_Priority -@unnumberedsec Attribute Max_Priority -@cindex Priority, maximum -@findex Max_Priority -@noindent -@code{Standard'Max_Priority} (@code{Standard} is the only permissible -prefix) provides the same value as @code{System.Max_Priority}. - @node Attribute Maximum_Alignment @unnumberedsec Attribute Maximum_Alignment @cindex Alignment, maximum @@ -13056,7 +13035,15 @@ and its language-defined children. See 13.7(2). @end cartouche @noindent See the definition of these packages in files @file{system.ads} and -@file{s-stoele.ads}. +@file{s-stoele.ads}. Note that two declarations are added to package +System. + +@smallexample @c ada + Max_Priority : constant Positive := + Priority'Last; + Max_Interrupt_Priority : constant Positive := + Interrupt_Priority'Last; +@end smallexample @sp 1 @item diff --git a/gcc/ada/i-cstrea.ads b/gcc/ada/i-cstrea.ads index 674aa02..48fbfc4 100644 --- a/gcc/ada/i-cstrea.ads +++ b/gcc/ada/i-cstrea.ads @@ -243,16 +243,18 @@ package Interfaces.C_Streams is -- -- This encoding is system dependent and only used on Windows systems. -- - -- Note that modifications to Content_Encoding must be synchronized - -- with sysdep.c:__gnat_set_mode. + -- Note that modifications to Content_Encoding must be synchronized with + -- sysdep.c:__gnat_set_mode. subtype Text_Content_Encoding is Content_Encoding range Default_Text .. U16text; + subtype Non_Default_Text_Content_Encoding + is Content_Encoding range Text .. U16text; + procedure set_mode (handle : int; Mode : Content_Encoding); - -- As above but can set the handle to any mode. - -- On Windows this can be used to have proper 16-bit wide-string output - -- on the console for example. + -- As above but can set the handle to any mode. On Windows this can be used + -- to have proper 16-bit wide-string output on the console for example. ---------------------------- -- Full Path Name support -- diff --git a/gcc/ada/ttypes.ads b/gcc/ada/ttypes.ads index efeea41..0aca903 100644 --- a/gcc/ada/ttypes.ads +++ b/gcc/ada/ttypes.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2013, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2014, 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- -- @@ -64,21 +64,19 @@ package Ttypes is -- values needed in Stand are obtained by direct reference to Ttypes -- and Ttypef. - -- For package System, the required constant values are obtained by - -- referencing appropriate attributes. Ada 95 already defines most of - -- the required attributes, and GNAT specific attributes have been - -- defined to cover the remaining cases (such as Storage_Unit). The - -- evaluation of these attributes obtains the required target dependent - -- values from Ttypes and Ttypef. The additional attributes that have - -- been added to GNAT (Address_Size, Storage_Unit, Word_Size, Max_Priority, - -- and Max_Interrupt_Priority) are for almost all purposes redundant with - -- respect to the corresponding references to System constants. For example - -- in a program, System.Address_Size and Standard'Address_Size yield the - -- same value. The critical use of the attribute is in writing the System - -- declaration of Address_Size which of course cannot refer to itself. By - -- this means we achieve complete target independence in the source code - -- of package System, i.e. there is only one copy of the source of System - -- for all targets. + -- For package System, there is a separate version for each target, with + -- explicit declarations of the required, constants. + + -- Historical note: Originally we had in mind dealing with target dependent + -- differences by referencing appropriate attributes. Ada 95 already + -- defines most of the required attributes, and GNAT specific attributes + -- were defined to cover the remaining cases (such as Storage_Unit). + -- The additional attributes that have been added to GNAT (Address_Size, + -- Storage_Unit, and Word_Size) are redundant with respect to the + -- corresponding references to System constants. For example in a program, + -- System.Address_Size and Standard'Address_Size yield the same value. + -- These attributes have been retained for compatibility purposes, but + -- serve no purpose at this stage. -- Note that during compilation there are two versions of package System -- around. The version that is directly with'ed by compiler packages -- 2.7.4