1 ! RUN: bbc %s -o - | tco | FileCheck %s
2 ! RUN: %flang -emit-llvm -S -mmlir -disable-external-name-interop %s -o - | FileCheck %s
4 ! CHECK: @__BLNK__ = common global [8 x i8] zeroinitializer
5 ! CHECK: @rien_ = common global [1 x i8] zeroinitializer
6 ! CHECK: @with_empty_equiv_ = common global [8 x i8] zeroinitializer
7 ! CHECK: @x_ = global { float, float } { float 1.0{{.*}}, float 2.0{{.*}} }
8 ! CHECK: @y_ = common global [12 x i8] zeroinitializer
9 ! CHECK: @z_ = global { i32, [4 x i8], float } { i32 42, [4 x i8] zeroinitializer, float 3.000000e+00 }
15 ! CHECK: call void @_QPs(ptr @__BLNK__, ptr getelementptr (i8, ptr @__BLNK__, i64 4))
22 data a1
/1.0/, b1
/2.0/
24 ! CHECK: call void @_QPs(ptr @x_, ptr getelementptr (i8, ptr @x_, i64 4))
32 ! CHECK: call void @_QPs(ptr @y_, ptr getelementptr (i8, ptr @y_, i64 4))
36 ! Test that common initialized through aliases of common members are getting
37 ! the correct initializer.
45 equivalence (i
, x
), (glue(1), c
), (glue(2), y
)
46 ! x and c are not directly initialized, but overlapping aliases are.
50 module mod_with_common
52 common /c_in_mod
/ i
, j
57 ! CHECK: load i32, ptr @c_in_mod_
59 ! CHECK: load i32, ptr getelementptr (i8, ptr @c_in_mod_, i64 4)
71 real r1(1:0), r2(1:0), x
, y
72 common /with_empty_equiv
/ x
, r1
, y