--- /dev/null
+! { dg-do run }
+program p
+ complex, parameter :: a(0) = 0
+ real, parameter :: x(0) = 0
+ integer, parameter :: z(0) = 0
+ if (any(z > 0) .neqv. .false.) stop 1
+ if (all(z > 0) .neqv. .true.) stop 2
+ if (count(z > 0) /= 0) stop 3
+ if (kind(count(z > 0, kind=1)) /= 1) stop 4
+ if (iall(z) /= not(int(0, kind(z)))) stop 5
+ if (iany(z) /= 0) stop 6
+ if (iparity(z) /= 0) stop 7
+ if (maxval(z) /= -huge(0) - 1) stop 8
+ if (maxval(x) /= -huge(x)) stop 9
+ if (minval(z) /= huge(0)) stop 10
+ if (minval(x) /= huge(x)) stop 11
+ if (norm2(x) /= 0) stop 12
+ if (real(product(a)) /= 1 .and. aimag(product(a)) /= 0) stop 13
+ if (product(x) /= 1) stop 14
+ if (product(z) /= 1) stop 15
+ if (real(sum(a)) /= 0 .and. aimag(sum(a)) /= 0) stop 13
+ if (sum(x) /= 0) stop 14
+ if (sum(z) /= 0) stop 15
+ call q
+end
+
+subroutine q
+ complex, parameter :: a(0) = 0
+ real, parameter :: x(3,4,0) = 0
+ integer, parameter :: z(3,4,0) = 0
+ if (any(z > 0) .neqv. .false.) stop 101
+ if (all(z > 0) .neqv. .true.) stop 102
+ if (count(z > 0) /= 0) stop 103
+ if (kind(count(z > 0, kind=1)) /= 1) stop 104
+ if (iall(z) /= not(int(0, kind(z)))) stop 105
+ if (iany(z) /= 0) stop 106
+ if (iparity(z) /= 0) stop 107
+ if (maxval(z) /= -huge(0) - 1) stop 108
+ if (maxval(x) /= -huge(x)) stop 109
+ if (minval(z) /= huge(0)) stop 110
+ if (minval(x) /= huge(x)) stop 111
+ if (norm2(x) /= 0) stop 112
+ if (real(product(a)) /= 1 .and. aimag(product(a)) /= 0) stop 113
+ if (product(x) /= 1) stop 114
+ if (product(z) /= 1) stop 115
+ if (real(sum(a)) /= 0 .and. aimag(sum(a)) /= 0) stop 13
+ if (sum(x) /= 0) stop 14
+ if (sum(z) /= 0) stop 15
+end
+! { dg-prune-output "symmetric range implied by Standard" }