This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [patch, fortran, committed] Document COMPLEX*k syntax quirk.
- From: Brooks Moses <brooks dot moses at codesourcery dot com>
- To: fortran at gcc dot gnu dot org
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 22 Feb 2007 13:19:25 -0800
- Subject: Re: [patch, fortran, committed] Document COMPLEX*k syntax quirk.
- References: <45DE081E.2070902@codesourcery.com>
Brooks Moses wrote:
-------------------------------------------------------------------
2007-02-22 Brooks Moses <brooks.moses@codesourcery.com>
* gfortran.texi (Old-style kind specifications): Document
special handling of old-style kind specifiers for COMPLEX.
* decl.c (gfc_match_old_kind_spec): Documented kind/bytesize
assumptions in comment.
-------------------------------------------------------------------
I forgot the patch; here it is.
- Brooks
Index: gfortran.texi
===================================================================
--- gfortran.texi (revision 122237)
+++ gfortran.texi (working copy)
@@ -837,19 +837,21 @@
@section Old-style kind specifications
@cindex Kind specifications
-GNU Fortran allows old-style kind specifications in
-declarations. These look like:
+GNU Fortran allows old-style kind specifications in declarations. These
+look like:
@smallexample
- TYPESPEC*k x,y,z
+ TYPESPEC*size x,y,z
@end smallexample
where @code{TYPESPEC} is a basic type (@code{INTEGER}, @code{REAL},
-etc.), and where @code{k} is a valid kind number for that type. The
-statement then declares @code{x}, @code{y} and @code{z} to be of
-type @code{TYPESPEC} with kind @code{k}. This is equivalent to the
-standard conforming declaration
+etc.), and where @code{size} is a byte count corresponding to a valid
+kind for that type. The statement then declares @code{x}, @code{y} and
+@code{z} to be of type @code{TYPESPEC} with the appropriate kind. This
+is equivalent to the standard conforming declaration
@smallexample
TYPESPEC(k) x,y,z
@end smallexample
+where @code{k} is equal to @code{size} for most types, but is equal to
+@code{size/2} for the @code{COMPLEX} type.
@node Old-style variable initialization
@section Old-style variable initialization
Index: decl.c
===================================================================
--- decl.c (revision 122237)
+++ decl.c (working copy)
@@ -1373,7 +1373,9 @@
}
-/* Match an extended-f77 kind specification. */
+/* Match an extended-f77 kind specification. This assumes that the kind
+ number is equal to the byte size for non-COMPLEX types, and equal to
+ half of the byte size for COMPLEX. */
match
gfc_match_old_kind_spec (gfc_typespec *ts)