aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/data.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/data.c')
-rw-r--r--gcc/fortran/data.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/fortran/data.c b/gcc/fortran/data.c
index 6313f2e..fdd7052 100644
--- a/gcc/fortran/data.c
+++ b/gcc/fortran/data.c
@@ -104,11 +104,11 @@ static gfc_expr *
create_character_initializer (gfc_expr *init, gfc_typespec *ts,
gfc_ref *ref, gfc_expr *rvalue)
{
- int len, start, end, tlen;
+ HOST_WIDE_INT len, start, end, tlen;
gfc_char_t *dest;
bool alloced_init = false;
- gfc_extract_int (ts->u.cl->length, &len);
+ gfc_extract_hwi (ts->u.cl->length, &len);
if (init == NULL)
{
@@ -143,10 +143,10 @@ create_character_initializer (gfc_expr *init, gfc_typespec *ts,
return NULL;
}
- gfc_extract_int (start_expr, &start);
+ gfc_extract_hwi (start_expr, &start);
gfc_free_expr (start_expr);
start--;
- gfc_extract_int (end_expr, &end);
+ gfc_extract_hwi (end_expr, &end);
gfc_free_expr (end_expr);
}
else
@@ -174,16 +174,15 @@ create_character_initializer (gfc_expr *init, gfc_typespec *ts,
else
{
gfc_warning_now (0, "Initialization string at %L was truncated to "
- "fit the variable (%d/%d)", &rvalue->where,
- tlen, len);
+ "fit the variable (%ld/%ld)", &rvalue->where,
+ (long) tlen, (long) len);
len = tlen;
}
}
if (rvalue->ts.type == BT_HOLLERITH)
{
- int i;
- for (i = 0; i < len; i++)
+ for (size_t i = 0; i < (size_t) len; i++)
dest[start+i] = rvalue->representation.string[i];
}
else