! Test -ffunction-sections and -fdata-sections codegen. ! DEFINE: %{triple} = ! DEFINE: %{check-func-sect} = %flang_fc1 -triple %{triple} -S -ffunction-sections -o - %s | FileCheck %s --check-prefix=FUNC-SECT ! DEFINE: %{check-func-plain} = %flang_fc1 -triple %{triple} -S -o - %s | FileCheck %s --check-prefix=FUNC-PLAIN ! DEFINE: %{check-data-sect} = %flang_fc1 -triple %{triple} -S -fdata-sections -o - %s | FileCheck %s --check-prefix=DATA-SECT --check-prefix=RODATA-SECT ! DEFINE: %{check-data-plain} = %flang_fc1 -triple %{triple} -S -o - %s | FileCheck %s --check-prefix=DATA-PLAIN --check-prefix=RODATA-PLAIN ! REDEFINE: %{triple} = aarch64-unknown-linux-gnu ! RUN: %if aarch64-registered-target %{ %{check-func-sect} %} ! RUN: %if aarch64-registered-target %{ %{check-func-plain} %} ! RUN: %if aarch64-registered-target %{ %{check-data-sect} %} ! RUN: %if aarch64-registered-target %{ %{check-data-plain} %} ! REDEFINE: %{triple} = x86_64-unknown-linux-gnu ! RUN: %if x86-registered-target %{ %{check-func-sect} %} ! RUN: %if x86-registered-target %{ %{check-func-plain} %} ! RUN: %if x86-registered-target %{ %{check-data-sect} %} ! RUN: %if x86-registered-target %{ %{check-data-plain} %} module data_sect_mod integer, save :: g = 1 end module module param_mod integer, parameter :: n = 42 end module subroutine foo end subroutine program test use data_sect_mod use param_mod integer :: x call foo x = n end program ! FUNC-SECT: .section{{.*}}.text.foo_ ! FUNC-PLAIN-NOT: .section{{.*}}.text. ! DATA-SECT: .section{{.*}}.data._QMdata_sect_modEg ! DATA-PLAIN: .data ! DATA-PLAIN-NOT: .section{{.*}}.data. ! RODATA-SECT: .section{{.*}}.rodata._QMparam_modECn ! RODATA-PLAIN-NOT: .section{{.*}}.rodata._QMparam_modECn