aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/options.c
diff options
context:
space:
mode:
authorZydrunas Gimbutas <gimbutas@cims.nyu.edu>2012-01-16 18:22:16 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2012-01-16 18:22:16 +0000
commitf434733449a2d46c3e003fd839bf94f47023c055 (patch)
treecf8663a9b800278ec15ee8247c9d42a68cba8a07 /gcc/fortran/options.c
parent866e6d1bc163f73aebee6db5eb107fd2c5631543 (diff)
downloadgcc-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.c33
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;