1! RUN: bbc %s -o - | FileCheck %s 2 3! Test support of non standard features regarding common blocks: 4! - A named common that appears with different storage sizes 5! - A blank common that is initialized 6! - A common block that is initialized outside of a BLOCK DATA. 7 8! CHECK-LABEL: fir.global @__BLNK__ {alignment = 4 : i64} : tuple<i32, !fir.array<8xi8>> { 9! CHECK: %[[undef:.*]] = fir.zero_bits tuple<i32, !fir.array<8xi8>> 10! CHECK: %[[init:.*]] = fir.insert_value %[[undef]], %c42{{.*}}, [0 : index] : (tuple<i32, !fir.array<8xi8>>, i32) -> tuple<i32, !fir.array<8xi8>> 11! CHECK: fir.has_value %[[init]] : tuple<i32, !fir.array<8xi8>> 12 13! CHECK-LABEL: fir.global @a_ {alignment = 4 : i64} : tuple<i32, !fir.array<8xi8>> { 14! CHECK: %[[undef:.*]] = fir.zero_bits tuple<i32, !fir.array<8xi8>> 15! CHECK: %[[init:.*]] = fir.insert_value %[[undef]], %c42{{.*}}, [0 : index] : (tuple<i32, !fir.array<8xi8>>, i32) -> tuple<i32, !fir.array<8xi8>> 16! CHECK: fir.has_value %[[init]] : tuple<i32, !fir.array<8xi8>> 17 18 19subroutine first_appearance 20 real :: x, y, xa, ya 21 common // x, y 22 common /a/ xa, ya 23 call foo(x, xa) 24end subroutine 25 26subroutine second_appearance 27 real :: x, y, z, xa, ya, za 28 common // x, y, z 29 common /a/ xa, ya, za 30 call foo(x, xa) 31end subroutine 32 33subroutine third_appearance 34 integer :: x = 42, xa = 42 35 common // x 36 common /a/ xa 37end subroutine 38