diff --git a/flang/lib/Frontend/FrontendActions.cpp b/flang/lib/Frontend/FrontendActions.cpp --- a/flang/lib/Frontend/FrontendActions.cpp +++ b/flang/lib/Frontend/FrontendActions.cpp @@ -94,6 +94,9 @@ return; } + // Report the diagnostics from parsing + ci.parsing().messages().Emit(llvm::errs(), ci.allCookedSources()); + auto &parseTree{*ci.parsing().parseTree()}; // Prepare semantics diff --git a/flang/test/Frontend/preprocessor-diag.f90 b/flang/test/Frontend/preprocessor-diag.f90 deleted file mode 100644 --- a/flang/test/Frontend/preprocessor-diag.f90 +++ /dev/null @@ -1,11 +0,0 @@ -! RUN: %f18 -E -I %S/Inputs/ %s 2>&1 | FileCheck %s -! RUN: %flang-new -E -I %S/Inputs/ %s 2>&1 | FileCheck %s -! RUN: %flang-new -fc1 -E -I %S/Inputs/ %s 2>&1 | FileCheck %s - -! Test that the driver correctly reports diagnostics from the prescanner. The contents of the include file are irrelevant here. - -! CHECK: preprocessor-diag.f90:8:20: #include: extra stuff ignored after file name -#include comment -! CHECK: preprocessor-diag.f90:10:20: #include: extra stuff ignored after file name -#include "empty.h" comment -end diff --git a/flang/test/Frontend/prescanner-diag.f90 b/flang/test/Frontend/prescanner-diag.f90 new file mode 100644 --- /dev/null +++ b/flang/test/Frontend/prescanner-diag.f90 @@ -0,0 +1,17 @@ +! Test that the driver correctly reports diagnostics from the prescanner. The contents of the include file are irrelevant here. + +! Test with -E (i.e. PrintPreprocessedAction, stops after prescanning) +! RUN: %f18 -E -I %S/Inputs/ %s 2>&1 | FileCheck %s +! RUN: %flang-new -E -I %S/Inputs/ %s 2>&1 | FileCheck %s +! RUN: %flang-new -fc1 -E -I %S/Inputs/ %s 2>&1 | FileCheck %s + +! Test with -fsyntax-only (i.e. ParseSyntaxOnlyAction, stops after semantic checks) +! RUN: %f18 -fparse-only -I %S/Inputs/ %s 2>&1 | FileCheck %s +! RUN: %flang-new -fsyntax-only -I %S/Inputs/ %s 2>&1 | FileCheck %s +! RUN: %flang-new -fc1 -fsyntax-only -I %S/Inputs/ %s 2>&1 | FileCheck %s + +! CHECK: prescanner-diag.f90:14:20: #include: extra stuff ignored after file name +#include comment +! CHECK: prescanner-diag.f90:16:20: #include: extra stuff ignored after file name +#include "empty.h" comment +end