diff options
author | Mark Eggleston <mark.eggleston@codethink.com> | 2019-11-08 14:28:57 +0000 |
---|---|---|
committer | Mark Eggleston <markeggleston@gcc.gnu.org> | 2019-11-08 14:28:57 +0000 |
commit | 2afeb1ca38dbb7c8708272452417426e46b4d6ed (patch) | |
tree | 64a5d856971870bc05da3d569128a278bcffa3a5 /gcc/fortran/simplify.c | |
parent | 4e9d58d16767b1bc686f0c4b3bd2da25dc71e8f3 (diff) | |
download | gcc-2afeb1ca38dbb7c8708272452417426e46b4d6ed.zip gcc-2afeb1ca38dbb7c8708272452417426e46b4d6ed.tar.gz gcc-2afeb1ca38dbb7c8708272452417426e46b4d6ed.tar.bz2 |
Allow CHARACTER literals in assignments and data statements.
Allows character literals to used to assign values to non-character variables
in the same way that Hollerith constants are used. In addition character
literals can be used in data statements just like Hollerith constants.
Warnings of such use are output to discourage this usage as it is a non-standard
legacy feature and must be explicitly enabled.
Enabled by -fdec and -fdec-char-conversions.
Co-Authored-By: Jim MacArthur <jim.macarthur@codethink.co.uk>
From-SVN: r277975
Diffstat (limited to 'gcc/fortran/simplify.c')
-rw-r--r-- | gcc/fortran/simplify.c | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index fa5aefe..2eb1943 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -8522,10 +8522,31 @@ gfc_convert_constant (gfc_expr *e, bt type, int kind) break; case BT_CHARACTER: - if (type == BT_CHARACTER) - f = gfc_character2character; - else - goto oops; + switch (type) + { + case BT_INTEGER: + f = gfc_character2int; + break; + + case BT_REAL: + f = gfc_character2real; + break; + + case BT_COMPLEX: + f = gfc_character2complex; + break; + + case BT_CHARACTER: + f = gfc_character2character; + break; + + case BT_LOGICAL: + f = gfc_character2logical; + break; + + default: + goto oops; + } break; default: |