aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r--llvm/tools/llvm-readobj/llvm-readobj.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp
index e1ebbeb..06c6f7c 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.cpp
+++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp
@@ -162,6 +162,7 @@ static bool COFFTLSDirectory;
// XCOFF specific options.
static bool XCOFFAuxiliaryHeader;
+static bool XCOFFExceptionSection;
OutputStyleTy Output = OutputStyleTy::LLVM;
static std::vector<std::string> InputFilenames;
@@ -302,6 +303,7 @@ static void parseOptions(const opt::InputArgList &Args) {
// XCOFF specific options.
opts::XCOFFAuxiliaryHeader = Args.hasArg(OPT_auxiliary_header);
+ opts::XCOFFExceptionSection = Args.hasArg(OPT_exception_section);
opts::InputFilenames = Args.getAllArgValues(OPT_INPUT);
}
@@ -395,6 +397,8 @@ static void dumpObject(ObjectFile &Obj, ScopedPrinter &Writer,
if (opts::FileHeaders)
Dumper->printFileHeaders();
+ // Auxiliary header in XOCFF is right after the file header, so print the data
+ // here.
if (Obj.isXCOFF() && opts::XCOFFAuxiliaryHeader)
Dumper->printAuxiliaryHeader();
@@ -502,6 +506,10 @@ static void dumpObject(ObjectFile &Obj, ScopedPrinter &Writer,
if (opts::CGProfile)
Dumper->printCGProfile();
}
+
+ if (Obj.isXCOFF() && opts::XCOFFExceptionSection)
+ Dumper->printExceptionSection();
+
if (opts::PrintStackMap)
Dumper->printStackMap();
if (opts::PrintStackSizes)