diff --git a/flang/test/Semantics/typeinfo01.f90 b/flang/test/Semantics/typeinfo01.f90 --- a/flang/test/Semantics/typeinfo01.f90 +++ b/flang/test/Semantics/typeinfo01.f90 @@ -1,3 +1,4 @@ +!RUN: bbc --dump-symbols %s | FileCheck %s !RUN: %flang_fc1 -fdebug-dump-symbols %s | FileCheck %s ! Tests for derived type runtime descriptions diff --git a/flang/tools/bbc/bbc.cpp b/flang/tools/bbc/bbc.cpp --- a/flang/tools/bbc/bbc.cpp +++ b/flang/tools/bbc/bbc.cpp @@ -106,6 +106,10 @@ llvm::cl::desc("warnings are errors"), llvm::cl::init(false)); +static llvm::cl::opt dumpSymbols("dump-symbols", + llvm::cl::desc("dump the symbol table"), + llvm::cl::init(false)); + static llvm::cl::opt pftDumpTest( "pft-test", llvm::cl::desc("parse the input, create a PFT, dump it, and exit"), @@ -189,6 +193,11 @@ << "could not find module file for __fortran_type_info\n"; } + if (dumpSymbols) { + semantics.DumpSymbols(llvm::outs()); + return mlir::success(); + } + if (pftDumpTest) { if (auto ast = Fortran::lower::createPFT(parseTree, semanticsContext)) { Fortran::lower::dumpPFT(llvm::outs(), *ast);