92
92
using namespace llvm ;
93
93
using namespace object ;
94
94
95
+ namespace {
95
96
cl::opt<bool > Disassemble (
96
97
" disassemble" ,
97
98
cl::desc (" Display assembler mnemonics for the machine instructions" ));
@@ -136,19 +137,6 @@ cl::opt<bool> SymbolTable("syms", cl::desc("Display the symbol table"));
136
137
static cl::alias SymbolTableShort (" t" , cl::desc(" Alias for --syms" ),
137
138
cl::NotHidden, cl::aliasopt(SymbolTable));
138
139
139
- cl::opt<bool > ExportsTrie (" exports-trie" ,
140
- cl::desc (" Display mach-o exported symbols" ));
141
-
142
- cl::opt<bool > Rebase (" rebase" , cl::desc(" Display mach-o rebasing info" ));
143
-
144
- cl::opt<bool > Bind (" bind" , cl::desc(" Display mach-o binding info" ));
145
-
146
- cl::opt<bool > LazyBind (" lazy-bind" ,
147
- cl::desc (" Display mach-o lazy binding info" ));
148
-
149
- cl::opt<bool > WeakBind (" weak-bind" ,
150
- cl::desc (" Display mach-o weak binding info" ));
151
-
152
140
cl::opt<bool > RawClangAST (
153
141
" raw-clang-ast" ,
154
142
cl::desc (" Dump the raw binary contents of the clang AST section" ));
@@ -192,11 +180,6 @@ cl::opt<bool> NoShowRawInsn("no-show-raw-insn",
192
180
cl::opt<bool > NoLeadingAddr (" no-leading-addr" ,
193
181
cl::desc (" Print no leading address" ));
194
182
195
- cl::opt<bool > UnwindInfo (" unwind-info" , cl::desc(" Display unwind information" ));
196
-
197
- static cl::alias UnwindInfoShort (" u" , cl::desc(" Alias for --unwind-info" ),
198
- cl::aliasopt(UnwindInfo));
199
-
200
183
cl::opt<bool > PrivateHeaders (" private-headers" ,
201
184
cl::desc (" Display format specific file headers" ));
202
185
@@ -256,7 +239,6 @@ cl::opt<unsigned long long> StopAddress("stop-address",
256
239
cl::init(UINT64_MAX));
257
240
static StringRef ToolName = " DisassemblerAction" ;
258
241
259
- namespace {
260
242
typedef std::function<bool (llvm::object::SectionRef const &)> FilterPredicate;
261
243
262
244
class SectionFilterIterator {
@@ -322,7 +304,6 @@ SectionFilter toolSectionFilter(llvm::object::ObjectFile const &O) {
322
304
},
323
305
O);
324
306
}
325
- } // namespace
326
307
327
308
static void error (std::error_code EC) {
328
309
if (!EC) {
@@ -449,7 +430,6 @@ static bool relocAddressLess(RelocationRef A, RelocationRef B) {
449
430
return A.getOffset () < B.getOffset ();
450
431
}
451
432
452
- namespace {
453
433
class SourcePrinter {
454
434
protected:
455
435
DILineInfo OldLineInfo;
@@ -722,7 +702,6 @@ PrettyPrinter &selectPrettyPrinter(Triple const &Triple) {
722
702
return BPFPrettyPrinterInst;
723
703
}
724
704
}
725
- } // namespace
726
705
727
706
template <class ELFT >
728
707
static std::error_code getRelocationValueString (const ELFObjectFile<ELFT> *Obj,
@@ -1259,8 +1238,9 @@ addDynamicElfSymbols(const ObjectFile *Obj,
1259
1238
llvm_unreachable (" Unsupported binary format" );
1260
1239
}
1261
1240
}
1241
+ } // end anonymous namespace
1262
1242
1263
- void llvm ::DisassemHelper::DisassembleObject (const ObjectFile *Obj,
1243
+ void COMGR ::DisassemHelper::DisassembleObject (const ObjectFile *Obj,
1264
1244
bool InlineRelocs) {
1265
1245
if (StartAddress > StopAddress) {
1266
1246
error (" Start address should be less than stop address" );
@@ -1812,7 +1792,7 @@ void llvm::DisassemHelper::DisassembleObject(const ObjectFile *Obj,
1812
1792
}
1813
1793
}
1814
1794
1815
- void llvm ::DisassemHelper::PrintRelocations (const ObjectFile *Obj) {
1795
+ void COMGR ::DisassemHelper::PrintRelocations (const ObjectFile *Obj) {
1816
1796
StringRef Fmt = Obj->getBytesInAddress () > 4 ? " %016" PRIx64 : " %08" PRIx64;
1817
1797
// Regular objdump doesn't print relocations in non-relocatable object
1818
1798
// files.
@@ -1843,7 +1823,7 @@ void llvm::DisassemHelper::PrintRelocations(const ObjectFile *Obj) {
1843
1823
}
1844
1824
}
1845
1825
1846
- void llvm ::DisassemHelper::PrintSectionHeaders (const ObjectFile *Obj) {
1826
+ void COMGR ::DisassemHelper::PrintSectionHeaders (const ObjectFile *Obj) {
1847
1827
OutS << " Sections:\n "
1848
1828
" Idx Name Size Address Type\n " ;
1849
1829
unsigned I = 0 ;
@@ -1862,7 +1842,7 @@ void llvm::DisassemHelper::PrintSectionHeaders(const ObjectFile *Obj) {
1862
1842
}
1863
1843
}
1864
1844
1865
- void llvm ::DisassemHelper::PrintSectionContents (const ObjectFile *Obj) {
1845
+ void COMGR ::DisassemHelper::PrintSectionContents (const ObjectFile *Obj) {
1866
1846
std::error_code EC;
1867
1847
for (const SectionRef &Section : toolSectionFilter (*Obj)) {
1868
1848
StringRef Contents;
@@ -1918,17 +1898,11 @@ void llvm::DisassemHelper::PrintSectionContents(const ObjectFile *Obj) {
1918
1898
}
1919
1899
}
1920
1900
1921
- void llvm ::DisassemHelper::PrintSymbolTable (const ObjectFile *O,
1901
+ void COMGR ::DisassemHelper::PrintSymbolTable (const ObjectFile *O,
1922
1902
StringRef ArchiveName,
1923
1903
StringRef ArchitectureName) {
1924
1904
OutS << " SYMBOL TABLE:\n " ;
1925
1905
1926
- #ifdef NOT_LIBCOMGR
1927
- if (const COFFObjectFile *coff = dyn_cast<const COFFObjectFile>(o)) {
1928
- printCOFFSymbolTable (coff);
1929
- return ;
1930
- }
1931
- #endif
1932
1906
for (const SymbolRef &Symbol : O->symbols ()) {
1933
1907
Expected<uint64_t > AddressOrError = Symbol.getAddress ();
1934
1908
if (!AddressOrError) {
@@ -2034,103 +2008,9 @@ void llvm::DisassemHelper::PrintSymbolTable(const ObjectFile *O,
2034
2008
}
2035
2009
}
2036
2010
2037
- void llvm::DisassemHelper::PrintUnwindInfo (const ObjectFile *O) {
2038
- OutS << " Unwind info:\n\n " ;
2039
-
2040
- #ifdef NOT_LIBCOMGR
2041
- if (const COFFObjectFile *coff = dyn_cast<COFFObjectFile>(o)) {
2042
- printCOFFUnwindInfo (coff);
2043
- } else if (const MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(o))
2044
- printMachOUnwindInfo (MachO);
2045
- else {
2046
- #endif
2047
- // TODO: Extract DWARF dump tool to objdump.
2048
- ErrS << " This operation is only currently supported "
2049
- " for COFF and MachO object files.\n " ;
2050
- return ;
2051
- #ifdef NOT_LIBCOMGR
2052
- }
2053
- #endif
2054
- }
2055
-
2056
- void llvm::DisassemHelper::printExportsTrie (const ObjectFile *O) {
2057
- OutS << " Exports trie:\n " ;
2058
- #ifdef NOT_LIBCOMGR
2059
- if (const MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(o))
2060
- printMachOExportsTrie (MachO);
2061
- else {
2062
- #endif
2063
- ErrS << " This operation is only currently supported "
2064
- " for Mach-O executable files.\n " ;
2065
- return ;
2066
- #ifdef NOT_LIBCOMGR
2067
- }
2068
- #endif
2069
- }
2070
-
2071
- void llvm::DisassemHelper::printRebaseTable (ObjectFile *O) {
2072
- OutS << " Rebase table:\n " ;
2073
- #ifdef NOT_LIBCOMGR
2074
- if (MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(o))
2075
- printMachORebaseTable (MachO);
2076
- else {
2077
- #endif
2078
- ErrS << " This operation is only currently supported "
2079
- " for Mach-O executable files.\n " ;
2080
- return ;
2081
- #ifdef NOT_LIBCOMGR
2082
- }
2083
- #endif
2084
- }
2085
-
2086
- void llvm::DisassemHelper::printBindTable (ObjectFile *O) {
2087
- OutS << " Bind table:\n " ;
2088
- #ifdef NOT_LIBCOMGR
2089
- if (MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(o))
2090
- printMachOBindTable (MachO);
2091
- else {
2092
- #endif
2093
- ErrS << " This operation is only currently supported "
2094
- " for Mach-O executable files.\n " ;
2095
- return ;
2096
- #ifdef NOT_LIBCOMGR
2097
- }
2098
- #endif
2099
- }
2100
-
2101
- void llvm::DisassemHelper::printLazyBindTable (ObjectFile *O) {
2102
- OutS << " Lazy bind table:\n " ;
2103
- #ifdef NOT_LIBCOMGR
2104
- if (MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(o))
2105
- printMachOLazyBindTable (MachO);
2106
- else {
2107
- #endif
2108
- ErrS << " This operation is only currently supported "
2109
- " for Mach-O executable files.\n " ;
2110
- return ;
2111
- #ifdef NOT_LIBCOMGR
2112
- }
2113
- #endif
2114
- }
2115
-
2116
- void llvm::DisassemHelper::printWeakBindTable (ObjectFile *O) {
2117
- OutS << " Weak bind table:\n " ;
2118
- #ifdef NOT_LIBCOMGR
2119
- if (MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(o))
2120
- printMachOWeakBindTable (MachO);
2121
- else {
2122
- #endif
2123
- ErrS << " This operation is only currently supported "
2124
- " for Mach-O executable files.\n " ;
2125
- return ;
2126
- #ifdef NOT_LIBCOMGR
2127
- }
2128
- #endif
2129
- }
2130
-
2131
2011
// / Dump the raw contents of the __clangast section so the output can be piped
2132
2012
// / into llvm-bcanalyzer.
2133
- void llvm ::DisassemHelper::printRawClangAST (const ObjectFile *Obj) {
2013
+ void COMGR ::DisassemHelper::printRawClangAST (const ObjectFile *Obj) {
2134
2014
if (OutS.is_displayed ()) {
2135
2015
ErrS << " The -raw-clang-ast option will dump the raw binary contents of "
2136
2016
" the clang ast section.\n "
@@ -2174,7 +2054,7 @@ void llvm::DisassemHelper::printRawClangAST(const ObjectFile *Obj) {
2174
2054
OutS.write (ClangASTContents.data (), ClangASTContents.size ());
2175
2055
}
2176
2056
2177
- void llvm ::DisassemHelper::printFaultMaps (const ObjectFile *Obj) {
2057
+ void COMGR ::DisassemHelper::printFaultMaps (const ObjectFile *Obj) {
2178
2058
const char *FaultMapSectionName = nullptr ;
2179
2059
2180
2060
if (isa<ELFObjectFileBase>(Obj)) {
@@ -2225,27 +2105,15 @@ void llvm::DisassemHelper::printFaultMaps(const ObjectFile *Obj) {
2225
2105
OutS << FMP;
2226
2106
}
2227
2107
2228
- void llvm ::DisassemHelper::printPrivateFileHeaders (const ObjectFile *O,
2108
+ void COMGR ::DisassemHelper::printPrivateFileHeaders (const ObjectFile *O,
2229
2109
bool OnlyFirst) {
2230
2110
if (O->isELF ()) {
2231
2111
return printELFFileHeader (O);
2232
2112
}
2233
- #ifdef NOT_LIBCOMGR
2234
- if (o->isCOFF ())
2235
- return printCOFFFileHeader (o);
2236
- if (o->isWasm ())
2237
- return printWasmFileHeader (o);
2238
- if (o->isMachO ()) {
2239
- printMachOFileHeader (o);
2240
- if (!onlyFirst)
2241
- printMachOLoadCommands (o);
2242
- return ;
2243
- }
2244
- #endif
2245
2113
reportError (O->getFileName (), " Invalid/Unsupported object file format" );
2246
2114
}
2247
2115
2248
- void llvm ::DisassemHelper::DumpObject (ObjectFile *O,
2116
+ void COMGR ::DisassemHelper::DumpObject (ObjectFile *O,
2249
2117
const Archive *A = nullptr ) {
2250
2118
StringRef ArchiveName = A != nullptr ? A->getFileName () : " " ;
2251
2119
// Avoid other output when using a raw option.
@@ -2274,27 +2142,9 @@ void llvm::DisassemHelper::DumpObject(ObjectFile *O,
2274
2142
if (SymbolTable) {
2275
2143
PrintSymbolTable (O, ArchiveName);
2276
2144
}
2277
- if (UnwindInfo) {
2278
- PrintUnwindInfo (O);
2279
- }
2280
2145
if (PrivateHeaders || FirstPrivateHeader) {
2281
2146
printPrivateFileHeaders (O, FirstPrivateHeader);
2282
2147
}
2283
- if (ExportsTrie) {
2284
- printExportsTrie (O);
2285
- }
2286
- if (Rebase) {
2287
- printRebaseTable (O);
2288
- }
2289
- if (Bind) {
2290
- printBindTable (O);
2291
- }
2292
- if (LazyBind) {
2293
- printLazyBindTable (O);
2294
- }
2295
- if (WeakBind) {
2296
- printWeakBindTable (O);
2297
- }
2298
2148
if (RawClangAST) {
2299
2149
printRawClangAST (O);
2300
2150
}
@@ -2310,25 +2160,9 @@ void llvm::DisassemHelper::DumpObject(ObjectFile *O,
2310
2160
}
2311
2161
}
2312
2162
2313
- #ifdef NOT_LIBCOMGR
2314
- void llvm::DisassemHelper::DumpObject (const COFFImportFile *I,
2315
- const Archive *A) {
2316
- StringRef ArchiveName = A ? A->getFileName () : " " ;
2317
-
2318
- // Avoid other output when using a raw option.
2319
- if (!RawClangAST)
2320
- OutS << ' \n '
2321
- << ArchiveName << " (" << I->getFileName () << " )"
2322
- << " :\t file format COFF-import-file"
2323
- << " \n\n " ;
2324
-
2325
- if (SymbolTable)
2326
- printCOFFSymbolTable (I);
2327
- }
2328
- #endif
2329
2163
2330
2164
// / @brief Dump each object file in \a a;
2331
- void llvm ::DisassemHelper::DumpArchive (const Archive *A) {
2165
+ void COMGR ::DisassemHelper::DumpArchive (const Archive *A) {
2332
2166
Error Err = Error::success ();
2333
2167
for (auto &C : A->children (Err)) {
2334
2168
Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary ();
@@ -2340,10 +2174,6 @@ void llvm::DisassemHelper::DumpArchive(const Archive *A) {
2340
2174
}
2341
2175
if (ObjectFile *O = dyn_cast<ObjectFile>(&*ChildOrErr.get ())) {
2342
2176
DumpObject (O, A);
2343
- #ifdef NOT_LIBCOMGR
2344
- else if (COFFImportFile *I = dyn_cast<COFFImportFile>(&*ChildOrErr.get ()))
2345
- DumpObject (I, a);
2346
- #endif
2347
2177
} else {
2348
2178
reportError (A->getFileName (), object_error::invalid_file_type);
2349
2179
}
@@ -2354,7 +2184,7 @@ void llvm::DisassemHelper::DumpArchive(const Archive *A) {
2354
2184
}
2355
2185
2356
2186
// / @brief Open file and figure out how to dump it.
2357
- void llvm ::DisassemHelper::DumpInput (StringRef File) {
2187
+ void COMGR ::DisassemHelper::DumpInput (StringRef File) {
2358
2188
2359
2189
// Attempt to open the binary.
2360
2190
Expected<OwningBinary<Binary>> BinaryOrErr = createBinary (File);
@@ -2385,7 +2215,7 @@ void llvm::DisassemHelper::DumpInput(StringRef File) {
2385
2215
// DisassemHelper.
2386
2216
// ------------------------------------------------------------------------------------
2387
2217
amd_comgr_status_t
2388
- llvm ::DisassemHelper::disassembleAction (StringRef Input,
2218
+ COMGR ::DisassemHelper::disassembleAction (StringRef Input,
2389
2219
ArrayRef<std::string> Options) {
2390
2220
// Register the target printer for --version.
2391
2221
cl::AddExtraVersionPrinter (TargetRegistry::printRegisteredTargetsForVersion);
0 commit comments