This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/45044] Different named COMMON block size: No warning
- From: "burnus at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 30 Aug 2011 21:33:18 +0000
- Subject: [Bug fortran/45044] Different named COMMON block size: No warning
- Auto-submitted: auto-generated
- References: <bug-45044-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45044
--- Comment #4 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-08-30 21:33:18 UTC ---
I was thinking of using:
gfc_gsymbol *gsym;
gsym = gfc_get_gsymbol (com->name);
gcc_assert (gsym->type == GSYM_COMMON);
gfc_warning ("Named COMMON block '%s' at %L shall be of the "
"same size as at %L (%lu vs %lu bytes)", com->name,
&com->where, &gsym->where,
But that won't work reliably:
a) The byte size changes, while the position of (2) remains the same, e.g:
Warnung: Named COMMON block 'xx' at (1) shall be of the same size as at (2) (24
vs 4 bytes)
Warnung: Named COMMON block 'xx' at (1) shall be of the same size as at (2) (8
vs 24 bytes)
b) One get's even strange results if one has 4 bytes, 30 bytes, 4 bytes as then
(1) and (2) have the same bytes size but the error message claims that one is 4
and the other is 30 bytes wide.
I defer this and now only print the byte-size, cf.
http://gcc.gnu.org/ml/fortran/2011-08/msg00254.html