diff --git a/flang/lib/Parser/prescan.cpp b/flang/lib/Parser/prescan.cpp index 3bc2ea0b37508..9aef0c9981e3c 100644 --- a/flang/lib/Parser/prescan.cpp +++ b/flang/lib/Parser/prescan.cpp @@ -1473,7 +1473,7 @@ const char *Prescanner::FreeFormContinuationLine(bool ampersand) { GetProvenanceRange(p, p + 1), "Character literal continuation line should have been preceded by '&'"_port_en_US); } - } else if (p > lineStart) { + } else if (p > lineStart && IsSpaceOrTab(p - 1)) { --p; } else { insertASpace_ = true; diff --git a/flang/test/Preprocessing/bug890.F90 b/flang/test/Preprocessing/bug890.F90 new file mode 100644 index 0000000000000..0ce2d8c3f1569 --- /dev/null +++ b/flang/test/Preprocessing/bug890.F90 @@ -0,0 +1,6 @@ +! RUN: %flang -E %s 2>&1 | FileCheck %s +!CHECK: subroutine sub() +#define empty +subroutine sub ( & + empty) +end