This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/29471] Warn with -std=f95/f2003 when BOZ is used at invalid places



------- Comment #14 from burnus at gcc dot gnu dot org  2007-12-11 23:15 -------
> As I understand the F2003 standard, the expression "INT(z'ff',1)" should
> produce a range error, for the same reasons as the data statement illustrated
> in:
> http://gcc.gnu.org/onlinedocs/gfortran/BOZ-literal-constants.html
> In practice, I don't think any compilers do this (yet).

Well, I am not sure whether the compiler is required to do so; with some BOZ
work, I disabled accidentally some range checks (see PR 34398), but your INT
gives an error with gfortran:

print *, INT(z'ff',1)
            1
Error: Result of INT overflows its kind at (1)

(Note: the value "1" is a (common) implementation choice; not every compiler
has kind = byte size.)


> Maybe there should be a "-f[no-]boz-range-check" to exclude range errors just
> for the BOZ case.
I think -fno-range-check should be enough for both, shouldn't it?


> F2008 draft, it re-defines B/O/Z literals, named BITS instead of BOZ.
That part got dropped, see 13 August at:
http://www.nag.co.uk/sc22wg5/


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29471


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]