summaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorbrooks <brooks@138bc75d-0d04-0410-961f-82ee72b054a4>2007-03-06 08:00:02 +0000
committerbrooks <brooks@138bc75d-0d04-0410-961f-82ee72b054a4>2007-03-06 08:00:02 +0000
commitd10f89eeb9a7143e9b5562be5e531b2df6bbf8af (patch)
treed5fa4c7265774e182f16e45d4717ea76d3b710de /gcc/fortran
parentede983646af0822c601172a2d67b0d3ec4985695 (diff)
downloadgcc-d10f89eeb9a7143e9b5562be5e531b2df6bbf8af.tar.gz
* gfortran.texi (Old-style kind specifications): Document
special handling of old-style kind specifiers for COMPLEX. * decl.c (gfc_match_old_kind_spec): Document kind/bytesize assumptions for COMPLEX in comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122599 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/decl.c6
-rw-r--r--gcc/fortran/gfortran.texi12
3 files changed, 18 insertions, 7 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index b3fb4c38669..73bd633f77d 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,12 @@
2007-03-05 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): Document kind/bytesize
+ assumptions for COMPLEX in comment.
+
+2007-03-05 Brooks Moses <brooks.moses@codesourcery.com>
+
PR 31050
* gfortranspec.c (lang_specific_driver): Update program
name and copyright date.
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index f6ffc1df7fe..173ad45eb21 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -1373,9 +1373,9 @@ cleanup:
}
-/* 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 an extended-f77 "TYPESPEC*bytesize"-style kind specification.
+ This assumes that the byte size is equal to the kind number for
+ non-COMPLEX types, and equal to twice the kind number for COMPLEX. */
match
gfc_match_old_kind_spec (gfc_typespec *ts)
diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi
index 30a84c77eb7..3c185630967 100644
--- a/gcc/fortran/gfortran.texi
+++ b/gcc/fortran/gfortran.texi
@@ -840,14 +840,18 @@ look like:
@smallexample
TYPESPEC*size x,y,z
@end smallexample
+@noindent
where @code{TYPESPEC} is a basic type (@code{INTEGER}, @code{REAL},
-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
+etc.), and where @code{size} is a byte count corresponding to the
+storage size of a valid kind for that type. (For @code{COMPLEX}
+variables, @code{size} is the total size of the real and imaginary
+parts.) 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
+@noindent
where @code{k} is equal to @code{size} for most types, but is equal to
@code{size/2} for the @code{COMPLEX} type.