[llvm] [llvm-objdump] Support --mcpu=help/--mattr=help without -d (PR #165661)
James Henderson via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 15 00:39:04 PST 2025
================
@@ -3533,6 +3533,51 @@ commaSeparatedValues(const llvm::opt::InputArgList &InputArgs, int ID) {
return Values;
}
+static void mcpuHelp() {
+ Triple TheTriple;
+
+ if (!TripleName.empty()) {
+ TheTriple.setTriple(TripleName);
+ } else {
+ assert(!InputFilenames.empty());
+ Expected<OwningBinary<Binary>> OBinary = createBinary(InputFilenames[0]);
+ if (Error E = OBinary.takeError()) {
+ reportError(InputFilenames[0], "triple was not specified and could not "
+ "be inferred from the input file: " +
+ toString(std::move(E)));
+ }
+
+ Binary *Bin = OBinary->getBinary();
+ if (ObjectFile *Obj = dyn_cast<ObjectFile>(Bin)) {
+ TheTriple = Obj->makeTriple();
+ } else if (Archive *A = dyn_cast<Archive>(Bin)) {
+ Error Err = Error::success();
+ for (auto &C : A->children(Err)) {
+ Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
+ if (!ChildOrErr)
+ // We don't report error because we don't disassemble it here.
+ continue;
+ if (ObjectFile *Obj = dyn_cast<ObjectFile>(&*ChildOrErr.get())) {
+ TheTriple = Obj->makeTriple();
+ break;
+ }
+ }
+ if (Err)
+ reportError(std::move(Err), A->getFileName());
----------------
jh7370 wrote:
Test case?
https://github.com/llvm/llvm-project/pull/165661
More information about the llvm-commits
mailing list