[flang-commits] [flang] [Flang][OpenMP] Fix comments that should not be Sentinels on fixed format. (PR #68911)

via flang-commits flang-commits at lists.llvm.org
Fri Oct 13 06:03:35 PDT 2023


https://github.com/Z572 updated https://github.com/llvm/llvm-project/pull/68911

>From 995b574a6f19b3bf5e39c863426a9151843cc0ab Mon Sep 17 00:00:00 2001
From: Zheng Junjie <zhengjunjie at iscas.ac.cn>
Date: Fri, 13 Oct 2023 14:37:54 +0800
Subject: [PATCH] [Flang][OpenMP] Fix comments that should not be Sentinels on
 fixed format.

---
 flang/lib/Parser/prescan.cpp         |  2 ++
 flang/test/Parser/OpenMP/sentinels.f | 42 ++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+)
 create mode 100644 flang/test/Parser/OpenMP/sentinels.f

diff --git a/flang/lib/Parser/prescan.cpp b/flang/lib/Parser/prescan.cpp
index 2f25b02bf7a323d..690e25d84318e06 100644
--- a/flang/lib/Parser/prescan.cpp
+++ b/flang/lib/Parser/prescan.cpp
@@ -1186,6 +1186,8 @@ Prescanner::IsFixedFormCompilerDirectiveLine(const char *start) const {
         break;
       }
       *sp++ = ToLowerCaseLetter(*p);
+    } else {
+      break;
     }
   }
   if (column == 6) {
diff --git a/flang/test/Parser/OpenMP/sentinels.f b/flang/test/Parser/OpenMP/sentinels.f
new file mode 100644
index 000000000000000..98d4bad19f6a274
--- /dev/null
+++ b/flang/test/Parser/OpenMP/sentinels.f
@@ -0,0 +1,42 @@
+! RUN: %flang_fc1 -fopenmp -E %s | FileCheck %s
+! CHECK:      program main
+! CHECK:       interface
+! CHECK:        subroutine sub(a, b)
+! CHECK:!dir$ ignore_tkr a
+! CHECK:!dir$ ignore_tkr b
+! CHECK:          real(4):: a, b
+! CHECK:        end subroutine
+! CHECK:       end interface
+! CHECK:      PRINT *, "Is '    '"
+! CHECK:  123 PRINT *, "Is '123 '"
+
+!@cuf subroutine atcuf;
+      program main
+       interface
+        subroutine sub(a, b)
+!dir$ ignore_tkr a
+!dir$ ignore_tkr
+!dir$+ b
+          real(4):: a, b
+        end subroutine
+       end interface
+!
+!	comment line
+!@fp  PRINT *, "This is a comment line"
+!@f p PRINT *, "This is a comment line"
+!$    PRINT *, "Is '    '"
+!$123 PRINT *, "Is '123 '"
+!$ABC PRINT *, "Is 'ABC '"
+! $    PRINT *, "This is a comment line 6"
+c    $This is a comment line
+!0$110This is a comment line
+
+! $ This is a comment line
+! $  0This is a comment line
+!    &This is a comment line
+!  $  This is a comment line
+! $   This is a comment line
+C $   This is a comment line
+c $   his is a comment line
+* $   This is a comment line
+      end



More information about the flang-commits mailing list