]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Real commit for Hollerith constants.
authorFeng Wang <fengwang@gcc.gnu.org>
Thu, 7 Jul 2005 07:56:46 +0000 (07:56 +0000)
committerFeng Wang <fengwang@gcc.gnu.org>
Thu, 7 Jul 2005 07:56:46 +0000 (07:56 +0000)
From-SVN: r101689

gcc/fortran/gfortran.texi

index a1bc8782705a5d2d78c09671f57c57cfcc8bc16e..fcd2b0b6a3e0a922156bb224874ddd73ade6b58f 100644 (file)
@@ -632,6 +632,7 @@ of extensions, and @option{-std=legacy} allows both without warning.
 * Real array indices::
 * Unary operators::
 * Implicitly interconvert LOGICAL and INTEGER::
+* Hollerith constants support::
 @end menu
 
 @node Old-style kind specifications
@@ -804,6 +805,35 @@ converting from INTEGER to LOGICAL, the value zero is interpreted as
        i = .FALSE.
 @end smallexample
 
+@node Hollerith constants support
+@section Hollerith constants support
+@cindex Hollerith constants
+
+A Hollerith constant is a string of characters preceded by the letter @samp{H}
+or @samp{h}, and there must be an literal, unsigned, nonzero default integer
+constant indicating the number of characters in the string. Hollerith constants
+are stored as byte strings, one character per byte.
+
+@command{gfortran} supports Hollerith constants. They can be used as the right
+hands in the @code{DATA} statement and @code{ASSIGN} statement, also as the
+arguments. The left hands can be of Integer, Real, Complex and Logical type.
+The constant will be padded or trancated to fit the size of left hand.
+
+Valid Hollerith constants examples:
+@smallexample
+complex*16 x(2)
+data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/
+call foo (4H abc)
+x(1) = 16Habcdefghijklmnop
+@end smallexample
+
+Invalid Hollerith constants examples:
+@smallexample
+integer*4 a
+a = 8H12345678 ! The Hollerith constant is too long. It will be truncated.
+a = 0H         ! At least one character needed.
+@end smallexample
+
 @include intrinsic.texi
 @c ---------------------------------------------------------------------
 @c Contributing