This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/29471] Warn with -std=f95/f2003 when BOZ is used at invalid places
- From: "burnus at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Dec 2007 23:15:14 -0000
- Subject: [Bug fortran/29471] Warn with -std=f95/f2003 when BOZ is used at invalid places
- References: <bug-29471-1719@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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