diff options
Diffstat (limited to 'gcc/fortran/gfortran.h')
-rw-r--r-- | gcc/fortran/gfortran.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index b1f7bd0..700e6dc 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -2152,9 +2152,8 @@ typedef struct gfc_expr is not a variable. */ struct gfc_expr *base_expr; - /* is_boz is true if the integer is regarded as BOZ bit pattern and is_snan - denotes a signalling not-a-number. */ - unsigned int is_boz : 1, is_snan : 1; + /* is_snan denotes a signalling not-a-number. */ + unsigned int is_snan : 1; /* Sometimes, when an error has been emitted, it is necessary to prevent it from recurring. */ @@ -2198,6 +2197,14 @@ typedef struct gfc_expr } representation; + struct + { + int len; /* Length of BOZ string without terminating NULL. */ + int rdx; /* Radix of BOZ. */ + char *str; /* BOZ string with NULL terminating character. */ + } + boz; + union { int logical; @@ -3479,6 +3486,10 @@ bool gfc_dep_difference (gfc_expr *, gfc_expr *, mpz_t *); bool gfc_check_same_strlen (const gfc_expr*, const gfc_expr*, const char*); bool gfc_calculate_transfer_sizes (gfc_expr*, gfc_expr*, gfc_expr*, size_t*, size_t*, size_t*); +bool gfc_boz2int (gfc_expr *, int); +bool gfc_boz2real (gfc_expr *, int); +bool gfc_invalid_boz (const char *, locus *); + /* class.c */ void gfc_fix_class_refs (gfc_expr *e); |