diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-01-10 04:34:34 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-01-10 04:34:34 +0000 |
commit | 0b30ba3b6c852a87355a84a3bcf179b1526ed37b (patch) | |
tree | 993bd0d50b49fdfe47d7e89f40872eaa91bce40c /gcc/fortran/resolve.c | |
parent | c49a1f9ee87573b2ad7ff903528f53131bb3eaf4 (diff) | |
download | gcc-0b30ba3b6c852a87355a84a3bcf179b1526ed37b.zip gcc-0b30ba3b6c852a87355a84a3bcf179b1526ed37b.tar.gz gcc-0b30ba3b6c852a87355a84a3bcf179b1526ed37b.tar.bz2 |
[multiple changes]
2007-01-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30408
* resolve.c (resolve_code): Use the code->expr character length
directly to set length of llen.
2007-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/30408
* lang.opt: Add Wcharacter_truncation option.
* options.c (gfc_init_options): Initialize
gfc_option.warn_character_truncation to zero.
(gfc_handle_option): Add case for OPT_Wcharacter_truncation.
From-SVN: r120632
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 44236e5..05b4dc1 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -5088,10 +5088,11 @@ resolve_code (gfc_code * code, gfc_namespace * ns) && gfc_option.warn_character_truncation) { int llen = 0, rlen = 0; - gfc_symbol *sym; - sym = code->expr->symtree->n.sym; - if (sym->ts.cl->length->expr_type == EXPR_CONSTANT) - llen = mpz_get_si (sym->ts.cl->length->value.integer); + + if (code->expr->ts.cl != NULL + && code->expr->ts.cl->length != NULL + && code->expr->ts.cl->length->expr_type == EXPR_CONSTANT) + llen = mpz_get_si (code->expr->ts.cl->length->value.integer); if (code->expr2->expr_type == EXPR_CONSTANT) rlen = code->expr2->value.character.length; |