forked from OSchip/llvm-project
[flang][driver] Fine-tune `-fdebug-dump-symbols`
When generating output for `-fdebug-dump-symbols`, make sure that BuildRuntimeDerivedTypeTables is also run. This change is needed in order to make the implementation of `-fdebug-dump-symbols` in `flang-new` consistent with `f18`. It also allows us to port more tests to use the new driver whenever it is enabled. Differential Revision: https://reviews.llvm.org/D100649
This commit is contained in:
parent
3c9bcf0e35
commit
499f1ed548
|
@ -50,7 +50,6 @@ bool PrescanAction::BeginSourceFileAction(CompilerInstance &c1) {
|
|||
std::string currentInputPath{GetCurrentFileOrBufferName()};
|
||||
Fortran::parser::Options parserOptions = ci.invocation().fortranOpts();
|
||||
|
||||
|
||||
// Prescan. In case of failure, report and return.
|
||||
ci.parsing().Prescan(currentInputPath, parserOptions);
|
||||
|
||||
|
@ -283,13 +282,27 @@ void DebugUnparseWithSymbolsAction::ExecuteAction() {
|
|||
}
|
||||
|
||||
void DebugDumpSymbolsAction::ExecuteAction() {
|
||||
CompilerInstance &ci = this->instance();
|
||||
auto &semantics = this->semantics();
|
||||
|
||||
auto tables{Fortran::semantics::BuildRuntimeDerivedTypeTables(
|
||||
instance().invocation().semanticsContext())};
|
||||
// The runtime derived type information table builder may find and report
|
||||
// semantic errors. So it is important that we report them _after_
|
||||
// BuildRuntimeDerivedTypeTables is run.
|
||||
reportFatalSemanticErrors(
|
||||
semantics, this->instance().diagnostics(), GetCurrentFileOrBufferName());
|
||||
|
||||
if (!tables.schemata) {
|
||||
unsigned DiagID =
|
||||
ci.diagnostics().getCustomDiagID(clang::DiagnosticsEngine::Error,
|
||||
"could not find module file for __fortran_type_info");
|
||||
ci.diagnostics().Report(DiagID);
|
||||
llvm::errs() << "\n";
|
||||
}
|
||||
|
||||
// Dump symbols
|
||||
semantics.DumpSymbols(llvm::outs());
|
||||
// Report fatal semantic errors
|
||||
reportFatalSemanticErrors(
|
||||
semantics, this->instance().diagnostics(), GetCurrentFileOrBufferName());
|
||||
}
|
||||
|
||||
void DebugDumpParseTreeNoSemaAction::ExecuteAction() {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
!RUN: %f18 -fdebug-dump-symbols %s | FileCheck %s
|
||||
!RUN: %flang_fc1 -fdebug-dump-symbols %s | FileCheck %s
|
||||
! Tests for derived type runtime descriptions
|
||||
|
||||
module m01
|
||||
|
|
Loading…
Reference in New Issue