diff options
author | Zydrunas Gimbutas <gimbutas@cims.nyu.edu> | 2012-01-16 18:22:16 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2012-01-16 18:22:16 +0000 |
commit | f434733449a2d46c3e003fd839bf94f47023c055 (patch) | |
tree | cf8663a9b800278ec15ee8247c9d42a68cba8a07 /gcc/fortran/options.c | |
parent | 866e6d1bc163f73aebee6db5eb107fd2c5631543 (diff) | |
download | gcc-f434733449a2d46c3e003fd839bf94f47023c055.zip gcc-f434733449a2d46c3e003fd839bf94f47023c055.tar.gz gcc-f434733449a2d46c3e003fd839bf94f47023c055.tar.bz2 |
re PR fortran/48426 ([patch] Quad precision promotion)
2012-01-16 Zydrunas Gimbutas <gimbutas@cims.nyu.edu>
Andreas Kloeckner <kloeckner@cims.nyu.edu>
Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/48426
* gfortran.h (gfc_option_t): Add members flag_*_kind to store kind.
* lang.opt: Add options -freal-4-real-8, -freal-4-real-10,
-freal-4-real-16, -freal-8-real-4, -freal-8-real-10, -freal-8-real-16
and -finteger-4-integer-8. User-desired type conversion information.
* decl.c (gfc_match_old_kind_spec,kind_expr): Type conversions
in declaration parsing.
* trans-types.c (gfc_init_kinds): User-specified type conversion
checked for current backend.
* primary.c (match_integer_constant,match_real_constant): Implement
type conversion in constant parsing.
* options.c (gfc_init_options,gfc_handle_option): Translate input
options to flags in internal options data structure.
* invoke.texi: Document new options. Re-order options in Options
summary section.
From-SVN: r183217
Diffstat (limited to 'gcc/fortran/options.c')
-rw-r--r-- | gcc/fortran/options.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index dcb11e8..b6929fc 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -1,6 +1,6 @@ /* Parse and display command line options. Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, - 2009, 2010, 2011 + 2009, 2010, 2011, 2012 Free Software Foundation, Inc. Contributed by Andy Vaught @@ -116,6 +116,9 @@ gfc_init_options (unsigned int decoded_options_count, gfc_option.flag_default_double = 0; gfc_option.flag_default_integer = 0; gfc_option.flag_default_real = 0; + gfc_option.flag_integer4_kind = 0; + gfc_option.flag_real4_kind = 0; + gfc_option.flag_real8_kind = 0; gfc_option.flag_dollar_ok = 0; gfc_option.flag_underscoring = 1; gfc_option.flag_whole_file = 1; @@ -849,6 +852,34 @@ gfc_handle_option (size_t scode, const char *arg, int value, gfc_option.flag_default_double = value; break; + case OPT_finteger_4_integer_8: + gfc_option.flag_integer4_kind = 8; + break; + + case OPT_freal_4_real_8: + gfc_option.flag_real4_kind = 8; + break; + + case OPT_freal_4_real_10: + gfc_option.flag_real4_kind = 10; + break; + + case OPT_freal_4_real_16: + gfc_option.flag_real4_kind = 16; + break; + + case OPT_freal_8_real_4: + gfc_option.flag_real8_kind = 4; + break; + + case OPT_freal_8_real_10: + gfc_option.flag_real8_kind = 10; + break; + + case OPT_freal_8_real_16: + gfc_option.flag_real8_kind = 16; + break; + case OPT_finit_local_zero: gfc_option.flag_init_integer = GFC_INIT_INTEGER_ON; gfc_option.flag_init_integer_value = 0; |