xref: /llvm-project/flang/test/Lower/zero_init_default_init.f90 (revision ce32625966a922fe96aababe0ed975ada004901f)
1! RUN: %flang_fc1 -emit-hlfir -o - %s | FileCheck %s
2! RUN: %flang_fc1 -finit-global-zero -emit-hlfir -o - %s | FileCheck %s
3! RUN: %flang_fc1 -fno-init-global-zero -emit-hlfir -o - %s | FileCheck %s
4! RUN: bbc -emit-hlfir -o - %s | FileCheck %s
5! RUN: bbc -finit-global-zero -emit-hlfir -o - %s | FileCheck %s
6! RUN: bbc -finit-global-zero=false -emit-hlfir -o - %s | FileCheck %s
7
8! Test that the flag does not affect globals with default init
9
10module zeroInitM2
11  type val
12    integer :: my_val = 1
13  end type val
14  type(val) :: v1
15end module zeroInitM2
16
17!CHECK:  fir.global @_QMzeroinitm2Ev1 : !fir.type<_QMzeroinitm2Tval{my_val:i32}> {
18!CHECK:    %[[V1:.*]] = fir.undefined !fir.type<_QMzeroinitm2Tval{my_val:i32}>
19!CHECK:    %[[ONE:.*]] = arith.constant 1 : i32
20!CHECK:    %[[V1_INIT:.*]] = fir.insert_value %[[V1]], %[[ONE]], ["my_val", !fir.type<_QMzeroinitm2Tval{my_val:i32}>] : (!fir.type<_QMzeroinitm2Tval{my_val:i32}>, i32) -> !fir.type<_QMzeroinitm2Tval{my_val:i32}>
21!CHECK:    fir.has_value %[[V1_INIT]] : !fir.type<_QMzeroinitm2Tval{my_val:i32}>
22!CHECK:  }
23