cb424d7448
verify-patch-sanity.py validates every active recipe .patch has internally- consistent hunk line counts — catching the 'malformed patch at line N' failure at commit/CI/preflight time instead of hours into a cook. This cycle hit that class three times (qtwaylandscanner, sddm, xwayland), each only discovered when cookbook tried to apply the patch. Running it across the repo found 29 latent malformed patches (validated against GNU patch: e.g. relibc/P3-sysv-ipc reproduces 'malformed patch at line 22'). They were harmless only because they sit in vendored recipes (baked, not re- applied) — but would fail on any version-bump re-derivation. --fix recounts the hunk headers (body untouched) and repaired all 29. Wired into build-preflight.sh (Phase 1.0D) and redbear-ci.yml, with a unit test (test-patch-sanity.sh). Skips archived/legacy trees and unvalidatable formats (empty placeholders, bare-@@ git hunks).
115 lines
2.5 KiB
Fortran
115 lines
2.5 KiB
Fortran
! RUN: %python %S/test_errors.py %s %flang_fc1
|
|
subroutine s1
|
|
!ERROR: Array 'x' without ALLOCATABLE or POINTER attribute must have explicit shape
|
|
common x(:), y(4), z
|
|
end
|
|
|
|
subroutine s2
|
|
common /c1/ x, y, z
|
|
!ERROR: 'y' is already in a COMMON block
|
|
common y
|
|
end
|
|
|
|
subroutine s3
|
|
!ERROR: 'x' may not be a procedure as it is in a COMMON block
|
|
procedure(real) :: x
|
|
common x
|
|
common y
|
|
!ERROR: 'y' may not be a procedure as it is in a COMMON block
|
|
procedure(real) :: y
|
|
end
|
|
|
|
subroutine s5
|
|
integer x(2)
|
|
!ERROR: The dimensions of 'x' have already been declared
|
|
common x(4), y(4)
|
|
!ERROR: The dimensions of 'y' have already been declared
|
|
real y(2)
|
|
end
|
|
|
|
function f6(x) result(r)
|
|
!ERROR: ALLOCATABLE object 'y' may not appear in a COMMON block
|
|
!ERROR: Dummy argument 'x' may not appear in a COMMON block
|
|
common y,x,z
|
|
allocatable y
|
|
!ERROR: Function result 'r' may not appear in a COMMON block
|
|
common r
|
|
end
|
|
|
|
module m7
|
|
!ERROR: Variable 'w' with BIND attribute may not appear in a COMMON block
|
|
!ERROR: Variable 'z' with BIND attribute may not appear in a COMMON block
|
|
common w,z
|
|
integer, bind(c) :: z
|
|
integer, bind(c,name="w") :: w
|
|
end
|
|
|
|
module m8
|
|
type t
|
|
end type
|
|
class(*), pointer :: x
|
|
!ERROR: Unlimited polymorphic pointer 'x' may not appear in a COMMON block
|
|
!ERROR: Unlimited polymorphic pointer 'y' may not appear in a COMMON block
|
|
common x, y
|
|
class(*), pointer :: y
|
|
end
|
|
|
|
module m9
|
|
integer x
|
|
end
|
|
subroutine s9
|
|
use m9
|
|
!ERROR: 'x' is use-associated from module 'm9' and cannot be re-declared
|
|
common x
|
|
end
|
|
|
|
module m10
|
|
type t
|
|
end type
|
|
type(t) :: x
|
|
!ERROR: Derived type 'x' in COMMON block must have the BIND or SEQUENCE attribute
|
|
common x
|
|
end
|
|
|
|
module m11
|
|
type t1
|
|
sequence
|
|
integer, allocatable :: a
|
|
end type
|
|
type t2
|
|
sequence
|
|
type(t1) :: b
|
|
integer:: c
|
|
end type
|
|
type(t2) :: x2
|
|
!ERROR: Derived type variable 'x2' may not appear in a COMMON block due to ALLOCATABLE component
|
|
common /c2/ x2
|
|
end
|
|
|
|
module m12
|
|
type t1
|
|
sequence
|
|
integer :: a = 123
|
|
end type
|
|
type t2
|
|
sequence
|
|
type(t1) :: b
|
|
integer:: c
|
|
end type
|
|
type(t2) :: x2
|
|
!ERROR: Derived type variable 'x2' may not appear in a COMMON block due to component with default initialization
|
|
common /c3/ x2
|
|
end
|
|
|
|
subroutine s13
|
|
block
|
|
!ERROR: COMMON statement is not allowed in a BLOCK construct
|
|
common x
|
|
end block
|
|
end
|
|
|
|
subroutine s14
|
|
!ERROR: 'c' appears as a COMMON block in a BIND statement but not in a COMMON statement
|
|
bind(c) :: /c/
|
|
end
|