[flang-commits] [flang] [FLANG] Solved an issue with continuation lines (PR #146027)

via flang-commits flang-commits at lists.llvm.org
Thu Jun 26 21:49:32 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-flang-parser

Author: Ebin-McW (EbinJose2002)

<details>
<summary>Changes</summary>

Solved the issue with c style comment appearing between continuation lines
Wrote a test file for it.
Fixes #<!-- -->129455

---
Full diff: https://github.com/llvm/llvm-project/pull/146027.diff


2 Files Affected:

- (modified) flang/lib/Parser/prescan.cpp (+4) 
- (added) flang/test/Parser/continuation-after-comment.f90 (+15) 


``````````diff
diff --git a/flang/lib/Parser/prescan.cpp b/flang/lib/Parser/prescan.cpp
index 9aef0c9981e3c..5c92974e3ebf2 100644
--- a/flang/lib/Parser/prescan.cpp
+++ b/flang/lib/Parser/prescan.cpp
@@ -1455,6 +1455,10 @@ const char *Prescanner::FreeFormContinuationLine(bool ampersand) {
       return nullptr;
     }
   }
+  if (p[0] == '/' && p[1] == '*') {
+    p = SkipCComment(p);
+    p = SkipWhiteSpaceIncludingEmptyMacros(p);
+  }
   if (p[0] == '!' && p[1] == '$' && !preprocessingOnly_ &&
       features_.IsEnabled(LanguageFeature::OpenMP)) {
     // !$ conditional line can be a continuation
diff --git a/flang/test/Parser/continuation-after-comment.f90 b/flang/test/Parser/continuation-after-comment.f90
new file mode 100644
index 0000000000000..845aa8bc36e5c
--- /dev/null
+++ b/flang/test/Parser/continuation-after-comment.f90
@@ -0,0 +1,15 @@
+! RUN: %flang_fc1 -E %s 2>&1 | FileCheck %s
+
+!Checking comments appearing in between continuation lines.
+integer &
+i(1)
+/* \\\*/
+!CHECK: integer i(1)
+i(1)&
+/* \\\*/
+=1
+!CHECK: i(1) =1
+/* \*/
+if (i(1)/=1)write(6,*)'error',i(1)
+print *,'pass'
+end

``````````

</details>


https://github.com/llvm/llvm-project/pull/146027


More information about the flang-commits mailing list