diff options
author | Eugene Epshteyn <eepshteyn@nvidia.com> | 2025-07-17 14:18:21 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-17 14:18:21 -0400 |
commit | 413e71b700562f914b369c7eab6ad41c18910bdf (patch) | |
tree | 136e612bfffb8753a1e306bee49e23b09f4e7e0d | |
parent | afff28e4cb4b56dc5c77ecdb5aad9ec10e170999 (diff) | |
download | llvm-413e71b700562f914b369c7eab6ad41c18910bdf.zip llvm-413e71b700562f914b369c7eab6ad41c18910bdf.tar.gz llvm-413e71b700562f914b369c7eab6ad41c18910bdf.tar.bz2 |
[flang] Main program symbol no longer conflicts with the other symbols (#149169)
The following code is now accepted:
```
module m
end
program m
use m
end
```
The PROGRAM name doesn't really have an effect on the compilation
result, so it shouldn't result in symbol name conflicts.
This change makes the main program symbol name all uppercase in the
cooked character stream. This makes it distinct from all other symbol
names that are all lowercase in cooked character stream.
Modified the tests that were checking for lower case main program name.
108 files changed, 537 insertions, 513 deletions
diff --git a/flang/docs/Extensions.md b/flang/docs/Extensions.md index 72d12cd..c167a55 100644 --- a/flang/docs/Extensions.md +++ b/flang/docs/Extensions.md @@ -1,9 +1,9 @@ -<!--===- docs/Extensions.md - +<!--===- docs/Extensions.md + Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. See https://llvm.org/LICENSE.txt for license information. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - + --> # Fortran Extensions supported by Flang @@ -170,6 +170,18 @@ end In the case of `DEFERRED` bindings in an `ABSTRACT` derived type, however, overrides are necessary, so they are permitted for inaccessible bindings with an optional warning. +* Main program name is allowed to be the same as the other symbols used + in the main program, for example: +``` +module m +end +program m +use m +end +``` + Note that internally the main program symbol name is all uppercase, unlike + the names of all other symbols, which are usually all lowercase. This + may make a difference in testing/debugging. ## Extensions, deletions, and legacy features supported by default diff --git a/flang/lib/Semantics/check-omp-structure.cpp b/flang/lib/Semantics/check-omp-structure.cpp index 2425265..e4a94ef 100644 --- a/flang/lib/Semantics/check-omp-structure.cpp +++ b/flang/lib/Semantics/check-omp-structure.cpp @@ -1156,8 +1156,7 @@ void OmpStructureChecker::CheckThreadprivateOrDeclareTargetVar( (sym->has<MainProgramDetails>() || sym->has<ModuleDetails>())) { context_.Say(name->source, - "The module name or main program name cannot be in a " - "%s " + "The module name cannot be in a %s " "directive"_err_en_US, ContextDirectiveAsFortran()); } else if (!IsSaved(*name->symbol) && diff --git a/flang/lib/Semantics/resolve-labels.cpp b/flang/lib/Semantics/resolve-labels.cpp index b0cbc4b..27e259f 100644 --- a/flang/lib/Semantics/resolve-labels.cpp +++ b/flang/lib/Semantics/resolve-labels.cpp @@ -489,15 +489,30 @@ public: // C1401 void Post(const parser::MainProgram &mainProgram) { + // Uppercase the name of the main program, so that its symbol name + // would be unique from similarly named non-main-program symbols. + auto upperCaseCharBlock = [](const parser::CharBlock &cb) { + char *ch{const_cast<char *>(cb.begin())}; + char *endCh{ch + cb.size()}; + while (ch != endCh) { + *ch++ = parser::ToUpperCaseLetter(*ch); + } + }; + const parser::CharBlock *progName{nullptr}; + if (const auto &program{ + std::get<std::optional<parser::Statement<parser::ProgramStmt>>>( + mainProgram.t)}) { + progName = &program->statement.v.source; + upperCaseCharBlock(*progName); + } if (const parser::CharBlock * endName{GetStmtName(std::get<parser::Statement<parser::EndProgramStmt>>( mainProgram.t))}) { - if (const auto &program{ - std::get<std::optional<parser::Statement<parser::ProgramStmt>>>( - mainProgram.t)}) { - if (*endName != program->statement.v.source) { + upperCaseCharBlock(*endName); + if (progName) { + if (*endName != *progName) { context_.Say(*endName, "END PROGRAM name mismatch"_err_en_US) - .Attach(program->statement.v.source, "should be"_en_US); + .Attach(*progName, "should be"_en_US); } } else { context_.Say(*endName, diff --git a/flang/test/Driver/cuda-option.f90 b/flang/test/Driver/cuda-option.f90 index 0740ed5..f55e88d 100644 --- a/flang/test/Driver/cuda-option.f90 +++ b/flang/test/Driver/cuda-option.f90 @@ -8,7 +8,7 @@ program main integer, device :: dvar end program -! CHECK-LABEL: PROGRAM main +! CHECK-LABEL: PROGRAM MAIN ! CHECK: INTEGER :: var = 1 ! CHECK: INTEGER, DEVICE :: dvar diff --git a/flang/test/Driver/unparse-use-analyzed.f95 b/flang/test/Driver/unparse-use-analyzed.f95 index eb6046a..4bcd72c 100644 --- a/flang/test/Driver/unparse-use-analyzed.f95 +++ b/flang/test/Driver/unparse-use-analyzed.f95 @@ -6,12 +6,12 @@ ! RUN: %flang_fc1 -fdebug-unparse %s | FileCheck %s --check-prefix=DEFAULT ! RUN: %flang_fc1 -fdebug-unparse -fno-analyzed-objects-for-unparse %s | FileCheck %s --check-prefix=DISABLED -! DEFAULT: PROGRAM test +! DEFAULT: PROGRAM TEST ! DEFAULT-NEXT: REAL, PARAMETER :: val = 3.43e2_4 ! DEFAULT-NEXT: PRINT *, 3.47e2_4 ! DEFAULT-NEXT: END PROGRAM -! DISABLED: PROGRAM test +! DISABLED: PROGRAM TEST ! DISABLED-NEXT: REAL, PARAMETER :: val = 343.0 ! DISABLED-NEXT: PRINT *, val+4 ! DISABLED-NEXT: END PROGRAM diff --git a/flang/test/Driver/unparse-with-modules.f90 b/flang/test/Driver/unparse-with-modules.f90 index 53997f7..f6444af 100644 --- a/flang/test/Driver/unparse-with-modules.f90 +++ b/flang/test/Driver/unparse-with-modules.f90 @@ -25,7 +25,7 @@ end !CHECK: implicit none !CHECK: real(kind=real32) x !CHECK: end module -!CHECK: program test +!CHECK: program TEST !CHECK: use :: m1 !CHECK: use :: basictestmoduletwo !CHECK: implicit none diff --git a/flang/test/Integration/debug-common-block-1.f90 b/flang/test/Integration/debug-common-block-1.f90 index 1821763..77f47da 100644 --- a/flang/test/Integration/debug-common-block-1.f90 +++ b/flang/test/Integration/debug-common-block-1.f90 @@ -89,7 +89,7 @@ END ! CHECK-DAG: ![[CBF3]] = !DICommonBlock(scope: ![[F3]], declaration: null, name: "__BLNK__"{{.*}}) ! CHECK-DAG: ![[CBAF3]] = !DICommonBlock(scope: ![[F3]], declaration: null, name: "a"{{.*}}) -! CHECK-DAG: ![[MAIN:[0-9]+]] = {{.*}}!DISubprogram(name: "test"{{.*}}) +! CHECK-DAG: ![[MAIN:[0-9]+]] = {{.*}}!DISubprogram(name: "TEST"{{.*}}) ! CHECK-DAG: ![[CBM]] = !DICommonBlock(scope: ![[MAIN]], declaration: null, name: "__BLNK__"{{.*}}) ! CHECK-DAG: ![[CBAM]] = !DICommonBlock(scope: ![[MAIN]], declaration: null, name: "a"{{.*}}) diff --git a/flang/test/Integration/debug-local-var-2.f90 b/flang/test/Integration/debug-local-var-2.f90 index b97be14..0ddac63 100644 --- a/flang/test/Integration/debug-local-var-2.f90 +++ b/flang/test/Integration/debug-local-var-2.f90 @@ -37,7 +37,7 @@ ! BOTH-LABEL: } program mn -! BOTH-DAG: ![[MAIN:.*]] = distinct !DISubprogram(name: "mn", {{.*}}) +! BOTH-DAG: ![[MAIN:.*]] = distinct !DISubprogram(name: "MN", {{.*}}) ! BOTH-DAG: ![[TYI32:.*]] = !DIBasicType(name: "integer", size: 32, encoding: DW_ATE_signed) ! BOTH-DAG: ![[TYI64:.*]] = !DIBasicType(name: "integer", size: 64, encoding: DW_ATE_signed) diff --git a/flang/test/Lower/CUDA/cuda-derived.cuf b/flang/test/Lower/CUDA/cuda-derived.cuf index 96250d8..d419ee0 100644 --- a/flang/test/Lower/CUDA/cuda-derived.cuf +++ b/flang/test/Lower/CUDA/cuda-derived.cuf @@ -25,6 +25,6 @@ program main type(t2) :: b end -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "main"} +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "MAIN"} ! CHECK: %{{.*}} = cuf.alloc !fir.type<_QMm1Tty_device{x:!fir.box<!fir.heap<!fir.array<?xi32>>>}> {bindc_name = "a", data_attr = #cuf.cuda<managed>, uniq_name = "_QFEa"} ! CHECK: %{{.*}} = cuf.alloc !fir.type<_QMm1Tt2{b:!fir.type<_QMm1Tt1{a:!fir.box<!fir.heap<!fir.array<?xf32>>>}>}> {bindc_name = "b", data_attr = #cuf.cuda<managed>, uniq_name = "_QFEb"} diff --git a/flang/test/Lower/CUDA/cuda-return01.cuf b/flang/test/Lower/CUDA/cuda-return01.cuf index 47e69a9..ed7c640 100644 --- a/flang/test/Lower/CUDA/cuda-return01.cuf +++ b/flang/test/Lower/CUDA/cuda-return01.cuf @@ -28,6 +28,6 @@ program main return end -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "main"} +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "MAIN"} ! CHECK: cuf.alloc !fir.box<!fir.heap<!fir.array<?xi32>>> {bindc_name = "a", data_attr = #cuf.cuda<device>, uniq_name = "_QFEa"} -> !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>> ! CHECK-NOT: cuf.free diff --git a/flang/test/Lower/CUDA/cuda-return02.cuf b/flang/test/Lower/CUDA/cuda-return02.cuf index e450d7e..e548184 100644 --- a/flang/test/Lower/CUDA/cuda-return02.cuf +++ b/flang/test/Lower/CUDA/cuda-return02.cuf @@ -13,7 +13,7 @@ program test return end -! CHECK: func.func @_QQmain() attributes {fir.bindc_name = "test"} { +! CHECK: func.func @_QQmain() attributes {fir.bindc_name = "TEST"} { ! CHECK: %[[DECL:.*]]:2 = hlfir.declare ! CHECK: cf.cond_br %{{.*}}, ^bb1, ^bb2 ! CHECK-NEXT: ^bb1: diff --git a/flang/test/Lower/HLFIR/intrinsic-subroutines.f90 b/flang/test/Lower/HLFIR/intrinsic-subroutines.f90 index 07c4f01..cbc56ca 100644 --- a/flang/test/Lower/HLFIR/intrinsic-subroutines.f90 +++ b/flang/test/Lower/HLFIR/intrinsic-subroutines.f90 @@ -24,7 +24,7 @@ program main call mvbits(from, 2, 2, to, 0) if (any(to /= 5)) STOP 1 end program -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "main"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "MAIN"} { ! CHECK: %[[VAL_0:.*]] = arith.constant 3 : index ! CHECK: %[[VAL_1:.*]] = fir.alloca !fir.array<3xi32> {bindc_name = "from", uniq_name = "_QFEfrom"} ! CHECK: %[[VAL_2:.*]] = fir.shape %[[VAL_0]] : (index) -> !fir.shape<1> diff --git a/flang/test/Lower/HLFIR/procedure-pointer-component-structure-constructor.f90 b/flang/test/Lower/HLFIR/procedure-pointer-component-structure-constructor.f90 index 7b64634d..a097b15 100644 --- a/flang/test/Lower/HLFIR/procedure-pointer-component-structure-constructor.f90 +++ b/flang/test/Lower/HLFIR/procedure-pointer-component-structure-constructor.f90 @@ -35,7 +35,7 @@ END END -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "main"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "MAIN"} { ! CHECK: %[[VAL_0:.*]] = fir.alloca !fir.type<_QMmTdt{pp1:!fir.boxproc<(!fir.ref<i32>) -> i32>}> ! CHECK: %[[VAL_1:.*]] = fir.alloca !fir.type<_QMmTdt{pp1:!fir.boxproc<(!fir.ref<i32>) -> i32>}> ! CHECK: %[[VAL_2:.*]] = fir.alloca !fir.boxproc<(!fir.ref<i32>) -> i32> {bindc_name = "pp2", uniq_name = "_QFEpp2"} diff --git a/flang/test/Lower/OpenACC/acc-atomic-read.f90 b/flang/test/Lower/OpenACC/acc-atomic-read.f90 index 639a980..76751a0 100644 --- a/flang/test/Lower/OpenACC/acc-atomic-read.f90 +++ b/flang/test/Lower/OpenACC/acc-atomic-read.f90 @@ -8,7 +8,7 @@ program acc_atomic_test g = h end program acc_atomic_test -! CHECK: func @_QQmain() attributes {fir.bindc_name = "acc_atomic_test"} { +! CHECK: func @_QQmain() attributes {fir.bindc_name = "ACC_ATOMIC_TEST"} { ! CHECK: %[[VAR_G:.*]] = fir.alloca f32 {bindc_name = "g", uniq_name = "_QFEg"} ! CHECK: %[[G_DECL:.*]]:2 = hlfir.declare %[[VAR_G]] {uniq_name = "_QFEg"} : (!fir.ref<f32>) -> (!fir.ref<f32>, !fir.ref<f32>) ! CHECK: %[[VAR_H:.*]] = fir.alloca f32 {bindc_name = "h", uniq_name = "_QFEh"} diff --git a/flang/test/Lower/OpenACC/acc-atomic-write.f90 b/flang/test/Lower/OpenACC/acc-atomic-write.f90 index 3c55394..e0116e3 100644 --- a/flang/test/Lower/OpenACC/acc-atomic-write.f90 +++ b/flang/test/Lower/OpenACC/acc-atomic-write.f90 @@ -2,7 +2,7 @@ ! This test checks the lowering of atomic write -!CHECK: func @_QQmain() attributes {fir.bindc_name = "acc_atomic_write_test"} { +!CHECK: func @_QQmain() attributes {fir.bindc_name = "ACC_ATOMIC_WRITE_TEST"} { !CHECK: %[[VAR_X:.*]] = fir.alloca i32 {bindc_name = "x", uniq_name = "_QFEx"} !CHECK: %[[X_DECL:.*]]:2 = hlfir.declare %[[VAR_X]] {uniq_name = "_QFEx"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[VAR_Y:.*]] = fir.alloca i32 {bindc_name = "y", uniq_name = "_QFEy"} diff --git a/flang/test/Lower/OpenACC/acc-routine04.f90 b/flang/test/Lower/OpenACC/acc-routine04.f90 index f6033761..655e276 100644 --- a/flang/test/Lower/OpenACC/acc-routine04.f90 +++ b/flang/test/Lower/OpenACC/acc-routine04.f90 @@ -30,5 +30,5 @@ end program ! CHECK: acc.routine @acc_routine_1 func(@_QFPsub2) seq ! CHECK: acc.routine @acc_routine_0 func(@_QMdummy_modPsub1) seq ! CHECK: func.func @_QMdummy_modPsub1(%arg0: !fir.ref<i32> {fir.bindc_name = "i"}) attributes {acc.routine_info = #acc.routine_info<[@acc_routine_0]>} -! CHECK: func.func @_QQmain() attributes {fir.bindc_name = "test_acc_routine"} +! CHECK: func.func @_QQmain() attributes {fir.bindc_name = "TEST_ACC_ROUTINE"} ! CHECK: func.func private @_QFPsub2() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_1]>, fir.host_symbol = @_QQmain, llvm.linkage = #llvm.linkage<internal>} diff --git a/flang/test/Lower/OpenMP/atomic-read.f90 b/flang/test/Lower/OpenMP/atomic-read.f90 index 68dcaac..30313e2 100644 --- a/flang/test/Lower/OpenMP/atomic-read.f90 +++ b/flang/test/Lower/OpenMP/atomic-read.f90 @@ -4,7 +4,7 @@ ! This test checks the lowering of atomic read -!CHECK: func @_QQmain() attributes {fir.bindc_name = "ompatomic"} { +!CHECK: func @_QQmain() attributes {fir.bindc_name = "OMPATOMIC"} { !CHECK: %[[A_REF:.*]] = fir.alloca i32 {bindc_name = "a", uniq_name = "_QFEa"} !CHECK: %[[A_DECL:.*]]:2 = hlfir.declare %[[A_REF]] {uniq_name = "_QFEa"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[B_REF:.*]] = fir.alloca i32 {bindc_name = "b", uniq_name = "_QFEb"} diff --git a/flang/test/Lower/OpenMP/atomic-write.f90 b/flang/test/Lower/OpenMP/atomic-write.f90 index 6eded49..742fd47 100644 --- a/flang/test/Lower/OpenMP/atomic-write.f90 +++ b/flang/test/Lower/OpenMP/atomic-write.f90 @@ -4,7 +4,7 @@ ! This test checks the lowering of atomic write -!CHECK: func @_QQmain() attributes {fir.bindc_name = "ompatomicwrite"} { +!CHECK: func @_QQmain() attributes {fir.bindc_name = "OMPATOMICWRITE"} { !CHECK: %[[X_REF:.*]] = fir.alloca i32 {bindc_name = "x", uniq_name = "_QFEx"} !CHECK: %[[X_DECL:.*]]:2 = hlfir.declare %[[X_REF]] {uniq_name = "_QFEx"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[Y_REF:.*]] = fir.alloca i32 {bindc_name = "y", uniq_name = "_QFEy"} diff --git a/flang/test/Lower/OpenMP/common-atomic-lowering.f90 b/flang/test/Lower/OpenMP/common-atomic-lowering.f90 index a53cc10..f729bbb 100644 --- a/flang/test/Lower/OpenMP/common-atomic-lowering.f90 +++ b/flang/test/Lower/OpenMP/common-atomic-lowering.f90 @@ -1,6 +1,6 @@ !RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s -!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "sample"} { +!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "SAMPLE"} { !CHECK: %[[val_0:.*]] = fir.alloca i32 {bindc_name = "a", uniq_name = "_QFEa"} !CHECK: %[[val_1:.*]]:2 = hlfir.declare %[[val_0]] {uniq_name = "_QFEa"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[val_2:.*]] = fir.alloca i32 {bindc_name = "b", uniq_name = "_QFEb"} diff --git a/flang/test/Lower/OpenMP/cray-pointers02.f90 b/flang/test/Lower/OpenMP/cray-pointers02.f90 index 19e4cd0..79d8387 100644 --- a/flang/test/Lower/OpenMP/cray-pointers02.f90 +++ b/flang/test/Lower/OpenMP/cray-pointers02.f90 @@ -1,7 +1,7 @@ ! Test lowering of Cray pointee references. ! RUN: flang -fc1 -emit-hlfir -fopenmp %s -o - 2>&1 | FileCheck %s -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "test_cray_pointers_02"} +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "TEST_CRAY_POINTERS_02"} program test_cray_pointers_02 implicit none diff --git a/flang/test/Lower/OpenMP/default-clause-byref.f90 b/flang/test/Lower/OpenMP/default-clause-byref.f90 index c44c6bb..af51c4c 100644 --- a/flang/test/Lower/OpenMP/default-clause-byref.f90 +++ b/flang/test/Lower/OpenMP/default-clause-byref.f90 @@ -34,7 +34,7 @@ !CHECK: omp.yield(%[[PRIV_X]] : !fir.ref<i32>) !CHECK: } -!CHECK: func @_QQmain() attributes {fir.bindc_name = "default_clause_lowering"} { +!CHECK: func @_QQmain() attributes {fir.bindc_name = "DEFAULT_CLAUSE_LOWERING"} { !CHECK: %[[W:.*]] = fir.alloca i32 {bindc_name = "w", uniq_name = "_QFEw"} !CHECK: %[[W_DECL:.*]]:2 = hlfir.declare %[[W]] {uniq_name = "_QFEw"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[X:.*]] = fir.alloca i32 {bindc_name = "x", uniq_name = "_QFEx"} diff --git a/flang/test/Lower/OpenMP/default-clause.f90 b/flang/test/Lower/OpenMP/default-clause.f90 index ee5f579..505fa4f 100644 --- a/flang/test/Lower/OpenMP/default-clause.f90 +++ b/flang/test/Lower/OpenMP/default-clause.f90 @@ -8,7 +8,7 @@ ! RUN: | FileCheck %s -!CHECK: func @_QQmain() attributes {fir.bindc_name = "default_clause_lowering"} { +!CHECK: func @_QQmain() attributes {fir.bindc_name = "DEFAULT_CLAUSE_LOWERING"} { !CHECK: %[[W:.*]] = fir.alloca i32 {bindc_name = "w", uniq_name = "_QFEw"} !CHECK: %[[W_DECL:.*]]:2 = hlfir.declare %[[W]] {uniq_name = "_QFEw"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[X:.*]] = fir.alloca i32 {bindc_name = "x", uniq_name = "_QFEx"} diff --git a/flang/test/Lower/OpenMP/parallel-reduction-allocatable-array.f90 b/flang/test/Lower/OpenMP/parallel-reduction-allocatable-array.f90 index 4bfd5d8..0036670 100644 --- a/flang/test/Lower/OpenMP/parallel-reduction-allocatable-array.f90 +++ b/flang/test/Lower/OpenMP/parallel-reduction-allocatable-array.f90 @@ -80,7 +80,7 @@ end program ! CHECK: omp.yield ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE"} { ! CHECK: %[[VAL_0:.*]] = fir.address_of(@_QFEi) : !fir.ref<i32> ! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_0]] {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) ! CHECK: %[[VAL_2:.*]] = fir.address_of(@_QFEr) : !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>> diff --git a/flang/test/Lower/OpenMP/parallel-reduction-array-lb.f90 b/flang/test/Lower/OpenMP/parallel-reduction-array-lb.f90 index ec54294..ea0aa9e 100644 --- a/flang/test/Lower/OpenMP/parallel-reduction-array-lb.f90 +++ b/flang/test/Lower/OpenMP/parallel-reduction-array-lb.f90 @@ -68,7 +68,7 @@ end program ! CHECK: omp.yield ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE"} { ! CHECK: %[[VAL_7:.*]] = fir.alloca !fir.box<!fir.array<3x2xi32>> ! CHECK: %[[VAL_0:.*]] = fir.address_of(@_QFEi) : !fir.ref<!fir.array<3x2xi32>> ! CHECK: %[[VAL_1:.*]] = arith.constant 2 : index diff --git a/flang/test/Lower/OpenMP/parallel-reduction-array2.f90 b/flang/test/Lower/OpenMP/parallel-reduction-array2.f90 index 488ecc3..eb0df2b 100644 --- a/flang/test/Lower/OpenMP/parallel-reduction-array2.f90 +++ b/flang/test/Lower/OpenMP/parallel-reduction-array2.f90 @@ -63,7 +63,7 @@ end program ! CHECK: omp.yield ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE"} { ! CHECK: %[[VAL_0:.*]] = fir.address_of(@_QFEi) : !fir.ref<!fir.array<3xi32>> ! CHECK: %[[VAL_1:.*]] = arith.constant 3 : index ! CHECK: %[[VAL_2:.*]] = fir.shape %[[VAL_1]] : (index) -> !fir.shape<1> diff --git a/flang/test/Lower/OpenMP/parallel-reduction-byref.f90 b/flang/test/Lower/OpenMP/parallel-reduction-byref.f90 index 596276a9..2caec03 100644 --- a/flang/test/Lower/OpenMP/parallel-reduction-byref.f90 +++ b/flang/test/Lower/OpenMP/parallel-reduction-byref.f90 @@ -18,7 +18,7 @@ !CHECK: fir.store %[[CR]] to %[[C0]] : !fir.ref<i32> !CHECK: omp.yield(%[[C0]] : !fir.ref<i32>) !CHECK: } -!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "mn"} { +!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "MN"} { !CHECK: %[[RED_ACCUM_REF:[_a-z0-9]+]] = fir.alloca i32 {bindc_name = "i", uniq_name = "_QFEi"} !CHECK: %[[RED_ACCUM_DECL:[_a-z0-9]+]]:2 = hlfir.declare %[[RED_ACCUM_REF]] {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[C0:[_a-z0-9]+]] = arith.constant 0 : i32 diff --git a/flang/test/Lower/OpenMP/parallel-reduction-pointer-array.f90 b/flang/test/Lower/OpenMP/parallel-reduction-pointer-array.f90 index f638688..3c1daa0 100644 --- a/flang/test/Lower/OpenMP/parallel-reduction-pointer-array.f90 +++ b/flang/test/Lower/OpenMP/parallel-reduction-pointer-array.f90 @@ -82,7 +82,7 @@ end program ! CHECK: omp.yield ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE"} { ! CHECK: %[[VAL_0:.*]] = fir.address_of(@_QFEi) : !fir.ref<i32> ! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_0]] {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) ! CHECK: %[[VAL_2:.*]] = fir.address_of(@_QFEr) : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xi32>>>> diff --git a/flang/test/Lower/OpenMP/parallel-reduction-rename.f90 b/flang/test/Lower/OpenMP/parallel-reduction-rename.f90 index c06343e..2be154f 100644 --- a/flang/test/Lower/OpenMP/parallel-reduction-rename.f90 +++ b/flang/test/Lower/OpenMP/parallel-reduction-rename.f90 @@ -25,7 +25,7 @@ end program main ! CHECK: omp.yield(%[[VAL_2]] : i32) ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "main"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "MAIN"} { ! CHECK: %[[VAL_0:.*]] = fir.alloca i32 {bindc_name = "n", uniq_name = "_QFEn"} ! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_0]] {uniq_name = "_QFEn"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) ! CHECK: %[[VAL_2:.*]] = arith.constant 0 : i32 diff --git a/flang/test/Lower/OpenMP/parallel-reduction.f90 b/flang/test/Lower/OpenMP/parallel-reduction.f90 index 612549f..15e8cc3 100644 --- a/flang/test/Lower/OpenMP/parallel-reduction.f90 +++ b/flang/test/Lower/OpenMP/parallel-reduction.f90 @@ -10,7 +10,7 @@ !CHECK: %[[CR:[_a-z0-9]+]] = arith.addi %[[C0]], %[[C1]] : i32 !CHECK: omp.yield(%[[CR]] : i32) !CHECK: } -!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "mn"} { +!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "MN"} { !CHECK: %[[RED_ACCUM_REF:[_a-z0-9]+]] = fir.alloca i32 {bindc_name = "i", uniq_name = "_QFEi"} !CHECK: %[[RED_ACCUM_DECL:[_a-z0-9]+]]:2 = hlfir.declare %[[RED_ACCUM_REF]] {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[C0:[_a-z0-9]+]] = arith.constant 0 : i32 diff --git a/flang/test/Lower/OpenMP/sections.f90 b/flang/test/Lower/OpenMP/sections.f90 index d11925c..3d5c032 100644 --- a/flang/test/Lower/OpenMP/sections.f90 +++ b/flang/test/Lower/OpenMP/sections.f90 @@ -5,7 +5,7 @@ ! RUN: %flang_fc1 -emit-hlfir %openmp_flags %s -o - | FileCheck %s ! RUN: bbc -hlfir -emit-hlfir %openmp_flags %s -o - | FileCheck %s -!CHECK: func @_QQmain() attributes {fir.bindc_name = "sample"} { +!CHECK: func @_QQmain() attributes {fir.bindc_name = "SAMPLE"} { !CHECK: %[[COUNT:.*]] = fir.address_of(@_QFEcount) : !fir.ref<i32> !CHECK: %[[COUNT_DECL:.*]]:2 = hlfir.declare %[[COUNT]] {uniq_name = "_QFEcount"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[ETA:.*]] = fir.alloca f32 {bindc_name = "eta", uniq_name = "_QFEeta"} diff --git a/flang/test/Lower/OpenMP/threadprivate-host-association-2.f90 b/flang/test/Lower/OpenMP/threadprivate-host-association-2.f90 index 5e54cef..5c90ef7 100644 --- a/flang/test/Lower/OpenMP/threadprivate-host-association-2.f90 +++ b/flang/test/Lower/OpenMP/threadprivate-host-association-2.f90 @@ -3,7 +3,7 @@ !RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s -!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "main"} { +!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "MAIN"} { !CHECK: %[[A:.*]] = fir.alloca i32 {bindc_name = "a", uniq_name = "_QFEa"} !CHECK: %[[A_DECL:.*]]:2 = hlfir.declare %[[A]] {fortran_attrs = #fir.var_attrs<internal_assoc>, uniq_name = "_QFEa"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[A_ADDR:.*]] = fir.address_of(@_QFEa) : !fir.ref<i32> diff --git a/flang/test/Lower/OpenMP/threadprivate-host-association-3.f90 b/flang/test/Lower/OpenMP/threadprivate-host-association-3.f90 index 21547b4..0e61261 100644 --- a/flang/test/Lower/OpenMP/threadprivate-host-association-3.f90 +++ b/flang/test/Lower/OpenMP/threadprivate-host-association-3.f90 @@ -3,7 +3,7 @@ !RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s -!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "main"} { +!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "MAIN"} { !CHECK: %[[A:.*]] = fir.alloca i32 {bindc_name = "a", uniq_name = "_QFEa"} !CHECK: %[[A_DECL:.*]]:2 = hlfir.declare %[[A]] {fortran_attrs = #fir.var_attrs<internal_assoc>, uniq_name = "_QFEa"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[A_ADDR:.*]] = fir.address_of(@_QFEa) : !fir.ref<i32> diff --git a/flang/test/Lower/OpenMP/threadprivate-host-association.f90 b/flang/test/Lower/OpenMP/threadprivate-host-association.f90 index 7a27efa..1887e8a 100644 --- a/flang/test/Lower/OpenMP/threadprivate-host-association.f90 +++ b/flang/test/Lower/OpenMP/threadprivate-host-association.f90 @@ -3,7 +3,7 @@ !RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s -!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "main"} { +!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "MAIN"} { !CHECK: %[[A:.*]] = fir.address_of(@_QFEa) : !fir.ref<i32> !CHECK: %[[A_DECL:.*]]:2 = hlfir.declare %[[A]] {fortran_attrs = #fir.var_attrs<internal_assoc>, uniq_name = "_QFEa"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) !CHECK: %[[TP_A:.*]] = omp.threadprivate %[[A_DECL]]#0 : !fir.ref<i32> -> !fir.ref<i32> diff --git a/flang/test/Lower/OpenMP/wsloop-chunks.f90 b/flang/test/Lower/OpenMP/wsloop-chunks.f90 index 29c02a3..f3f11d8 100644 --- a/flang/test/Lower/OpenMP/wsloop-chunks.f90 +++ b/flang/test/Lower/OpenMP/wsloop-chunks.f90 @@ -7,7 +7,7 @@ program wsloop integer :: i integer :: chunk -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "wsloop"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "WSLOOP"} { ! CHECK: %[[CHUNK_REF:.*]] = fir.alloca i32 {bindc_name = "chunk", uniq_name = "_QFEchunk"} ! CHECK: %[[VAL_0:.*]]:2 = hlfir.declare %[[CHUNK_REF]] {uniq_name = "_QFEchunk"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) diff --git a/flang/test/Lower/OpenMP/wsloop-collapse.f90 b/flang/test/Lower/OpenMP/wsloop-collapse.f90 index a4d5cbd..7ec40ab 100644 --- a/flang/test/Lower/OpenMP/wsloop-collapse.f90 +++ b/flang/test/Lower/OpenMP/wsloop-collapse.f90 @@ -2,7 +2,7 @@ ! RUN: bbc -fopenmp -emit-hlfir %s -o - | FileCheck %s -!CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "wsloop_collapse"} { +!CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "WSLOOP_COLLAPSE"} { program wsloop_collapse !CHECK: %[[VAL_6:.*]] = fir.alloca i32 {bindc_name = "a", uniq_name = "_QFEa"} !CHECK: %[[VAL_7:.*]]:2 = hlfir.declare %[[VAL_6]] {uniq_name = "_QFEa"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) diff --git a/flang/test/Lower/OpenMP/wsloop-reduction-allocatable-array-minmax.f90 b/flang/test/Lower/OpenMP/wsloop-reduction-allocatable-array-minmax.f90 index 58b68e5..e2f75bc 100644 --- a/flang/test/Lower/OpenMP/wsloop-reduction-allocatable-array-minmax.f90 +++ b/flang/test/Lower/OpenMP/wsloop-reduction-allocatable-array-minmax.f90 @@ -156,7 +156,7 @@ end program ! CHECK: omp.yield ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce15"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE15"} { ! CHECK: %[[VAL_0:.*]] = fir.address_of(@_QFEarr) : !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>> ! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_0]] {fortran_attrs = {{.*}}<allocatable>, uniq_name = "_QFEarr"} : (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) -> (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>, !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) ! CHECK: %[[VAL_2:.*]] = fir.alloca i32 {bindc_name = "i", uniq_name = "_QFEi"} diff --git a/flang/test/Lower/OpenMP/wsloop-reduction-allocatable.f90 b/flang/test/Lower/OpenMP/wsloop-reduction-allocatable.f90 index 0a536eb..663851c 100644 --- a/flang/test/Lower/OpenMP/wsloop-reduction-allocatable.f90 +++ b/flang/test/Lower/OpenMP/wsloop-reduction-allocatable.f90 @@ -63,7 +63,7 @@ end program ! CHECK: omp.yield ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE"} { ! CHECK: %[[VAL_0:.*]] = fir.address_of(@_QFEi) : !fir.ref<i32> ! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_0]] {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) ! CHECK: %[[VAL_2:.*]] = fir.alloca !fir.box<!fir.heap<i32>> {bindc_name = "r", uniq_name = "_QFEr"} diff --git a/flang/test/Lower/OpenMP/wsloop-reduction-array-lb.f90 b/flang/test/Lower/OpenMP/wsloop-reduction-array-lb.f90 index 9f0dd16..2233a74 100644 --- a/flang/test/Lower/OpenMP/wsloop-reduction-array-lb.f90 +++ b/flang/test/Lower/OpenMP/wsloop-reduction-array-lb.f90 @@ -31,5 +31,5 @@ end program ! CHECK: omp.yield(%[[ARG0]] : !fir.ref<!fir.box<!fir.array<2xi32>>>) ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE"} { ! CHECK: omp.wsloop {{.*}} reduction(byref @add_reduction_byref_box_2xi32 %{{.*}} -> %{{.*}} : !fir.ref<!fir.box<!fir.array<2xi32>>>) diff --git a/flang/test/Lower/OpenMP/wsloop-reduction-array-lb2.f90 b/flang/test/Lower/OpenMP/wsloop-reduction-array-lb2.f90 index 5ada623..211bde1 100644 --- a/flang/test/Lower/OpenMP/wsloop-reduction-array-lb2.f90 +++ b/flang/test/Lower/OpenMP/wsloop-reduction-array-lb2.f90 @@ -40,5 +40,5 @@ end program ! CHECK: omp.yield(%[[ARG0]] : !fir.ref<!fir.box<!fir.array<?xi32>>>) ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE"} { ! CHECK: omp.wsloop {{.*}} reduction(byref @add_reduction_byref_box_Uxi32 %{{.*}} -> %{{.*}} : !fir.ref<!fir.box<!fir.array<?xi32>>>) diff --git a/flang/test/Lower/OpenMP/wsloop-reduction-array.f90 b/flang/test/Lower/OpenMP/wsloop-reduction-array.f90 index 21261da..b7882bc 100644 --- a/flang/test/Lower/OpenMP/wsloop-reduction-array.f90 +++ b/flang/test/Lower/OpenMP/wsloop-reduction-array.f90 @@ -65,7 +65,7 @@ end program ! CHECK: omp.yield ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE"} { ! CHECK: %[[VAL_0:.*]] = fir.address_of(@_QFEi) : !fir.ref<i32> ! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_0]] {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) ! CHECK: %[[VAL_2:.*]] = fir.address_of(@_QFEr) : !fir.ref<!fir.array<2xi32>> diff --git a/flang/test/Lower/OpenMP/wsloop-reduction-array2.f90 b/flang/test/Lower/OpenMP/wsloop-reduction-array2.f90 index ab8dcf1..7d90335 100644 --- a/flang/test/Lower/OpenMP/wsloop-reduction-array2.f90 +++ b/flang/test/Lower/OpenMP/wsloop-reduction-array2.f90 @@ -65,7 +65,7 @@ end program ! CHECK: omp.yield ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE"} { ! CHECK: %[[VAL_0:.*]] = fir.address_of(@_QFEi) : !fir.ref<i32> ! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_0]] {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) ! CHECK: %[[VAL_2:.*]] = fir.address_of(@_QFEr) : !fir.ref<!fir.array<2xi32>> diff --git a/flang/test/Lower/OpenMP/wsloop-reduction-min2.f90 b/flang/test/Lower/OpenMP/wsloop-reduction-min2.f90 index 1e26f5a..d776bd7 100644 --- a/flang/test/Lower/OpenMP/wsloop-reduction-min2.f90 +++ b/flang/test/Lower/OpenMP/wsloop-reduction-min2.f90 @@ -28,7 +28,7 @@ end program ! CHECK: omp.yield(%[[VAL_2]] : i32) ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE"} { ! CHECK: %[[VAL_0:.*]] = fir.address_of(@_QFEi) : !fir.ref<i32> ! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_0]] {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) ! CHECK: %[[VAL_2:.*]] = fir.address_of(@_QFEr) : !fir.ref<i32> diff --git a/flang/test/Lower/OpenMP/wsloop-reduction-multiple-clauses.f90 b/flang/test/Lower/OpenMP/wsloop-reduction-multiple-clauses.f90 index e0a3b46..5133db0 100644 --- a/flang/test/Lower/OpenMP/wsloop-reduction-multiple-clauses.f90 +++ b/flang/test/Lower/OpenMP/wsloop-reduction-multiple-clauses.f90 @@ -93,7 +93,7 @@ endprogram ! CHECK: omp.yield(%[[VAL_2]] : f64) ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "main"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "MAIN"} { ! CHECK: %[[VAL_0:.*]] = fir.address_of(@_QFEarray) : !fir.ref<!fir.array<3x3xf64>> ! CHECK: %[[VAL_1:.*]] = arith.constant 3 : index ! CHECK: %[[VAL_2:.*]] = arith.constant 3 : index diff --git a/flang/test/Lower/OpenMP/wsloop-reduction-pointer.f90 b/flang/test/Lower/OpenMP/wsloop-reduction-pointer.f90 index 40b4302..27b7263 100644 --- a/flang/test/Lower/OpenMP/wsloop-reduction-pointer.f90 +++ b/flang/test/Lower/OpenMP/wsloop-reduction-pointer.f90 @@ -64,7 +64,7 @@ end program ! CHECK: omp.yield ! CHECK: } -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "reduce_pointer"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "REDUCE_POINTER"} { ! CHECK: %[[VAL_0:.*]] = fir.alloca i32 {bindc_name = "i", uniq_name = "_QFEi"} ! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_0]] {uniq_name = "_QFEi"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>) ! CHECK: %[[VAL_2:.*]] = fir.alloca !fir.box<!fir.ptr<i32>> {bindc_name = "v", uniq_name = "_QFEv"} diff --git a/flang/test/Lower/array-character.f90 b/flang/test/Lower/array-character.f90 index 1bc73da..e2899d9 100644 --- a/flang/test/Lower/array-character.f90 +++ b/flang/test/Lower/array-character.f90 @@ -32,7 +32,7 @@ program p call charlit end program p -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "p"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "P"} { ! CHECK: %[[VAL_0:.*]] = arith.constant 4 : index ! CHECK: %[[VAL_1:.*]] = arith.constant 3 : index ! CHECK: %[[VAL_2:.*]] = fir.alloca !fir.array<3x!fir.char<1,4>> {bindc_name = "c1", uniq_name = "_QFEc1"} diff --git a/flang/test/Lower/array-expression-slice-1.f90 b/flang/test/Lower/array-expression-slice-1.f90 index b597814..7394313 100644 --- a/flang/test/Lower/array-expression-slice-1.f90 +++ b/flang/test/Lower/array-expression-slice-1.f90 @@ -1,6 +1,6 @@ ! RUN: bbc -hlfir=false -fwrapv -o - --outline-intrinsics %s | FileCheck %s -! CHECK-LABEL: func @_QQmain() attributes {fir.bindc_name = "p"} { +! CHECK-LABEL: func @_QQmain() attributes {fir.bindc_name = "P"} { ! CHECK-DAG: %[[VAL_0:.*]] = arith.constant 10 : index ! CHECK-DAG: %[[VAL_4:.*]] = arith.constant 2 : index ! CHECK-DAG: %[[VAL_5:.*]] = arith.constant 1 : index diff --git a/flang/test/Lower/basic-program.f90 b/flang/test/Lower/basic-program.f90 index 5a0e4bd..7e5b40d9 100644 --- a/flang/test/Lower/basic-program.f90 +++ b/flang/test/Lower/basic-program.f90 @@ -4,10 +4,10 @@ program basic end program -! CHECK: 1 Program basic +! CHECK: 1 Program BASIC ! CHECK: 1 EndProgramStmt: end program -! CHECK: End Program basic +! CHECK: End Program BASIC -! FIR-LABEL: func @_QQmain() attributes {fir.bindc_name = "basic"} { +! FIR-LABEL: func @_QQmain() attributes {fir.bindc_name = "BASIC"} { ! FIR: return ! FIR: } diff --git a/flang/test/Lower/big-integer-parameter.f90 b/flang/test/Lower/big-integer-parameter.f90 index a413b12..ca90b8a 100644 --- a/flang/test/Lower/big-integer-parameter.f90 +++ b/flang/test/Lower/big-integer-parameter.f90 @@ -13,7 +13,7 @@ program i128 print*,y end -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "i128"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "I128"} { ! CHECK-COUNT-2: %{{.*}} = fir.call @_FortranAioOutputInteger128(%{{.*}}, %{{.*}}) {{.*}}: (!fir.ref<i8>, i128) -> i1 diff --git a/flang/test/Lower/derived-type-finalization.f90 b/flang/test/Lower/derived-type-finalization.f90 index 3ea58cd..71cef34 100644 --- a/flang/test/Lower/derived-type-finalization.f90 +++ b/flang/test/Lower/derived-type-finalization.f90 @@ -255,5 +255,5 @@ program p type(t1) :: t end program -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "p"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "P"} { ! CHECK-NOT: fir.call @_FortranADestroy diff --git a/flang/test/Lower/location.f90 b/flang/test/Lower/location.f90 index a6ece31..95bf226 100644 --- a/flang/test/Lower/location.f90 +++ b/flang/test/Lower/location.f90 @@ -5,7 +5,7 @@ include 'location0.inc' end -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "test"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "TEST"} { ! CHECK: fir.call @_FortranAioOutputAscii(%{{.*}}, %{{.*}}, %{{.*}}) fastmath<contract> : (!fir.ref<i8>, !fir.ref<i8>, i64) -> i1 loc(fused<#fir<loc_kind_array[ base, inclusion, inclusion]>>["{{.*}}location1.inc":1:10, "{{.*}}location0.inc":1:1, "{{.*}}location.f90":4:1]) ! CHECK: return loc("{{.*}}location.f90":6:1) ! CHECK: } loc("{{.*}}location.f90":3:1) diff --git a/flang/test/Lower/nested-where.f90 b/flang/test/Lower/nested-where.f90 index ab45728..28aced2 100644 --- a/flang/test/Lower/nested-where.f90 +++ b/flang/test/Lower/nested-where.f90 @@ -1,6 +1,6 @@ ! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s -! CHECK-LABEL: func @_QQmain() attributes {fir.bindc_name = "nested_where"} { +! CHECK-LABEL: func @_QQmain() attributes {fir.bindc_name = "NESTED_WHERE"} { program nested_where ! CHECK: %[[VAL_0:.*]] = fir.alloca i32 {adapt.valuebyref, bindc_name = "i"} diff --git a/flang/test/Lower/polymorphic.f90 b/flang/test/Lower/polymorphic.f90 index b7be5f6..a84b495 100644 --- a/flang/test/Lower/polymorphic.f90 +++ b/flang/test/Lower/polymorphic.f90 @@ -1146,7 +1146,7 @@ program test l = i < o%inner end program -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "test"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "TEST"} { ! CHECK: %[[ADDR_O:.*]] = fir.address_of(@_QFEo) : !fir.ref<!fir.box<!fir.heap<!fir.type<_QMpolymorphic_testTouter{inner:!fir.type<_QMpolymorphic_testTp1{a:i32,b:i32}>}>>>> ! CHECK: %[[BOX_NONE:.*]] = fir.convert %[[ADDR_O]] : (!fir.ref<!fir.box<!fir.heap<!fir.type<_QMpolymorphic_testTouter{inner:!fir.type<_QMpolymorphic_testTp1{a:i32,b:i32}>}>>>>) -> !fir.ref<!fir.box<none>> ! CHECK: %{{.*}} = fir.call @_FortranAAllocatableAllocate(%[[BOX_NONE]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) {{.*}} : (!fir.ref<!fir.box<none>>, !fir.ref<i64>, i1, !fir.box<none>, !fir.ref<i8>, i32) -> i32 diff --git a/flang/test/Lower/pre-fir-tree02.f90 b/flang/test/Lower/pre-fir-tree02.f90 index f4fa626..65c33e9 100644 --- a/flang/test/Lower/pre-fir-tree02.f90 +++ b/flang/test/Lower/pre-fir-tree02.f90 @@ -3,7 +3,7 @@ ! Test Pre-FIR Tree captures all the intended nodes from the parse-tree ! Coarray and OpenMP related nodes are tested in other files. -! CHECK: Program test_prog +! CHECK: Program TEST_PROG program test_prog ! Check specification part is not part of the tree. interface diff --git a/flang/test/Lower/pre-fir-tree03.f90 b/flang/test/Lower/pre-fir-tree03.f90 index 313dab4..1de66e3 100644 --- a/flang/test/Lower/pre-fir-tree03.f90 +++ b/flang/test/Lower/pre-fir-tree03.f90 @@ -2,7 +2,7 @@ ! Test Pre-FIR Tree captures OpenMP related constructs -! CHECK: Program test_omp +! CHECK: Program TEST_OMP program test_omp ! CHECK: PrintStmt print *, "sequential" diff --git a/flang/test/Lower/pre-fir-tree06.f90 b/flang/test/Lower/pre-fir-tree06.f90 index f84bcd8..ed1e76c 100644 --- a/flang/test/Lower/pre-fir-tree06.f90 +++ b/flang/test/Lower/pre-fir-tree06.f90 @@ -25,13 +25,13 @@ contains end ! CHECK: End Module m2 -! CHECK: Program main +! CHECK: Program MAIN program main real :: y ! CHECK-NEXT: OpenMPDeclarativeConstruct !$omp threadprivate(y) end -! CHECK: End Program main +! CHECK: End Program MAIN ! CHECK: Subroutine sub1 subroutine sub1() diff --git a/flang/test/Lower/program-units-fir-mangling.f90 b/flang/test/Lower/program-units-fir-mangling.f90 index e0af6f0..65940b4 100644 --- a/flang/test/Lower/program-units-fir-mangling.f90 +++ b/flang/test/Lower/program-units-fir-mangling.f90 @@ -124,7 +124,7 @@ subroutine should_not_collide() ! CHECK: } end subroutine -! CHECK-LABEL: func @_QQmain() attributes {fir.bindc_name = "test"} { +! CHECK-LABEL: func @_QQmain() attributes {fir.bindc_name = "TEST"} { program test ! CHECK: } contains diff --git a/flang/test/Lower/return-statement.f90 b/flang/test/Lower/return-statement.f90 index 6351a68..8ab69e3 100644 --- a/flang/test/Lower/return-statement.f90 +++ b/flang/test/Lower/return-statement.f90 @@ -4,7 +4,7 @@ program basic return end program -! CHECK-LABEL: func @_QQmain() attributes {fir.bindc_name = "basic"} { +! CHECK-LABEL: func @_QQmain() attributes {fir.bindc_name = "BASIC"} { ! CHECK: return ! CHECK: } diff --git a/flang/test/Lower/volatile-openmp1.f90 b/flang/test/Lower/volatile-openmp1.f90 index 163db95..07d81a1 100644 --- a/flang/test/Lower/volatile-openmp1.f90 +++ b/flang/test/Lower/volatile-openmp1.f90 @@ -13,7 +13,7 @@ n=1000 !$omp end parallel end program -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "main"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "MAIN"} { ! CHECK: %[[VAL_0:.*]] = arith.constant 1 : i32 ! CHECK: %[[VAL_1:.*]] = arith.constant 1000 : i32 ! CHECK: %[[VAL_2:.*]] = arith.constant 0 : i32 diff --git a/flang/test/Lower/volatile-string.f90 b/flang/test/Lower/volatile-string.f90 index 88b21d7..f263db7 100644 --- a/flang/test/Lower/volatile-string.f90 +++ b/flang/test/Lower/volatile-string.f90 @@ -21,7 +21,7 @@ contains end subroutine end program -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "p"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "P"} { ! CHECK: %[[VAL_0:.*]] = arith.constant 11 : i32 ! CHECK: %[[VAL_1:.*]] = arith.constant 0 : index ! CHECK: %[[VAL_2:.*]] = arith.constant true diff --git a/flang/test/Lower/volatile3.f90 b/flang/test/Lower/volatile3.f90 index 8825f8f..a32f29d 100644 --- a/flang/test/Lower/volatile3.f90 +++ b/flang/test/Lower/volatile3.f90 @@ -70,7 +70,7 @@ contains end program -! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "p"} { +! CHECK-LABEL: func.func @_QQmain() attributes {fir.bindc_name = "P"} { ! CHECK: %[[VAL_0:.*]] = arith.constant 1 : index ! CHECK: %[[VAL_1:.*]] = arith.constant 0 : index ! CHECK: %[[VAL_2:.*]] = arith.constant 10 : index diff --git a/flang/test/Parser/acc-unparse.f90 b/flang/test/Parser/acc-unparse.f90 index 62e0d44..12e6dec 100644 --- a/flang/test/Parser/acc-unparse.f90 +++ b/flang/test/Parser/acc-unparse.f90 @@ -15,7 +15,7 @@ program bug47659 end do label1 end program -!CHECK-LABEL: PROGRAM bug47659 +!CHECK-LABEL: PROGRAM BUG47659 !CHECK: !$ACC PARALLEL LOOP diff --git a/flang/test/Semantics/OpenACC/acc-symbols01.f90 b/flang/test/Semantics/OpenACC/acc-symbols01.f90 index 375445b..51a7a3a 100644 --- a/flang/test/Semantics/OpenACC/acc-symbols01.f90 +++ b/flang/test/Semantics/OpenACC/acc-symbols01.f90 @@ -1,24 +1,24 @@ ! RUN: %python %S/../test_symbols.py %s %flang_fc1 -fopenacc -!DEF: /mm MainProgram -program mm - !DEF: /mm/x ObjectEntity REAL(4) - !DEF: /mm/y ObjectEntity REAL(4) +!DEF: /MM MainProgram +program MM + !DEF: /MM/x ObjectEntity REAL(4) + !DEF: /MM/y ObjectEntity REAL(4) real x, y - !DEF: /mm/a ObjectEntity INTEGER(4) - !DEF: /mm/b ObjectEntity INTEGER(4) - !DEF: /mm/c ObjectEntity INTEGER(4) - !DEF: /mm/i ObjectEntity INTEGER(4) + !DEF: /MM/a ObjectEntity INTEGER(4) + !DEF: /MM/b ObjectEntity INTEGER(4) + !DEF: /MM/c ObjectEntity INTEGER(4) + !DEF: /MM/i ObjectEntity INTEGER(4) integer a(10), b(10), c(10), i - !REF: /mm/b + !REF: /MM/b b = 2 !$acc parallel present(c) firstprivate(b) private(a) !$acc loop - !REF: /mm/i + !REF: /MM/i do i=1,10 - !REF: /mm/a - !REF: /mm/i - !REF: /mm/b + !REF: /MM/a + !REF: /MM/i + !REF: /MM/b a(i) = b(i) end do !$acc end parallel diff --git a/flang/test/Semantics/OpenMP/critical_within_default.f90 b/flang/test/Semantics/OpenMP/critical_within_default.f90 index dd972e6..a5fe30e 100644 --- a/flang/test/Semantics/OpenMP/critical_within_default.f90 +++ b/flang/test/Semantics/OpenMP/critical_within_default.f90 @@ -1,7 +1,7 @@ ! RUN: %flang_fc1 -fopenmp -fdebug-dump-symbols %s | FileCheck %s ! Test that we do not make a private copy of the critical name -!CHECK: MainProgram scope: mn +!CHECK: MainProgram scope: MN !CHECK-NEXT: j size=4 offset=0: ObjectEntity type: INTEGER(4) !CHECK-NEXT: OtherConstruct scope: !CHECK-NEXT: j (OmpPrivate): HostAssoc diff --git a/flang/test/Semantics/OpenMP/declare-mapper-symbols.f90 b/flang/test/Semantics/OpenMP/declare-mapper-symbols.f90 index 06f41ab..e57a5c0 100644 --- a/flang/test/Semantics/OpenMP/declare-mapper-symbols.f90 +++ b/flang/test/Semantics/OpenMP/declare-mapper-symbols.f90 @@ -1,7 +1,7 @@ ! RUN: %flang_fc1 -fdebug-dump-symbols -fopenmp -fopenmp-version=50 %s | FileCheck %s program main -!CHECK-LABEL: MainProgram scope: main +!CHECK-LABEL: MainProgram scope: MAIN implicit none type ty diff --git a/flang/test/Semantics/OpenMP/declare-reduction-mangled.f90 b/flang/test/Semantics/OpenMP/declare-reduction-mangled.f90 index 9d0a097..fc977f2 100644 --- a/flang/test/Semantics/OpenMP/declare-reduction-mangled.f90 +++ b/flang/test/Semantics/OpenMP/declare-reduction-mangled.f90 @@ -17,7 +17,7 @@ contains end module mymod program omp_examples -!CHECK-LABEL: MainProgram scope: omp_examples +!CHECK-LABEL: MainProgram scope: OMP_EXAMPLES use mymod implicit none integer, parameter :: n = 100 diff --git a/flang/test/Semantics/OpenMP/declare-reduction-operators.f90 b/flang/test/Semantics/OpenMP/declare-reduction-operators.f90 index d7a9f2f..84dbe1a 100644 --- a/flang/test/Semantics/OpenMP/declare-reduction-operators.f90 +++ b/flang/test/Semantics/OpenMP/declare-reduction-operators.f90 @@ -49,7 +49,7 @@ contains end module m1 program test_vector -!CHECK-LABEL: MainProgram scope: test_vector +!CHECK-LABEL: MainProgram scope: TEST_VECTOR use vector_mod !CHECK: add_vectors (Function): Use from add_vectors in vector_mod implicit none diff --git a/flang/test/Semantics/OpenMP/declare-reduction-renamedop.f90 b/flang/test/Semantics/OpenMP/declare-reduction-renamedop.f90 index 12e80cb..9cd638d 100644 --- a/flang/test/Semantics/OpenMP/declare-reduction-renamedop.f90 +++ b/flang/test/Semantics/OpenMP/declare-reduction-renamedop.f90 @@ -22,7 +22,7 @@ contains end module module1 program test_omp_reduction -!CHECK: MainProgram scope: test_omp_reduction +!CHECK: MainProgram scope: TEST_OMP_REDUCTION use module1, only: t1, operator(.modmul.) => operator(.mul.) !CHECK: .modmul. (Function): Use from .mul. in module1 diff --git a/flang/test/Semantics/OpenMP/declare-reduction.f90 b/flang/test/Semantics/OpenMP/declare-reduction.f90 index ddca38f..1f39c57 100644 --- a/flang/test/Semantics/OpenMP/declare-reduction.f90 +++ b/flang/test/Semantics/OpenMP/declare-reduction.f90 @@ -31,7 +31,7 @@ function func(x, n, init) end function func program main -!CHECK-LABEL: MainProgram scope: main +!CHECK-LABEL: MainProgram scope: MAIN !$omp declare reduction (my_add_red : integer : omp_out = omp_out + omp_in) initializer (omp_priv=0) diff --git a/flang/test/Semantics/OpenMP/declare-target03.f90 b/flang/test/Semantics/OpenMP/declare-target03.f90 index 64a299d..48cfc68 100644 --- a/flang/test/Semantics/OpenMP/declare-target03.f90 +++ b/flang/test/Semantics/OpenMP/declare-target03.f90 @@ -13,10 +13,10 @@ end subroutine program main use mod1 - !ERROR: The module name or main program name cannot be in a DECLARE TARGET directive + !ERROR: The module name cannot be in a DECLARE TARGET directive !$omp declare target (mod1) - !PORTABILITY: Name 'main' declared in a main program should not have the same name as the main program [-Wbenign-name-clash] - !ERROR: The module name or main program name cannot be in a DECLARE TARGET directive + ! This is now allowed: "main" is implicitly declared symbol separate + ! from the main program symbol !$omp declare target (main) end diff --git a/flang/test/Semantics/OpenMP/do-schedule03.f90 b/flang/test/Semantics/OpenMP/do-schedule03.f90 index 8787b09..05602ca 100644 --- a/flang/test/Semantics/OpenMP/do-schedule03.f90 +++ b/flang/test/Semantics/OpenMP/do-schedule03.f90 @@ -2,27 +2,27 @@ ! OpenMP Version 4.5 ! 2.7.1 Schedule Clause ! Test that does not catch non constant integer expressions like xx - xx. - !DEF: /ompdoschedule MainProgram -program ompdoschedule - !DEF: /ompdoschedule/a ObjectEntity REAL(4) - !DEF: /ompdoschedule/y ObjectEntity REAL(4) - !DEF: /ompdoschedule/z ObjectEntity REAL(4) + !DEF: /OMPDOSCHEDULE MainProgram +program OMPDOSCHEDULE + !DEF: /OMPDOSCHEDULE/a ObjectEntity REAL(4) + !DEF: /OMPDOSCHEDULE/y ObjectEntity REAL(4) + !DEF: /OMPDOSCHEDULE/z ObjectEntity REAL(4) real a(100),y(100),z(100) - !DEF: /ompdoschedule/b ObjectEntity INTEGER(4) - !DEF: /ompdoschedule/i ObjectEntity INTEGER(4) - !DEF: /ompdoschedule/n ObjectEntity INTEGER(4) + !DEF: /OMPDOSCHEDULE/b ObjectEntity INTEGER(4) + !DEF: /OMPDOSCHEDULE/i ObjectEntity INTEGER(4) + !DEF: /OMPDOSCHEDULE/n ObjectEntity INTEGER(4) integer b,i,n - !REF: /ompdoschedule/b + !REF: /OMPDOSCHEDULE/b b = 10 !$omp do schedule(static,b-b) - !DEF: /ompdoschedule/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) - !REF: /ompdoschedule/n + !DEF: /OMPDOSCHEDULE/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !REF: /OMPDOSCHEDULE/n do i = 2,n+1 - !REF: /ompdoschedule/y - !REF: /ompdoschedule/OtherConstruct1/i - !REF: /ompdoschedule/z - !REF: /ompdoschedule/a + !REF: /OMPDOSCHEDULE/y + !REF: /OMPDOSCHEDULE/OtherConstruct1/i + !REF: /OMPDOSCHEDULE/z + !REF: /OMPDOSCHEDULE/a y(i) = z(i-1) + a(i) end do !$omp end do -end program ompdoschedule +end program OMPDOSCHEDULE diff --git a/flang/test/Semantics/OpenMP/do01-positivecase.f90 b/flang/test/Semantics/OpenMP/do01-positivecase.f90 index 905fdba..50a6870 100644 --- a/flang/test/Semantics/OpenMP/do01-positivecase.f90 +++ b/flang/test/Semantics/OpenMP/do01-positivecase.f90 @@ -4,16 +4,16 @@ ! The loop iteration variable may not appear in a firstprivate directive. ! A positive case -!DEF: /omp_do MainProgram -program omp_do - !DEF: /omp_do/i ObjectEntity INTEGER(4) +!DEF: /OMP_DO MainProgram +program OMP_DO + !DEF: /OMP_DO/i ObjectEntity INTEGER(4) integer i !$omp do firstprivate(k) - !DEF: /omp_do/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_DO/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 print *, "Hello" end do !$omp end do -end program omp_do +end program OMP_DO diff --git a/flang/test/Semantics/OpenMP/do04-positivecase.f90 b/flang/test/Semantics/OpenMP/do04-positivecase.f90 index eb2d67b..51b69fc 100644 --- a/flang/test/Semantics/OpenMP/do04-positivecase.f90 +++ b/flang/test/Semantics/OpenMP/do04-positivecase.f90 @@ -2,21 +2,21 @@ ! OpenMP Version 4.5 ! 2.7.1 Do Loop Constructs -!DEF: /omp_do1 MainProgram -program omp_do1 - !DEF: /omp_do1/i ObjectEntity INTEGER(4) - !DEF: /omp_do1/j ObjectEntity INTEGER(4) - !DEF: /omp_do1/k (OmpThreadprivate) ObjectEntity INTEGER(4) - !DEF: /omp_do1/n (OmpThreadprivate) ObjectEntity INTEGER(4) +!DEF: /OMP_DO1 MainProgram +program OMP_DO1 + !DEF: /OMP_DO1/i ObjectEntity INTEGER(4) + !DEF: /OMP_DO1/j ObjectEntity INTEGER(4) + !DEF: /OMP_DO1/k (OmpThreadprivate) ObjectEntity INTEGER(4) + !DEF: /OMP_DO1/n (OmpThreadprivate) ObjectEntity INTEGER(4) integer i, j, k, n !$omp threadprivate (k,n) !$omp do - !DEF: /omp_do1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_DO1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !REF: /omp_do1/j + !REF: /OMP_DO1/j do j=1,10 print *, "Hello" end do end do !$omp end do -end program omp_do1 +end program OMP_DO1 diff --git a/flang/test/Semantics/OpenMP/do05-positivecase.f90 b/flang/test/Semantics/OpenMP/do05-positivecase.f90 index eda0461..d4eb1fd 100644 --- a/flang/test/Semantics/OpenMP/do05-positivecase.f90 +++ b/flang/test/Semantics/OpenMP/do05-positivecase.f90 @@ -3,13 +3,13 @@ ! 2.7.1 Loop Construct restrictions on single directive. ! A positive case -!DEF: /omp_do MainProgram -program omp_do - !DEF: /omp_do/i ObjectEntity INTEGER(4) - !DEF: /omp_do/n ObjectEntity INTEGER(4) +!DEF: /OMP_DO MainProgram +program OMP_DO + !DEF: /OMP_DO/i ObjectEntity INTEGER(4) + !DEF: /OMP_DO/n ObjectEntity INTEGER(4) integer i,n !$omp parallel - !DEF: /omp_do/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_DO/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 !$omp single print *, "hello" @@ -19,13 +19,13 @@ program omp_do !$omp parallel default(shared) !$omp do - !DEF: /omp_do/OtherConstruct2/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) - !DEF: /omp_do/OtherConstruct2/OtherConstruct1/n HostAssoc INTEGER(4) + !DEF: /OMP_DO/OtherConstruct2/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_DO/OtherConstruct2/OtherConstruct1/n HostAssoc INTEGER(4) do i=1,n !$omp parallel !$omp single !DEF: /work EXTERNAL (Subroutine) ProcEntity - !DEF: /omp_do/OtherConstruct2/OtherConstruct1/OtherConstruct1/OtherConstruct1/i HostAssoc INTEGER(4) + !DEF: /OMP_DO/OtherConstruct2/OtherConstruct1/OtherConstruct1/OtherConstruct1/i HostAssoc INTEGER(4) call work(i, 1) !$omp end single !$omp end parallel @@ -34,7 +34,7 @@ program omp_do !$omp end parallel !$omp parallel private(i) - !DEF: /omp_do/OtherConstruct3/i (OmpPrivate, OmpExplicit) HostAssoc INTEGER(4) + !DEF: /OMP_DO/OtherConstruct3/i (OmpPrivate, OmpExplicit) HostAssoc INTEGER(4) do i=1,10 !$omp single print *, "hello" @@ -43,32 +43,32 @@ program omp_do !$omp end parallel !$omp target teams distribute parallel do - !DEF:/omp_do/OtherConstruct4/i (OmpPrivate ,OmpPreDetermined) HostAssoc INTEGER(4) + !DEF:/OMP_DO/OtherConstruct4/i (OmpPrivate ,OmpPreDetermined) HostAssoc INTEGER(4) do i=1,100 - !REF:/omp_do/OtherConstruct4/i + !REF:/OMP_DO/OtherConstruct4/i if(i<10) cycle end do !$omp end target teams distribute parallel do !$omp target teams distribute parallel do simd - !DEF:/omp_do/OtherConstruct5/i (OmpLinear,OmpPreDetermined) HostAssoc INTEGER(4) + !DEF:/OMP_DO/OtherConstruct5/i (OmpLinear,OmpPreDetermined) HostAssoc INTEGER(4) do i=1,100 - !REF:/omp_do/OtherConstruct5/i + !REF:/OMP_DO/OtherConstruct5/i if(i<10) cycle end do !$omp end target teams distribute parallel do simd !$omp target teams distribute - !DEF: /omp_do/OtherConstruct6/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_DO/OtherConstruct6/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,100 - !REF: /omp_do/OtherConstruct6/i + !REF: /OMP_DO/OtherConstruct6/i if(i < 5) cycle end do !$omp target teams distribute simd - !DEF: /omp_do/OtherConstruct7/i (OmpLinear, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_DO/OtherConstruct7/i (OmpLinear, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,100 - !REF: /omp_do/OtherConstruct7/i + !REF: /OMP_DO/OtherConstruct7/i if(i < 5) cycle end do -end program omp_do +end program OMP_DO diff --git a/flang/test/Semantics/OpenMP/do06-positivecases.f90 b/flang/test/Semantics/OpenMP/do06-positivecases.f90 index 2713b55..dfb1d99 100644 --- a/flang/test/Semantics/OpenMP/do06-positivecases.f90 +++ b/flang/test/Semantics/OpenMP/do06-positivecases.f90 @@ -5,14 +5,14 @@ ! region ever binds to a loop region arising from the loop construct. ! A positive case -!DEF: /omp_do MainProgram -program omp_do - !DEF: /omp_do/i ObjectEntity INTEGER(4) - !DEF: /omp_do/j ObjectEntity INTEGER(4) - !DEF: /omp_do/k ObjectEntity INTEGER(4) +!DEF: /OMP_DO MainProgram +program OMP_DO + !DEF: /OMP_DO/i ObjectEntity INTEGER(4) + !DEF: /OMP_DO/j ObjectEntity INTEGER(4) + !DEF: /OMP_DO/k ObjectEntity INTEGER(4) integer i, j, k !$omp do ordered - !DEF: /omp_do/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_DO/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 !$omp ordered !DEF: /my_func EXTERNAL (Subroutine) ProcEntity @@ -20,4 +20,4 @@ program omp_do !$omp end ordered end do !$omp end do -end program omp_do +end program OMP_DO diff --git a/flang/test/Semantics/OpenMP/do11.f90 b/flang/test/Semantics/OpenMP/do11.f90 index faab457..472048d 100644 --- a/flang/test/Semantics/OpenMP/do11.f90 +++ b/flang/test/Semantics/OpenMP/do11.f90 @@ -2,24 +2,24 @@ ! OpenMP Version 4.5 ! 2.7.1 Do Loop Constructs -!DEF: /omp_do MainProgram -program omp_do - !DEF: /omp_do/i ObjectEntity INTEGER(4) - !DEF: /omp_do/j ObjectEntity INTEGER(4) - !DEF: /omp_do/k ObjectEntity INTEGER(4) +!DEF: /OMP_DO MainProgram +program OMP_DO + !DEF: /OMP_DO/i ObjectEntity INTEGER(4) + !DEF: /OMP_DO/j ObjectEntity INTEGER(4) + !DEF: /OMP_DO/k ObjectEntity INTEGER(4) integer i, j, k !$omp do - !DEF: /omp_do/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_DO/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !REF: /omp_do/j + !REF: /OMP_DO/j do j=1,10 - !REF: /omp_do/OtherConstruct1/i - !REF: /omp_do/j + !REF: /OMP_DO/OtherConstruct1/i + !REF: /OMP_DO/j print *, "it", i, j end do end do !$omp end do -end program omp_do +end program OMP_DO !DEF: /omp_do2 (Subroutine)Subprogram subroutine omp_do2 diff --git a/flang/test/Semantics/OpenMP/do12.f90 b/flang/test/Semantics/OpenMP/do12.f90 index a057a24..06055b7 100644 --- a/flang/test/Semantics/OpenMP/do12.f90 +++ b/flang/test/Semantics/OpenMP/do12.f90 @@ -2,20 +2,20 @@ ! OpenMP Version 4.5 ! 2.7.1 Do Loop constructs. -!DEF: /omp_cycle MainProgram -program omp_cycle +!DEF: /OMP_CYCLE MainProgram +program OMP_CYCLE !$omp do collapse(1) - !DEF: /omp_cycle/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=0,10 - !REF: /omp_cycle/OtherConstruct1/i + !REF: /OMP_CYCLE/OtherConstruct1/i if (i<1) cycle - !DEF: /omp_cycle/j (Implicit) ObjectEntity INTEGER(4) + !DEF: /OMP_CYCLE/j (Implicit) ObjectEntity INTEGER(4) do j=0,10 - !DEF: /omp_cycle/k (Implicit) ObjectEntity INTEGER(4) + !DEF: /OMP_CYCLE/k (Implicit) ObjectEntity INTEGER(4) do k=0,10 - !REF: /omp_cycle/OtherConstruct1/i - !REF: /omp_cycle/j - !REF: /omp_cycle/k + !REF: /OMP_CYCLE/OtherConstruct1/i + !REF: /OMP_CYCLE/j + !REF: /OMP_CYCLE/k print *, i, j, k end do end do @@ -23,17 +23,17 @@ program omp_cycle !$omp end do !$omp do collapse(1) - !DEF: /omp_cycle/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=0,10 - !REF: /omp_cycle/j + !REF: /OMP_CYCLE/j do j=0,10 - !REF: /omp_cycle/OtherConstruct2/i + !REF: /OMP_CYCLE/OtherConstruct2/i if (i<1) cycle - !REF: /omp_cycle/k + !REF: /OMP_CYCLE/k do k=0,10 - !REF: /omp_cycle/OtherConstruct2/i - !REF: /omp_cycle/j - !REF: /omp_cycle/k + !REF: /OMP_CYCLE/OtherConstruct2/i + !REF: /OMP_CYCLE/j + !REF: /OMP_CYCLE/k print *, i, j, k end do end do @@ -41,17 +41,17 @@ program omp_cycle !$omp end do !$omp do collapse(2) - !DEF: /omp_cycle/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=0,10 - !DEF: /omp_cycle/OtherConstruct3/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct3/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do j=0,10 - !REF: /omp_cycle/k + !REF: /OMP_CYCLE/k do k=0,10 - !REF: /omp_cycle/OtherConstruct3/i + !REF: /OMP_CYCLE/OtherConstruct3/i if (i<1) cycle - !REF: /omp_cycle/OtherConstruct3/i - !REF: /omp_cycle/OtherConstruct3/j - !REF: /omp_cycle/k + !REF: /OMP_CYCLE/OtherConstruct3/i + !REF: /OMP_CYCLE/OtherConstruct3/j + !REF: /OMP_CYCLE/k print *, i, j, k end do end do @@ -59,17 +59,17 @@ program omp_cycle !$omp end do !$omp do collapse(3) - !DEF: /omp_cycle/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=0,10 - !DEF: /omp_cycle/OtherConstruct4/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct4/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do j=0,10 - !DEF: /omp_cycle/OtherConstruct4/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct4/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do k=0,10 - !REF: /omp_cycle/OtherConstruct4/i + !REF: /OMP_CYCLE/OtherConstruct4/i if (i<1) cycle - !REF: /omp_cycle/OtherConstruct4/i - !REF: /omp_cycle/OtherConstruct4/j - !REF: /omp_cycle/OtherConstruct4/k + !REF: /OMP_CYCLE/OtherConstruct4/i + !REF: /OMP_CYCLE/OtherConstruct4/j + !REF: /OMP_CYCLE/OtherConstruct4/k print *, i, j, k end do end do @@ -77,20 +77,20 @@ program omp_cycle !$omp end do !$omp do collapse(3) - !DEF: /omp_cycle/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) foo:do i=0,10 - !DEF: /omp_cycle/OtherConstruct5/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct5/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) foo1:do j=0,10 - !DEF: /omp_cycle/OtherConstruct5/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct5/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) foo2:do k=0,10 - !REF: /omp_cycle/OtherConstruct5/i + !REF: /OMP_CYCLE/OtherConstruct5/i if (i<1) cycle foo2 - !REF: /omp_cycle/OtherConstruct5/i - !REF: /omp_cycle/OtherConstruct5/j - !REF: /omp_cycle/OtherConstruct5/k + !REF: /OMP_CYCLE/OtherConstruct5/i + !REF: /OMP_CYCLE/OtherConstruct5/j + !REF: /OMP_CYCLE/OtherConstruct5/k print *, i, j, k end do foo2 end do foo1 end do foo !$omp end do -end program omp_cycle +end program OMP_CYCLE diff --git a/flang/test/Semantics/OpenMP/do14.f90 b/flang/test/Semantics/OpenMP/do14.f90 index 5e8a5a6..e176473 100644 --- a/flang/test/Semantics/OpenMP/do14.f90 +++ b/flang/test/Semantics/OpenMP/do14.f90 @@ -2,19 +2,19 @@ ! OpenMP Version 4.5 ! 2.7.1 Do Loop constructs. -!DEF: /omp_cycle MainProgram -program omp_cycle +!DEF: /OMP_CYCLE MainProgram +program OMP_CYCLE !$omp do collapse(1) - !DEF: /omp_cycle/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=0,10 cycle - !DEF: /omp_cycle/j (Implicit) ObjectEntity INTEGER(4) + !DEF: /OMP_CYCLE/j (Implicit) ObjectEntity INTEGER(4) do j=0,10 - !DEF: /omp_cycle/k (Implicit) ObjectEntity INTEGER(4) + !DEF: /OMP_CYCLE/k (Implicit) ObjectEntity INTEGER(4) do k=0,10 - !REF: /omp_cycle/OtherConstruct1/i - !REF: /omp_cycle/j - !REF: /omp_cycle/k + !REF: /OMP_CYCLE/OtherConstruct1/i + !REF: /OMP_CYCLE/j + !REF: /OMP_CYCLE/k print *, i, j, k end do end do @@ -22,16 +22,16 @@ program omp_cycle !$omp end do !$omp do collapse(1) - !DEF: /omp_cycle/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=0,10 - !REF: /omp_cycle/j + !REF: /OMP_CYCLE/j do j=0,10 cycle - !REF: /omp_cycle/k + !REF: /OMP_CYCLE/k do k=0,10 - !REF: /omp_cycle/OtherConstruct2/i - !REF: /omp_cycle/j - !REF: /omp_cycle/k + !REF: /OMP_CYCLE/OtherConstruct2/i + !REF: /OMP_CYCLE/j + !REF: /OMP_CYCLE/k print *, i, j, k end do end do @@ -39,16 +39,16 @@ program omp_cycle !$omp end do !$omp do collapse(2) - !DEF: /omp_cycle/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=0,10 - !DEF: /omp_cycle/OtherConstruct3/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct3/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do j=0,10 - !REF: /omp_cycle/k + !REF: /OMP_CYCLE/k do k=0,10 cycle - !REF: /omp_cycle/OtherConstruct3/i - !REF: /omp_cycle/OtherConstruct3/j - !REF: /omp_cycle/k + !REF: /OMP_CYCLE/OtherConstruct3/i + !REF: /OMP_CYCLE/OtherConstruct3/j + !REF: /OMP_CYCLE/k print *, i, j, k end do end do @@ -56,16 +56,16 @@ program omp_cycle !$omp end do !$omp do collapse(3) - !DEF: /omp_cycle/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=0,10 - !DEF: /omp_cycle/OtherConstruct4/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct4/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do j=0,10 - !DEF: /omp_cycle/OtherConstruct4/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct4/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do k=0,10 cycle - !REF: /omp_cycle/OtherConstruct4/i - !REF: /omp_cycle/OtherConstruct4/j - !REF: /omp_cycle/OtherConstruct4/k + !REF: /OMP_CYCLE/OtherConstruct4/i + !REF: /OMP_CYCLE/OtherConstruct4/j + !REF: /OMP_CYCLE/OtherConstruct4/k print *, i, j, k end do end do @@ -73,19 +73,19 @@ program omp_cycle !$omp end do !$omp do ordered(3) - !DEF: /omp_cycle/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) foo:do i=0,10 - !DEF: /omp_cycle/OtherConstruct5/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct5/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) foo1:do j=0,10 - !DEF: /omp_cycle/OtherConstruct5/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_CYCLE/OtherConstruct5/k (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) foo2:do k=0,10 cycle foo2 - !REF: /omp_cycle/OtherConstruct5/i - !REF: /omp_cycle/OtherConstruct5/j - !REF: /omp_cycle/OtherConstruct5/k + !REF: /OMP_CYCLE/OtherConstruct5/i + !REF: /OMP_CYCLE/OtherConstruct5/j + !REF: /OMP_CYCLE/OtherConstruct5/k print *, i, j, k end do foo2 end do foo1 end do foo !$omp end do -end program omp_cycle +end program OMP_CYCLE diff --git a/flang/test/Semantics/OpenMP/do17.f90 b/flang/test/Semantics/OpenMP/do17.f90 index c0c59f1..cac11f2 100644 --- a/flang/test/Semantics/OpenMP/do17.f90 +++ b/flang/test/Semantics/OpenMP/do17.f90 @@ -2,56 +2,56 @@ ! OpenMP Version 4.5 ! 2.7.1 Do Loop constructs. -!DEF: /test MainProgram -program test - !DEF: /test/i ObjectEntity INTEGER(4) - !DEF: /test/j ObjectEntity INTEGER(4) - !DEF: /test/k ObjectEntity INTEGER(4) +!DEF: /TEST MainProgram +program TEST + !DEF: /TEST/i ObjectEntity INTEGER(4) + !DEF: /TEST/j ObjectEntity INTEGER(4) + !DEF: /TEST/k ObjectEntity INTEGER(4) integer i, j, k !$omp do collapse(2) - !DEF: /test/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /TEST/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) foo: do i=0,10 - !DEF: /test/OtherConstruct1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /TEST/OtherConstruct1/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) foo1: do j=0,10 - !REF: /test/k + !REF: /TEST/k foo2: do k=0,10 - !REF: /test/OtherConstruct1/i + !REF: /TEST/OtherConstruct1/i select case (i) case (5) cycle foo1 case (7) cycle foo2 end select - !REF: /test/OtherConstruct1/i - !REF: /test/OtherConstruct1/j - !REF: /test/k + !REF: /TEST/OtherConstruct1/i + !REF: /TEST/OtherConstruct1/j + !REF: /TEST/k print *, i, j, k end do foo2 end do foo1 end do foo !$omp do collapse(2) - !DEF: /test/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /TEST/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) foo: do i=0,10 - !DEF: /test/OtherConstruct2/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /TEST/OtherConstruct2/j (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) foo1: do j=0,10 - !REF: /test/k + !REF: /TEST/k foo2: do k=0,10 - !REF: /test/OtherConstruct2/i + !REF: /TEST/OtherConstruct2/i if (i<3) then cycle foo1 - !REF: /test/OtherConstruct2/i + !REF: /TEST/OtherConstruct2/i else if (i>8) then cycle foo1 else cycle foo2 end if - !REF: /test/OtherConstruct2/i - !REF: /test/OtherConstruct2/j - !REF: /test/k + !REF: /TEST/OtherConstruct2/i + !REF: /TEST/OtherConstruct2/j + !REF: /TEST/k print *, i, j, k end do foo2 end do foo1 end do foo !$omp end do -end program test +end program TEST diff --git a/flang/test/Semantics/OpenMP/map-clause-symbols.f90 b/flang/test/Semantics/OpenMP/map-clause-symbols.f90 index 8f984fc..1d6315b 100644 --- a/flang/test/Semantics/OpenMP/map-clause-symbols.f90 +++ b/flang/test/Semantics/OpenMP/map-clause-symbols.f90 @@ -1,6 +1,6 @@ ! RUN: %flang_fc1 -fdebug-dump-symbols -fopenmp -fopenmp-version=50 %s | FileCheck %s program main -!CHECK-LABEL: MainProgram scope: main +!CHECK-LABEL: MainProgram scope: MAIN integer, parameter :: n = 256 real(8) :: a(256) !$omp target map(mapper(xx), from:a) diff --git a/flang/test/Semantics/OpenMP/reduction08.f90 b/flang/test/Semantics/OpenMP/reduction08.f90 index 01a06eb..b4a81e6 100644 --- a/flang/test/Semantics/OpenMP/reduction08.f90 +++ b/flang/test/Semantics/OpenMP/reduction08.f90 @@ -2,62 +2,62 @@ ! OpenMP Version 4.5 ! 2.15.3.6 Reduction Clause Positive cases -!DEF: /omp_reduction MainProgram -program omp_reduction - !DEF: /omp_reduction/i ObjectEntity INTEGER(4) +!DEF: /OMP_REDUCTION MainProgram +program OMP_REDUCTION + !DEF: /OMP_REDUCTION/i ObjectEntity INTEGER(4) integer i - !DEF: /omp_reduction/k ObjectEntity INTEGER(4) + !DEF: /OMP_REDUCTION/k ObjectEntity INTEGER(4) integer :: k = 10 - !DEF: /omp_reduction/m ObjectEntity INTEGER(4) + !DEF: /OMP_REDUCTION/m ObjectEntity INTEGER(4) integer :: m = 12 !$omp parallel do reduction(max:k) - !DEF: /omp_reduction/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct1/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) - !DEF: /omp_reduction/max ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity - !DEF: /omp_reduction/OtherConstruct1/m (OmpShared) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct1/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/max ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity + !DEF: /OMP_REDUCTION/OtherConstruct1/m (OmpShared) HostAssoc INTEGER(4) k = max(k, m) end do !$omp end parallel do !$omp parallel do reduction(min:k) - !DEF: /omp_reduction/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct2/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) - !DEF: /omp_reduction/min ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity - !DEF: /omp_reduction/OtherConstruct2/m (OmpShared) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct2/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/min ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity + !DEF: /OMP_REDUCTION/OtherConstruct2/m (OmpShared) HostAssoc INTEGER(4) k = min(k, m) end do !$omp end parallel do !$omp parallel do reduction(iand:k) - !DEF: /omp_reduction/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct3/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) - !DEF: /omp_reduction/iand ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity - !DEF: /omp_reduction/OtherConstruct3/m (OmpShared) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct3/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/iand ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity + !DEF: /OMP_REDUCTION/OtherConstruct3/m (OmpShared) HostAssoc INTEGER(4) k = iand(k, m) end do !$omp end parallel do !$omp parallel do reduction(ior:k) - !DEF: /omp_reduction/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct4/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) - !DEF: /omp_reduction/ior ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity - !DEF: /omp_reduction/OtherConstruct4/m (OmpShared) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct4/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/ior ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity + !DEF: /OMP_REDUCTION/OtherConstruct4/m (OmpShared) HostAssoc INTEGER(4) k = ior(k, m) end do !$omp end parallel do !$omp parallel do reduction(ieor:k) - !DEF: /omp_reduction/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct5/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) - !DEF: /omp_reduction/ieor ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity - !DEF: /omp_reduction/OtherConstruct5/m (OmpShared) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct5/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/ieor ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity + !DEF: /OMP_REDUCTION/OtherConstruct5/m (OmpShared) HostAssoc INTEGER(4) k = ieor(k,m) end do !$omp end parallel do -end program omp_reduction +end program OMP_REDUCTION diff --git a/flang/test/Semantics/OpenMP/reduction09.f90 b/flang/test/Semantics/OpenMP/reduction09.f90 index d6c71c3..ca60805 100644 --- a/flang/test/Semantics/OpenMP/reduction09.f90 +++ b/flang/test/Semantics/OpenMP/reduction09.f90 @@ -1,22 +1,22 @@ ! RUN: %python %S/../test_symbols.py %s %flang_fc1 -fopenmp ! OpenMP Version 4.5 ! 2.15.3.6 Reduction Clause Positive cases. -!DEF: /omp_reduction MainProgram -program omp_reduction - !DEF: /omp_reduction/i ObjectEntity INTEGER(4) +!DEF: /OMP_REDUCTION MainProgram +program OMP_REDUCTION + !DEF: /OMP_REDUCTION/i ObjectEntity INTEGER(4) integer i - !DEF: /omp_reduction/k ObjectEntity INTEGER(4) + !DEF: /OMP_REDUCTION/k ObjectEntity INTEGER(4) integer :: k = 10 - !DEF: /omp_reduction/a ObjectEntity INTEGER(4) + !DEF: /OMP_REDUCTION/a ObjectEntity INTEGER(4) integer a(10) - !DEF: /omp_reduction/b ObjectEntity INTEGER(4) + !DEF: /OMP_REDUCTION/b ObjectEntity INTEGER(4) integer b(10,10,10) !$omp parallel shared(k) !$omp do reduction(+:k) - !DEF: /omp_reduction/OtherConstruct1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct1/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct1/OtherConstruct1/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct1/OtherConstruct1/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) k = k+1 end do !$omp end do @@ -24,53 +24,53 @@ program omp_reduction !$omp parallel do reduction(+:a(10)) - !DEF: /omp_reduction/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct2/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct2/k (OmpShared) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct2/k (OmpShared) HostAssoc INTEGER(4) k = k+1 end do !$omp end parallel do !$omp parallel do reduction(+:a(1:10:1)) - !DEF: /omp_reduction/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct3/k (OmpShared) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct3/k (OmpShared) HostAssoc INTEGER(4) k = k+1 end do !$omp end parallel do !$omp parallel do reduction(+:b(1:10:1,1:5,2)) - !DEF: /omp_reduction/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct4/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct4/k (OmpShared) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct4/k (OmpShared) HostAssoc INTEGER(4) k = k+1 end do !$omp end parallel do !$omp parallel do reduction(+:b(1:10:1,1:5,2:5:1)) - !DEF: /omp_reduction/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct5/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct5/k (OmpShared) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct5/k (OmpShared) HostAssoc INTEGER(4) k = k+1 end do !$omp end parallel do !$omp parallel private(i) !$omp do reduction(+:k) reduction(+:j) - !DEF: /omp_reduction/OtherConstruct6/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct6/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct6/OtherConstruct1/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct6/OtherConstruct1/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) k = k+1 end do !$omp end do !$omp end parallel !$omp do reduction(+:k) reduction(*:j) reduction(+:l) - !DEF: /omp_reduction/OtherConstruct7/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct7/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /omp_reduction/OtherConstruct7/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) + !DEF: /OMP_REDUCTION/OtherConstruct7/k (OmpReduction, OmpExplicit) HostAssoc INTEGER(4) k = k+1 end do !$omp end do -end program omp_reduction +end program OMP_REDUCTION diff --git a/flang/test/Semantics/OpenMP/reduction11.f90 b/flang/test/Semantics/OpenMP/reduction11.f90 index b2ad0f6..dfb3986 100644 --- a/flang/test/Semantics/OpenMP/reduction11.f90 +++ b/flang/test/Semantics/OpenMP/reduction11.f90 @@ -1,7 +1,7 @@ ! RUN: %flang_fc1 -fopenmp -fdebug-dump-symbols -o - %s 2>&1 | FileCheck %s ! Check intrinsic reduction symbols (in this case "max" are marked as INTRINSIC -! CHECK: MainProgram scope: omp_reduction +! CHECK: MainProgram scope: OMP_REDUCTION program omp_reduction ! CHECK: i size=4 offset=0: ObjectEntity type: INTEGER(4) integer i diff --git a/flang/test/Semantics/OpenMP/scan2.f90 b/flang/test/Semantics/OpenMP/scan2.f90 index ffe8491..1ae5e87 100644 --- a/flang/test/Semantics/OpenMP/scan2.f90 +++ b/flang/test/Semantics/OpenMP/scan2.f90 @@ -1,7 +1,7 @@ ! RUN: %flang_fc1 -fopenmp -fdebug-dump-symbols -o - %s 2>&1 | FileCheck %s ! Check scan reduction -! CHECK: MainProgram scope: omp_reduction +! CHECK: MainProgram scope: OMP_REDUCTION program omp_reduction ! CHECK: i size=4 offset=0: ObjectEntity type: INTEGER(4) integer i diff --git a/flang/test/Semantics/OpenMP/symbol01.f90 b/flang/test/Semantics/OpenMP/symbol01.f90 index fbd9a02..74fb420 100644 --- a/flang/test/Semantics/OpenMP/symbol01.f90 +++ b/flang/test/Semantics/OpenMP/symbol01.f90 @@ -16,53 +16,53 @@ module md integer :: b end type myty end module md -!DEF: /mm MainProgram -program mm +!DEF: /MM MainProgram +program MM !REF: /md use :: md - !DEF: /mm/c CommonBlockDetails - !DEF: /mm/x (InCommonBlock) ObjectEntity REAL(4) - !DEF: /mm/y (InCommonBlock) ObjectEntity REAL(4) + !DEF: /MM/c CommonBlockDetails + !DEF: /MM/x (InCommonBlock) ObjectEntity REAL(4) + !DEF: /MM/y (InCommonBlock) ObjectEntity REAL(4) common /c/x, y - !REF: /mm/x - !REF: /mm/y + !REF: /MM/x + !REF: /MM/y real x, y - !DEF: /mm/myty Use - !DEF: /mm/t ObjectEntity TYPE(myty) + !DEF: /MM/myty Use + !DEF: /MM/t ObjectEntity TYPE(myty) type(myty) :: t - !DEF: /mm/b ObjectEntity INTEGER(4) + !DEF: /MM/b ObjectEntity INTEGER(4) integer b(10) - !REF: /mm/t + !REF: /MM/t !REF: /md/myty/a t%a = 3.14 - !REF: /mm/t + !REF: /MM/t !REF: /md/myty/b t%b = 1 - !REF: /mm/b + !REF: /MM/b b = 2 - !DEF: /mm/a (Implicit) ObjectEntity REAL(4) + !DEF: /MM/a (Implicit) ObjectEntity REAL(4) a = 1.0 - !DEF: /mm/c (Implicit) ObjectEntity REAL(4) + !DEF: /MM/c (Implicit) ObjectEntity REAL(4) c = 2.0 !$omp parallel do private(a,t,/c/) shared(c) - !DEF: /mm/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) + !DEF: /MM/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4) do i=1,10 - !DEF: /mm/OtherConstruct1/a (OmpPrivate, OmpExplicit) HostAssoc REAL(4) - !DEF: /mm/OtherConstruct1/b (OmpShared) HostAssoc INTEGER(4) - !REF: /mm/OtherConstruct1/i + !DEF: /MM/OtherConstruct1/a (OmpPrivate, OmpExplicit) HostAssoc REAL(4) + !DEF: /MM/OtherConstruct1/b (OmpShared) HostAssoc INTEGER(4) + !REF: /MM/OtherConstruct1/i a = a+b(i) - !DEF: /mm/OtherConstruct1/t (OmpPrivate, OmpExplicit) HostAssoc TYPE(myty) + !DEF: /MM/OtherConstruct1/t (OmpPrivate, OmpExplicit) HostAssoc TYPE(myty) !REF: /md/myty/a - !REF: /mm/OtherConstruct1/i + !REF: /MM/OtherConstruct1/i t%a = i - !DEF: /mm/OtherConstruct1/y (OmpPrivate, OmpExplicit) HostAssoc REAL(4) + !DEF: /MM/OtherConstruct1/y (OmpPrivate, OmpExplicit) HostAssoc REAL(4) y = 0. - !DEF: /mm/OtherConstruct1/x (OmpPrivate, OmpExplicit) HostAssoc REAL(4) - !REF: /mm/OtherConstruct1/a - !REF: /mm/OtherConstruct1/i - !REF: /mm/OtherConstruct1/y + !DEF: /MM/OtherConstruct1/x (OmpPrivate, OmpExplicit) HostAssoc REAL(4) + !REF: /MM/OtherConstruct1/a + !REF: /MM/OtherConstruct1/i + !REF: /MM/OtherConstruct1/y x = a+i+y - !DEF: /mm/OtherConstruct1/c (OmpShared, OmpExplicit) HostAssoc REAL(4) + !DEF: /MM/OtherConstruct1/c (OmpShared, OmpExplicit) HostAssoc REAL(4) c = 3.0 end do end program diff --git a/flang/test/Semantics/OpenMP/symbol05.f90 b/flang/test/Semantics/OpenMP/symbol05.f90 index fe01f15..4f3d192 100644 --- a/flang/test/Semantics/OpenMP/symbol05.f90 +++ b/flang/test/Semantics/OpenMP/symbol05.f90 @@ -31,10 +31,10 @@ contains end block end subroutine foo end module mm -!DEF: /tt MainProgram -program tt +!DEF: /TT MainProgram +program TT !REF: /mm use :: mm - !DEF: /tt/foo (Subroutine) Use + !DEF: /TT/foo (Subroutine) Use call foo -end program tt +end program TT diff --git a/flang/test/Semantics/OpenMP/symbol07.f90 b/flang/test/Semantics/OpenMP/symbol07.f90 index 86b7305..1b0c25b 100644 --- a/flang/test/Semantics/OpenMP/symbol07.f90 +++ b/flang/test/Semantics/OpenMP/symbol07.f90 @@ -30,8 +30,8 @@ subroutine function_call_in_region !REF: /function_call_in_region/b print *, a, b end subroutine function_call_in_region -!DEF: /mm MainProgram -program mm +!DEF: /MM MainProgram +program MM !REF: /function_call_in_region call function_call_in_region -end program mm +end program MM diff --git a/flang/test/Semantics/OpenMP/symbol09.f90 b/flang/test/Semantics/OpenMP/symbol09.f90 index 86b7305..1b0c25b 100644 --- a/flang/test/Semantics/OpenMP/symbol09.f90 +++ b/flang/test/Semantics/OpenMP/symbol09.f90 @@ -30,8 +30,8 @@ subroutine function_call_in_region !REF: /function_call_in_region/b print *, a, b end subroutine function_call_in_region -!DEF: /mm MainProgram -program mm +!DEF: /MM MainProgram +program MM !REF: /function_call_in_region call function_call_in_region -end program mm +end program MM diff --git a/flang/test/Semantics/OpenMP/threadprivate03.f90 b/flang/test/Semantics/OpenMP/threadprivate03.f90 index 81e26ee3..fda2fe6 100644 --- a/flang/test/Semantics/OpenMP/threadprivate03.f90 +++ b/flang/test/Semantics/OpenMP/threadprivate03.f90 @@ -10,11 +10,11 @@ program main use mod1 integer, parameter :: i = 1 - !ERROR: The module name or main program name cannot be in a THREADPRIVATE directive + !ERROR: The module name cannot be in a THREADPRIVATE directive !$omp threadprivate(mod1) - !PORTABILITY: Name 'main' declared in a main program should not have the same name as the main program [-Wbenign-name-clash] - !ERROR: The module name or main program name cannot be in a THREADPRIVATE directive + ! This is now allowed, since "main" is implicitly declared symbol, + ! separate from the main program symbol. !$omp threadprivate(main) !ERROR: The entity with PARAMETER attribute cannot be in a THREADPRIVATE directive diff --git a/flang/test/Semantics/getsymbols03-a.f90 b/flang/test/Semantics/getsymbols03-a.f90 index 95b7fb4..5c5e875 100644 --- a/flang/test/Semantics/getsymbols03-a.f90 +++ b/flang/test/Semantics/getsymbols03-a.f90 @@ -8,7 +8,7 @@ program main end program ! RUN: %flang_fc1 -fget-symbols-sources %s 2>&1 | FileCheck %s +! CHECK:MAIN:{{.*}}getsymbols03-a.f90, 4, 9-13 ! CHECK:f:{{.*}}getsymbols03-b.f90, 2, 12-13 -! CHECK:main:{{.*}}getsymbols03-a.f90, 4, 9-13 ! CHECK:mm3:{{.*}}getsymbols03-a.f90, 5, 6-9 ! CHECK:x:{{.*}}getsymbols03-a.f90, 6, 13-14 diff --git a/flang/test/Semantics/long-name.f90 b/flang/test/Semantics/long-name.f90 index 44899b1..d5a7951 100644 --- a/flang/test/Semantics/long-name.f90 +++ b/flang/test/Semantics/long-name.f90 @@ -1,6 +1,6 @@ ! RUN: %python %S/test_errors.py %s %flang_fc1 -Werror -pedantic -!PORTABILITY: aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffggg1 has length 64, which is greater than the maximum name length 63 [-Wlong-names] +!PORTABILITY: AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDDDDDDDDDDEEEEEEEEEEFFFFFFFFFFGGG1 has length 64, which is greater than the maximum name length 63 [-Wlong-names] program aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffggg1 !PORTABILITY: aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffggg2 has length 64, which is greater than the maximum name length 63 [-Wlong-names] diff --git a/flang/test/Semantics/modproc01.f90 b/flang/test/Semantics/modproc01.f90 index 5f45362..e565ddc 100644 --- a/flang/test/Semantics/modproc01.f90 +++ b/flang/test/Semantics/modproc01.f90 @@ -125,7 +125,7 @@ program test x = mf(3, "abc", pdt1(1,3)()) ! call ms(mf) end program -!CHECK: MainProgram scope: test size=88 alignment=8 +!CHECK: MainProgram scope: TEST size=88 alignment=8 !CHECK: mf, MODULE (Function): Use from mf in m !CHECK: pdt1: Use from pdt1 in m !CHECK: pdt2: Use from pdt2 in m diff --git a/flang/test/Semantics/multi-programs04.f90 b/flang/test/Semantics/multi-programs04.f90 index 54b0235..e69ac73 100644 --- a/flang/test/Semantics/multi-programs04.f90 +++ b/flang/test/Semantics/multi-programs04.f90 @@ -4,6 +4,6 @@ program m end !ERROR: A source file cannot contain more than one main program -!ERROR: 'm' is already declared in this scoping unit +!ERROR: 'M' is already declared in this scoping unit program m end diff --git a/flang/test/Semantics/pointer01.f90 b/flang/test/Semantics/pointer01.f90 index eaa2426..79d6016 100644 --- a/flang/test/Semantics/pointer01.f90 +++ b/flang/test/Semantics/pointer01.f90 @@ -7,7 +7,6 @@ module m end module program main use m - !PORTABILITY: Name 'main' declared in a main program should not have the same name as the main program [-Wbenign-name-clash] pointer main !ERROR: Cannot change POINTER attribute on use-associated 'mobj' pointer mobj diff --git a/flang/test/Semantics/procinterface01.f90 b/flang/test/Semantics/procinterface01.f90 index 73040b0..70f4a88 100644 --- a/flang/test/Semantics/procinterface01.f90 +++ b/flang/test/Semantics/procinterface01.f90 @@ -159,35 +159,35 @@ character*1 function tan(x) tan = "?" end function tan -!DEF: /main MainProgram -program main +!DEF: /MAIN MainProgram +program MAIN !REF: /module1 use :: module1 - !DEF: /main/derived1 Use - !DEF: /main/instance ObjectEntity TYPE(derived1) + !DEF: /MAIN/derived1 Use + !DEF: /MAIN/instance ObjectEntity TYPE(derived1) type(derived1) :: instance - !REF: /main/instance + !REF: /MAIN/instance !REF: /module1/derived1/p1 if (instance%p1(1.)/=2.) print *, "p1 failed" - !REF: /main/instance + !REF: /MAIN/instance !REF: /module1/derived1/p2 if (instance%p2(1.)/=2.) print *, "p2 failed" - !REF: /main/instance + !REF: /MAIN/instance !REF: /module1/derived1/p3 if (.not.instance%p3(1.)) print *, "p3 failed" - !REF: /main/instance + !REF: /MAIN/instance !REF: /module1/derived1/p4 if (.not.instance%p4(1.)) print *, "p4 failed" - !REF: /main/instance + !REF: /MAIN/instance !REF: /module1/derived1/p5 if (instance%p5(1.)/=(5.,6.)) print *, "p5 failed" - !REF: /main/instance + !REF: /MAIN/instance !REF: /module1/derived1/p6 if (instance%p6(1.)/=2.) print *, "p6 failed" - !REF: /main/instance + !REF: /MAIN/instance !REF: /module1/derived1/p7 if (instance%p7(0.)/=1.) print *, "p7 failed" - !REF: /main/instance + !REF: /MAIN/instance !REF: /module1/derived1/p8 if (instance%p8(1.)/="a") print *, "p8 failed" -end program main +end program MAIN diff --git a/flang/test/Semantics/resolve05.f90 b/flang/test/Semantics/resolve05.f90 index 0c9877a..7b142d2 100644 --- a/flang/test/Semantics/resolve05.f90 +++ b/flang/test/Semantics/resolve05.f90 @@ -1,6 +1,5 @@ ! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic program p - !PORTABILITY: Name 'p' declared in a main program should not have the same name as the main program [-Wbenign-name-clash] integer :: p end module m diff --git a/flang/test/Semantics/resolve125.f90 b/flang/test/Semantics/resolve125.f90 index e040c00..620c7d6 100644 --- a/flang/test/Semantics/resolve125.f90 +++ b/flang/test/Semantics/resolve125.f90 @@ -43,7 +43,7 @@ contains end subroutine reset end module m2 -!CHECK: MainProgram scope: main +!CHECK: MainProgram scope: MAIN !CHECK: i: Use from i in m2 !CHECK: i2: Use from i2 in m2 !CHECK: init (Subroutine): Use from init in m2 @@ -61,4 +61,4 @@ program main else print *, "fail" end if -end program main
\ No newline at end of file +end program main diff --git a/flang/test/Semantics/symbol03.f90 b/flang/test/Semantics/symbol03.f90 index a6b4b0b..6247249 100644 --- a/flang/test/Semantics/symbol03.f90 +++ b/flang/test/Semantics/symbol03.f90 @@ -1,23 +1,23 @@ ! RUN: %python %S/test_symbols.py %s %flang_fc1 ! Test host association in internal subroutine of main program. -!DEF: /main MainProgram -program main - !DEF: /main/x ObjectEntity INTEGER(4) +!DEF: /MAIN MainProgram +program MAIN + !DEF: /MAIN/x ObjectEntity INTEGER(4) integer x - !DEF: /main/s (Subroutine) Subprogram + !DEF: /MAIN/s (Subroutine) Subprogram call s contains - !REF: /main/s + !REF: /MAIN/s subroutine s - !DEF: /main/s/y (Implicit) ObjectEntity REAL(4) - !DEF: /main/s/x HostAssoc INTEGER(4) + !DEF: /MAIN/s/y (Implicit) ObjectEntity REAL(4) + !DEF: /MAIN/s/x HostAssoc INTEGER(4) y = x contains - !DEF: /main/s/s2 (Subroutine) Subprogram + !DEF: /MAIN/s/s2 (Subroutine) Subprogram subroutine s2 - !DEF: /main/s/s2/z (Implicit) ObjectEntity REAL(4) - !DEF: /main/s/s2/x HostAssoc INTEGER(4) + !DEF: /MAIN/s/s2/z (Implicit) ObjectEntity REAL(4) + !DEF: /MAIN/s/s2/x HostAssoc INTEGER(4) z = x end subroutine end subroutine diff --git a/flang/test/Semantics/symbol06.f90 b/flang/test/Semantics/symbol06.f90 index bbd6d4d..b45edab 100644 --- a/flang/test/Semantics/symbol06.f90 +++ b/flang/test/Semantics/symbol06.f90 @@ -1,56 +1,56 @@ ! RUN: %python %S/test_symbols.py %s %flang_fc1 -!DEF: /main MainProgram -program main - !DEF: /main/t1 DerivedType +!DEF: /MAIN MainProgram +program MAIN + !DEF: /MAIN/t1 DerivedType type :: t1 - !DEF: /main/t1/a1 ObjectEntity INTEGER(4) + !DEF: /MAIN/t1/a1 ObjectEntity INTEGER(4) integer :: a1 end type - !REF: /main/t1 - !DEF: /main/t2 DerivedType + !REF: /MAIN/t1 + !DEF: /MAIN/t2 DerivedType type, extends(t1) :: t2 - !DEF: /main/t2/a2 ObjectEntity INTEGER(4) + !DEF: /MAIN/t2/a2 ObjectEntity INTEGER(4) integer :: a2 end type - !REF: /main/t2 - !DEF: /main/t3 DerivedType + !REF: /MAIN/t2 + !DEF: /MAIN/t3 DerivedType type, extends(t2) :: t3 - !DEF: /main/t3/a3 ObjectEntity INTEGER(4) + !DEF: /MAIN/t3/a3 ObjectEntity INTEGER(4) integer :: a3 end type - !REF: /main/t3 - !DEF: /main/x3 ObjectEntity TYPE(t3) + !REF: /MAIN/t3 + !DEF: /MAIN/x3 ObjectEntity TYPE(t3) type(t3) :: x3 - !DEF: /main/i ObjectEntity INTEGER(4) + !DEF: /MAIN/i ObjectEntity INTEGER(4) integer i - !REF: /main/i - !REF: /main/x3 - !REF: /main/t2/a2 + !REF: /MAIN/i + !REF: /MAIN/x3 + !REF: /MAIN/t2/a2 i = x3%a2 - !REF: /main/i - !REF: /main/x3 - !REF: /main/t1/a1 + !REF: /MAIN/i + !REF: /MAIN/x3 + !REF: /MAIN/t1/a1 i = x3%a1 - !REF: /main/i - !REF: /main/x3 - !DEF: /main/t3/t2 (ParentComp) ObjectEntity TYPE(t2) - !REF: /main/t2/a2 + !REF: /MAIN/i + !REF: /MAIN/x3 + !DEF: /MAIN/t3/t2 (ParentComp) ObjectEntity TYPE(t2) + !REF: /MAIN/t2/a2 i = x3%t2%a2 - !REF: /main/i - !REF: /main/x3 - !REF: /main/t3/t2 - !REF: /main/t1/a1 + !REF: /MAIN/i + !REF: /MAIN/x3 + !REF: /MAIN/t3/t2 + !REF: /MAIN/t1/a1 i = x3%t2%a1 - !REF: /main/i - !REF: /main/x3 - !DEF: /main/t2/t1 (ParentComp) ObjectEntity TYPE(t1) - !REF: /main/t1/a1 + !REF: /MAIN/i + !REF: /MAIN/x3 + !DEF: /MAIN/t2/t1 (ParentComp) ObjectEntity TYPE(t1) + !REF: /MAIN/t1/a1 i = x3%t1%a1 - !REF: /main/i - !REF: /main/x3 - !REF: /main/t3/t2 - !REF: /main/t2/t1 - !REF: /main/t1/a1 + !REF: /MAIN/i + !REF: /MAIN/x3 + !REF: /MAIN/t3/t2 + !REF: /MAIN/t2/t1 + !REF: /MAIN/t1/a1 i = x3%t2%t1%a1 end program diff --git a/flang/test/Semantics/symbol07.f90 b/flang/test/Semantics/symbol07.f90 index f3cc934..e1d8257 100644 --- a/flang/test/Semantics/symbol07.f90 +++ b/flang/test/Semantics/symbol07.f90 @@ -1,40 +1,40 @@ ! RUN: %python %S/test_symbols.py %s %flang_fc1 -!DEF: /main MainProgram -program main +!DEF: /MAIN MainProgram +program MAIN implicit complex(z) - !DEF: /main/t DerivedType + !DEF: /MAIN/t DerivedType type :: t - !DEF: /main/t/re ObjectEntity REAL(4) + !DEF: /MAIN/t/re ObjectEntity REAL(4) real :: re - !DEF: /main/t/im ObjectEntity REAL(4) + !DEF: /MAIN/t/im ObjectEntity REAL(4) real :: im end type - !DEF: /main/z1 ObjectEntity COMPLEX(4) + !DEF: /MAIN/z1 ObjectEntity COMPLEX(4) complex z1 - !REF: /main/t - !DEF: /main/w ObjectEntity TYPE(t) + !REF: /MAIN/t + !DEF: /MAIN/w ObjectEntity TYPE(t) type(t) :: w - !DEF: /main/x ObjectEntity REAL(4) - !DEF: /main/y ObjectEntity REAL(4) + !DEF: /MAIN/x ObjectEntity REAL(4) + !DEF: /MAIN/y ObjectEntity REAL(4) real x, y - !REF: /main/x - !REF: /main/z1 + !REF: /MAIN/x + !REF: /MAIN/z1 x = z1%re - !REF: /main/y - !REF: /main/z1 + !REF: /MAIN/y + !REF: /MAIN/z1 y = z1%im - !DEF: /main/z2 (Implicit) ObjectEntity COMPLEX(4) - !REF: /main/x + !DEF: /MAIN/z2 (Implicit) ObjectEntity COMPLEX(4) + !REF: /MAIN/x z2%re = x - !REF: /main/z2 - !REF: /main/y + !REF: /MAIN/z2 + !REF: /MAIN/y z2%im = y - !REF: /main/x - !REF: /main/w - !REF: /main/t/re + !REF: /MAIN/x + !REF: /MAIN/w + !REF: /MAIN/t/re x = w%re - !REF: /main/y - !REF: /main/w - !REF: /main/t/im + !REF: /MAIN/y + !REF: /MAIN/w + !REF: /MAIN/t/im y = w%im end program diff --git a/flang/test/Semantics/symbol08.f90 b/flang/test/Semantics/symbol08.f90 index 61dab79..933ff6d 100644 --- a/flang/test/Semantics/symbol08.f90 +++ b/flang/test/Semantics/symbol08.f90 @@ -1,15 +1,15 @@ ! RUN: %python %S/test_symbols.py %s %flang_fc1 -!DEF: /main MainProgram -program main - !DEF: /main/x POINTER ObjectEntity REAL(4) +!DEF: /MAIN MainProgram +program MAIN + !DEF: /MAIN/x POINTER ObjectEntity REAL(4) pointer :: x - !REF: /main/x + !REF: /MAIN/x real x - !DEF: /main/y EXTERNAL, POINTER (Function) ProcEntity REAL(4) + !DEF: /MAIN/y EXTERNAL, POINTER (Function) ProcEntity REAL(4) pointer :: y - !REF: /main/y + !REF: /MAIN/y procedure (real) :: y - !DEF: /main/z (Implicit) ObjectEntity REAL(4) - !REF: /main/y + !DEF: /MAIN/z (Implicit) ObjectEntity REAL(4) + !REF: /MAIN/y z = y() end program diff --git a/flang/test/Semantics/symbol15.f90 b/flang/test/Semantics/symbol15.f90 index df10942..79a4549 100644 --- a/flang/test/Semantics/symbol15.f90 +++ b/flang/test/Semantics/symbol15.f90 @@ -249,15 +249,15 @@ end subroutine !DEF: /ext3 (Subroutine) Subprogram subroutine ext3 end subroutine -!DEF: /main MainProgram -program main +!DEF: /MAIN MainProgram +program MAIN !REF: /m use :: m - !DEF: /main/pdt1 Use - !DEF: /main/pdt1y ObjectEntity TYPE(pdt1(k=2_4)) + !DEF: /MAIN/pdt1 Use + !DEF: /MAIN/pdt1y ObjectEntity TYPE(pdt1(k=2_4)) type(pdt1(2)) :: pdt1y - !DEF: /main/pdt2 Use - !DEF: /main/pdt2y ObjectEntity TYPE(pdt2(k=2_4)) + !DEF: /MAIN/pdt2 Use + !DEF: /MAIN/pdt2y ObjectEntity TYPE(pdt2(k=2_4)) type(pdt2(2)) :: pdt2y print *, "compiled" end program diff --git a/flang/test/Semantics/symbol16.f90 b/flang/test/Semantics/symbol16.f90 index 7a46092..547c462 100644 --- a/flang/test/Semantics/symbol16.f90 +++ b/flang/test/Semantics/symbol16.f90 @@ -1,18 +1,18 @@ ! RUN: %python %S/test_symbols.py %s %flang_fc1 ! Statement functions -!DEF: /p1 MainProgram -program p1 - !DEF: /p1/f (Function, StmtFunction) Subprogram INTEGER(4) - !DEF: /p1/i ObjectEntity INTEGER(4) - !DEF: /p1/j ObjectEntity INTEGER(4) +!DEF: /P1 MainProgram +program P1 + !DEF: /P1/f (Function, StmtFunction) Subprogram INTEGER(4) + !DEF: /P1/i ObjectEntity INTEGER(4) + !DEF: /P1/j ObjectEntity INTEGER(4) integer f, i, j - !REF: /p1/f - !REF: /p1/i - !DEF: /p1/f/i ObjectEntity INTEGER(4) + !REF: /P1/f + !REF: /P1/i + !DEF: /P1/f/i ObjectEntity INTEGER(4) f(i) = i + 1 - !REF: /p1/j - !REF: /p1/f + !REF: /P1/j + !REF: /P1/f j = f(2) end program diff --git a/flang/test/Semantics/symbol17.f90 b/flang/test/Semantics/symbol17.f90 index 434f124..a0d916e 100644 --- a/flang/test/Semantics/symbol17.f90 +++ b/flang/test/Semantics/symbol17.f90 @@ -1,44 +1,44 @@ ! RUN: %python %S/test_symbols.py %s %flang_fc1 ! Forward references to derived types (non-error cases) -!DEF: /main MainProgram -program main - !DEF: /main/t1 DerivedType +!DEF: /MAIN MainProgram +program MAIN + !DEF: /MAIN/t1 DerivedType type :: t1 - !DEF: /main/t2 DerivedType - !DEF: /main/t1/t1a ALLOCATABLE ObjectEntity TYPE(t2) + !DEF: /MAIN/t2 DerivedType + !DEF: /MAIN/t1/t1a ALLOCATABLE ObjectEntity TYPE(t2) type(t2), allocatable :: t1a - !REF: /main/t2 - !DEF: /main/t1/t1p POINTER ObjectEntity TYPE(t2) + !REF: /MAIN/t2 + !DEF: /MAIN/t1/t1p POINTER ObjectEntity TYPE(t2) type(t2), pointer :: t1p end type - !REF: /main/t2 + !REF: /MAIN/t2 type :: t2 - !REF: /main/t2 - !DEF: /main/t2/t2a ALLOCATABLE ObjectEntity TYPE(t2) + !REF: /MAIN/t2 + !DEF: /MAIN/t2/t2a ALLOCATABLE ObjectEntity TYPE(t2) type(t2), allocatable :: t2a - !REF: /main/t2 - !DEF: /main/t2/t2p POINTER ObjectEntity TYPE(t2) + !REF: /MAIN/t2 + !DEF: /MAIN/t2/t2p POINTER ObjectEntity TYPE(t2) type(t2), pointer :: t2p end type - !REF: /main/t1 - !DEF: /main/t1x TARGET ObjectEntity TYPE(t1) + !REF: /MAIN/t1 + !DEF: /MAIN/t1x TARGET ObjectEntity TYPE(t1) type(t1), target :: t1x - !REF: /main/t1x - !REF: /main/t1/t1a + !REF: /MAIN/t1x + !REF: /MAIN/t1/t1a allocate(t1x%t1a) - !REF: /main/t1x - !REF: /main/t1/t1p - !REF: /main/t1/t1a + !REF: /MAIN/t1x + !REF: /MAIN/t1/t1p + !REF: /MAIN/t1/t1a t1x%t1p => t1x%t1a - !REF: /main/t1x - !REF: /main/t1/t1a - !REF: /main/t2/t2a + !REF: /MAIN/t1x + !REF: /MAIN/t1/t1a + !REF: /MAIN/t2/t2a allocate(t1x%t1a%t2a) - !REF: /main/t1x - !REF: /main/t1/t1a - !REF: /main/t2/t2p - !REF: /main/t2/t2a + !REF: /MAIN/t1x + !REF: /MAIN/t1/t1a + !REF: /MAIN/t2/t2p + !REF: /MAIN/t2/t2a t1x%t1a%t2p => t1x%t1a%t2a end program !DEF: /f1/fwd DerivedType diff --git a/flang/test/Semantics/symbol18.f90 b/flang/test/Semantics/symbol18.f90 index a37792b..6e41bb5 100644 --- a/flang/test/Semantics/symbol18.f90 +++ b/flang/test/Semantics/symbol18.f90 @@ -2,21 +2,21 @@ ! Intrinsic function in type declaration statement: type is ignored -!DEF: /p1 MainProgram -program p1 - !DEF: /p1/cos ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity INTEGER(4) +!DEF: /P1 MainProgram +program P1 + !DEF: /P1/cos ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity INTEGER(4) integer cos - !DEF: /p1/y (Implicit) ObjectEntity REAL(4) - !REF: /p1/cos - !DEF: /p1/x (Implicit) ObjectEntity REAL(4) + !DEF: /P1/y (Implicit) ObjectEntity REAL(4) + !REF: /P1/cos + !DEF: /P1/x (Implicit) ObjectEntity REAL(4) y = cos(x) - !REF: /p1/y - !DEF: /p1/sin ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity - !REF: /p1/x + !REF: /P1/y + !DEF: /P1/sin ELEMENTAL, INTRINSIC, PURE (Function) ProcEntity + !REF: /P1/x y = sin(x) - !REF: /p1/y + !REF: /P1/y !DEF: /f EXTERNAL (Function, Implicit) ProcEntity REAL(4) - !REF: /p1/x + !REF: /P1/x y = f(x) end program diff --git a/flang/test/Semantics/symbol20.f90 b/flang/test/Semantics/symbol20.f90 index 8c82776..bf3aff4 100644 --- a/flang/test/Semantics/symbol20.f90 +++ b/flang/test/Semantics/symbol20.f90 @@ -32,16 +32,16 @@ contains print *, "in bar" end subroutine end module -!DEF: /demo MainProgram -program demo +!DEF: /DEMO MainProgram +program DEMO !REF: /m use :: m - !DEF: /demo/bar (Subroutine) Use - !DEF: /demo/p EXTERNAL, POINTER (Subroutine) ProcEntity + !DEF: /DEMO/bar (Subroutine) Use + !DEF: /DEMO/p EXTERNAL, POINTER (Subroutine) ProcEntity procedure(bar), pointer :: p - !REF: /demo/p - !DEF: /demo/foo (Function) Use + !REF: /DEMO/p + !DEF: /DEMO/foo (Function) Use p => foo() - !REF: /demo/p + !REF: /DEMO/p call p end program diff --git a/flang/test/Semantics/symbol25.f90 b/flang/test/Semantics/symbol25.f90 index ac3dd37..ac47a19 100644 --- a/flang/test/Semantics/symbol25.f90 +++ b/flang/test/Semantics/symbol25.f90 @@ -38,23 +38,23 @@ contains end subroutine inner1 end subroutine outer end module m -!DEF: /main MainProgram -program main +!DEF: /MAIN MainProgram +program MAIN !REF: /m use :: m !REF: /m/specific1 call generic - !DEF: /main/inner2 (Subroutine) Subprogram + !DEF: /MAIN/inner2 (Subroutine) Subprogram call inner2 contains - !REF: /main/inner2 + !REF: /MAIN/inner2 subroutine inner2 - !DEF: /main/inner2/generic (Subroutine) Generic + !DEF: /MAIN/inner2/generic (Subroutine) Generic interface generic - !DEF: /main/specific2 (Subroutine) Use + !DEF: /MAIN/specific2 (Subroutine) Use module procedure :: specific2 end interface - !REF: /main/specific2 + !REF: /MAIN/specific2 call generic end subroutine inner2 end program diff --git a/flang/test/Semantics/symbol26.f90 b/flang/test/Semantics/symbol26.f90 index f5e9585..dded4b6 100644 --- a/flang/test/Semantics/symbol26.f90 +++ b/flang/test/Semantics/symbol26.f90 @@ -8,16 +8,16 @@ module m !DEF: /m/j PUBLIC (Implicit, InNamelist) ObjectEntity INTEGER(4) namelist/a/j end module m -!DEF: /main MainProgram -program main - !DEF: /main/j (Implicit) ObjectEntity INTEGER(4) +!DEF: /MAIN MainProgram +program MAIN + !DEF: /MAIN/j (Implicit) ObjectEntity INTEGER(4) j = 1 contains - !DEF: /main/inner (Subroutine) Subprogram + !DEF: /MAIN/inner (Subroutine) Subprogram subroutine inner !REF: /m use :: m - !DEF: /main/inner/j (Implicit, InNamelist) Use INTEGER(4) + !DEF: /MAIN/inner/j (Implicit, InNamelist) Use INTEGER(4) j = 2 end subroutine end program diff --git a/flang/test/Transforms/DoConcurrent/basic_host.f90 b/flang/test/Transforms/DoConcurrent/basic_host.f90 index 12f6303..6f24b34 100644 --- a/flang/test/Transforms/DoConcurrent/basic_host.f90 +++ b/flang/test/Transforms/DoConcurrent/basic_host.f90 @@ -5,7 +5,7 @@ ! RUN: bbc -emit-hlfir -fopenmp -fdo-concurrent-to-openmp=host %s -o - \ ! RUN: | FileCheck %s -! CHECK-LABEL: do_concurrent_basic +! CHECK-LABEL: DO_CONCURRENT_BASIC program do_concurrent_basic ! CHECK: %[[ARR:.*]]:2 = hlfir.declare %{{.*}}(%{{.*}}) {uniq_name = "_QFEa"} : (!fir.ref<!fir.array<10xi32>>, !fir.shape<1>) -> (!fir.ref<!fir.array<10xi32>>, !fir.ref<!fir.array<10xi32>>) |