Commit 3ae9eb27 by Steven G. Kargl Committed by Steven G. Kargl

gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,…

gfortran.h (option_t): Change d8, i8, r8 to flag_default_double, flag_default_integer, flag_default_real

* gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
  flag_default_integer, flag_default_real
* invoke.texi: Update documentation
* lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8
  fdefault-integer-8, and fdefault-real-8 definitions.
* options.c (gfc_init_options): Set option defaults
  (gfc_handle_option): Handle command line options.
* trans-types.c (gfc_init_kinds): Use options.

From-SVN: r97221
parent 15cc1841
2005-03-29 Steven G. Kargl <kargls@comcast.net>
* gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
flag_default_integer, flag_default_real
* invoke.texi: Update documentation
* lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8
fdefault-integer-8, and fdefault-real-8 definitions.
* options.c (gfc_init_options): Set option defaults
(gfc_handle_option): Handle command line options.
* trans-types.c (gfc_init_kinds): Use options.
2005-03-29 Keith Besaw <kbesaw@us.ibm.com> 2005-03-29 Keith Besaw <kbesaw@us.ibm.com>
* f95-lang.c (builtin_function): Process the attrs parameter * f95-lang.c (builtin_function): Process the attrs parameter
......
...@@ -1402,6 +1402,9 @@ typedef struct ...@@ -1402,6 +1402,9 @@ typedef struct
int warn_surprising; int warn_surprising;
int warn_unused_labels; int warn_unused_labels;
int flag_default_double;
int flag_default_integer;
int flag_default_real;
int flag_dollar_ok; int flag_dollar_ok;
int flag_underscoring; int flag_underscoring;
int flag_second_underscore; int flag_second_underscore;
...@@ -1413,9 +1416,7 @@ typedef struct ...@@ -1413,9 +1416,7 @@ typedef struct
int flag_repack_arrays; int flag_repack_arrays;
int q_kind; int q_kind;
int r8;
int i8;
int d8;
int warn_std; int warn_std;
int allow_std; int allow_std;
int warn_nonstd_intrinsics; int warn_nonstd_intrinsics;
......
...@@ -119,7 +119,7 @@ by type. Explanations are in the following sections. ...@@ -119,7 +119,7 @@ by type. Explanations are in the following sections.
-fdollar-ok -fimplicit-none -fmax-identifier-length @gol -fdollar-ok -fimplicit-none -fmax-identifier-length @gol
-std=@var{std} -std=@var{std}
-ffixed-line-length-@var{n} -ffixed-line-length-none @gol -ffixed-line-length-@var{n} -ffixed-line-length-none @gol
-i8 -r8 -d8} -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8 }
@item Warning Options @item Warning Options
@xref{Warning Options,,Options to Request or Suppress Warnings}. @xref{Warning Options,,Options to Request or Suppress Warnings}.
...@@ -183,6 +183,23 @@ Specify the layout used by the the source file. The free form layout ...@@ -183,6 +183,23 @@ Specify the layout used by the the source file. The free form layout
was introduced in Fortran 90. Fixed form was traditionally used in was introduced in Fortran 90. Fixed form was traditionally used in
older Fortran programs. older Fortran programs.
@cindex option, -fdefault-double-8
@cindex -fdefault-double-8, option
@item -fdefault-double-8
Set the "DOUBLE PRECISION" type to an 8 byte wide.
@cindex option, -fdefault-integer-8
@cindex -fdefault-integer-8, option
@item -fdefault-integer-8
Set the default integer and logical types to an 8 byte wide type.
Do nothing if this is already the default.
@cindex option, -fdefault-real-8
@cindex -fdefault-real-8, option
@item -fdefault-real-8
Set the default real type to an 8 byte wide type.
Do nothing if this is already the default.
@cindex -fdollar-ok option @cindex -fdollar-ok option
@cindex options, -fdollar-ok @cindex options, -fdollar-ok
@item -fdollar-ok @item -fdollar-ok
...@@ -233,23 +250,6 @@ Specify that no implicit typing is allowed, unless overridden by explicit ...@@ -233,23 +250,6 @@ Specify that no implicit typing is allowed, unless overridden by explicit
Conform to the specified standard. Allowed values for @var{std} are Conform to the specified standard. Allowed values for @var{std} are
@samp{gnu}, @samp{f95} and @samp{f90}. @samp{gnu}, @samp{f95} and @samp{f90}.
@cindex option, -i8
@cindex -i8, option
@cindex option, -r8
@cindex -r8, option
@cindex option, -d8
@cindex -d8, option
@item -i8
@item -r8
@item -d8
The @option{-i8} and @option{-r8} options set the default @code{INTEGER}
and @code{REAL} kinds to @code{KIND=8}. The @option{-d8} option is
equivalent to specifying both @option{-i8} and @option{-r8}.
When @option{-r8} is specified, the @code{DOUBLE PRECISION} kind is set
to @code{KIND=16} if the target supports a 16 byte floating point format.
If no such format exists, the @code{DOUBLE PRECISION} kind is unchanged.
@end table @end table
@node Warning Options @node Warning Options
......
...@@ -69,9 +69,17 @@ Wunused-labels ...@@ -69,9 +69,17 @@ Wunused-labels
F95 F95
Warn when a label is unused Warn when a label is unused
d8 fdefault-double-8
F95 RejectNegative F95
Set the default real and integer kinds to double precision Set the default double precision kind to an 8 byte wide type
fdefault-integer-8
F95
Set the default integer kind to an 8 byte wide type
fdefault-real-8
F95
Set the default real kind to an 8 byte wide type
fdollar-ok fdollar-ok
F95 F95
...@@ -133,18 +141,10 @@ frepack-arrays ...@@ -133,18 +141,10 @@ frepack-arrays
F95 F95
Copy array sections into a contiguous block on procedure entry Copy array sections into a contiguous block on procedure entry
i8
F95
Set the default integer kind to double precision
qkind= qkind=
F95 RejectNegative Joined UInteger F95 RejectNegative Joined UInteger
-qkind=<n> Set the kind for a real with the 'q' exponent to 'n' -qkind=<n> Set the kind for a real with the 'q' exponent to 'n'
r8
F95
Set the default real kind to double precision
std=f95 std=f95
F95 F95
Conform to the ISO Fortran 95 standard. Conform to the ISO Fortran 95 standard.
......
...@@ -57,6 +57,9 @@ gfc_init_options (unsigned int argc ATTRIBUTE_UNUSED, ...@@ -57,6 +57,9 @@ gfc_init_options (unsigned int argc ATTRIBUTE_UNUSED,
gfc_option.warn_surprising = 0; gfc_option.warn_surprising = 0;
gfc_option.warn_unused_labels = 0; gfc_option.warn_unused_labels = 0;
gfc_option.flag_default_double = 0;
gfc_option.flag_default_integer = 0;
gfc_option.flag_default_real = 0;
gfc_option.flag_dollar_ok = 0; gfc_option.flag_dollar_ok = 0;
gfc_option.flag_underscoring = 1; gfc_option.flag_underscoring = 1;
gfc_option.flag_second_underscore = 1; gfc_option.flag_second_underscore = 1;
...@@ -68,9 +71,6 @@ gfc_init_options (unsigned int argc ATTRIBUTE_UNUSED, ...@@ -68,9 +71,6 @@ gfc_init_options (unsigned int argc ATTRIBUTE_UNUSED,
gfc_option.flag_repack_arrays = 0; gfc_option.flag_repack_arrays = 0;
gfc_option.q_kind = gfc_default_double_kind; gfc_option.q_kind = gfc_default_double_kind;
gfc_option.i8 = 0;
gfc_option.r8 = 0;
gfc_option.d8 = 0;
flag_argument_noalias = 2; flag_argument_noalias = 2;
flag_errno_math = 0; flag_errno_math = 0;
...@@ -285,16 +285,16 @@ gfc_handle_option (size_t scode, const char *arg, int value) ...@@ -285,16 +285,16 @@ gfc_handle_option (size_t scode, const char *arg, int value)
gfc_option.q_kind = value; gfc_option.q_kind = value;
break; break;
case OPT_i8: case OPT_fdefault_integer_8:
gfc_option.i8 = value; gfc_option.flag_default_integer = value;
break; break;
case OPT_r8: case OPT_fdefault_real_8:
gfc_option.r8 = value; gfc_option.flag_default_real = value;
break; break;
case OPT_d8: case OPT_fdefault_double_8:
gfc_option.d8 = value; gfc_option.flag_default_double = value;
break; break;
case OPT_I: case OPT_I:
......
...@@ -187,10 +187,10 @@ gfc_init_kinds (void) ...@@ -187,10 +187,10 @@ gfc_init_kinds (void)
/* Choose the default integer kind. We choose 4 unless the user /* Choose the default integer kind. We choose 4 unless the user
directs us otherwise. */ directs us otherwise. */
if (gfc_option.i8) if (gfc_option.flag_default_integer)
{ {
if (!saw_i8) if (!saw_i8)
fatal_error ("integer kind=8 not available for -i8 option"); fatal_error ("integer kind=8 not available for -fdefault-integer-8 option");
gfc_default_integer_kind = 8; gfc_default_integer_kind = 8;
} }
else if (saw_i4) else if (saw_i4)
...@@ -199,10 +199,10 @@ gfc_init_kinds (void) ...@@ -199,10 +199,10 @@ gfc_init_kinds (void)
gfc_default_integer_kind = gfc_integer_kinds[i_index - 1].kind; gfc_default_integer_kind = gfc_integer_kinds[i_index - 1].kind;
/* Choose the default real kind. Again, we choose 4 when possible. */ /* Choose the default real kind. Again, we choose 4 when possible. */
if (gfc_option.r8) if (gfc_option.flag_default_real)
{ {
if (!saw_r8) if (!saw_r8)
fatal_error ("real kind=8 not available for -r8 option"); fatal_error ("real kind=8 not available for -fdefault-real-8 option");
gfc_default_real_kind = 8; gfc_default_real_kind = 8;
} }
else if (saw_r4) else if (saw_r4)
...@@ -210,9 +210,16 @@ gfc_init_kinds (void) ...@@ -210,9 +210,16 @@ gfc_init_kinds (void)
else else
gfc_default_real_kind = gfc_real_kinds[0].kind; gfc_default_real_kind = gfc_real_kinds[0].kind;
/* Choose the default double kind. If -r8 is specified, we use kind=16, /* Choose the default double kind. If -fdefault-real and -fdefault-double
if it's available, otherwise we do not change anything. */ are specified, we use kind=8, if it's available. If -fdefault-real is
if (gfc_option.r8 && saw_r16) specified without -fdefault-double, we use kind=16, if it's available.
Otherwise we do not change anything. */
if (gfc_option.flag_default_double && !gfc_option.flag_default_real)
fatal_error ("Use of -fdefault-double-8 requires -fdefault-real-8");
if (gfc_option.flag_default_real && gfc_option.flag_default_double && saw_r8)
gfc_default_double_kind = 8;
else if (gfc_option.flag_default_real && saw_r16)
gfc_default_double_kind = 16; gfc_default_double_kind = 16;
else if (saw_r4 && saw_r8) else if (saw_r4 && saw_r8)
gfc_default_double_kind = 8; gfc_default_double_kind = 8;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment