The following program is invalid Fortran as the common block size is different.
(This is only allowed for blank commons.) However, no diagnostics is printed.
If one reverses the order of TWO and ONE, a warning is printed. Actually, I
like the warning of g95, which prints the size.
NAG:
Error: Inconsistent definitions of COMMON block COM in program-units TWO and
ONE
g95:
Warning (121): COMMON block 'com' is 8 bytes at (1) and 12 bytes at (2)
gfortran with ONE and TWO swapped:
Warning: Named COMMON block 'com' at (1) shall be of the same size
subroutine two()
integer :: a, b, c
common /com/ a, b, c
end
subroutine one()
integer :: a, b
common /com/ a, b
end
--
Summary: Different named COMMON block size: No warning
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Keywords: accepts-invalid, diagnostic
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45044