From a2d3b39c41ebc8912f3df4942d3b1b456d0b46fa Mon Sep 17 00:00:00 2001 From: charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri, 17 Feb 2006 16:08:58 +0000 Subject: [PATCH] 2006-02-17 Robert Dewar <dewar@adacore.com> * s-wchcnv.adb: Document handling of [ on output (we do not change this to ["5B"] and the new comments say why not. * gnat_ugn.texi: Add note for -gnatVo that this now includes the cases of type conversions and qualified expressions. Add comments on handling of brackets encoding for Text_IO git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111198 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/gnat_ugn.texi | 3 ++- gcc/ada/s-wchcnv.adb | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 96b016151fcb..a3b21c3fe7ca 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -5275,7 +5275,8 @@ Arguments for predefined operators and attributes are validity checked. This includes all operators in package @code{Standard}, the shift operators defined as intrinsic in package @code{Interfaces} and operands for attributes such as @code{Pos}. Checks are also made -on individual component values for composite comparisons. +on individual component values for composite comparisons, and on the +expressions in type conversions and qualified expressions. @item -gnatVp @emph{Validity checks for parameters.} diff --git a/gcc/ada/s-wchcnv.adb b/gcc/ada/s-wchcnv.adb index e3afa9c05e7b..ecbcb26c4bb8 100644 --- a/gcc/ada/s-wchcnv.adb +++ b/gcc/ada/s-wchcnv.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, 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- -- @@ -411,9 +411,26 @@ package body System.WCh_Cnv is end if; when WCEM_Brackets => + + -- Values in the range 0-255 are directly output. Note that there + -- is some issue with [ (16#5B#] since this will cause confusion + -- if the resulting string is interpreted using brackets encoding. + + -- One possibility would be to always output [ as ["5B"] but in + -- practice this is undesirable, since for example normal use of + -- Wide_Text_IO for output (much more common than input), really + -- does want to be able to say something like + + -- Put_Line ("Start of output [first run]"); + + -- and have it come out as intended, rather than contaminated by + -- a ["5B"] sequence in place of the left bracket. + if Val < 256 then Out_Char (Character'Val (Val)); + -- Otherwise use brackets notation for vales greater than 255 + else Out_Char ('['); Out_Char ('"'); -- GitLab