summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-10 04:34:34 +0000
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-10 04:34:34 +0000
commit9a70910720861a296bc094457fa66b7afa4368bf (patch)
tree993bd0d50b49fdfe47d7e89f40872eaa91bce40c /gcc/fortran/resolve.c
parent0f9f759c74485b20a86b43b67335ce89f6edaba8 (diff)
downloadppe42-gcc-9a70910720861a296bc094457fa66b7afa4368bf.tar.gz
ppe42-gcc-9a70910720861a296bc094457fa66b7afa4368bf.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120632 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 44236e576b6..05b4dc145c3 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;
OpenPOWER on IntegriCloud