[llvm] [llvm-objdump] Support --mcpu=help/--mattr=help without -d (PR #165661)
James Henderson via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 16 02:47:14 PST 2025
================
@@ -3533,6 +3533,57 @@ 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();
+ unsigned I = -1;
+ for (auto &C : A->children(Err)) {
+ ++I;
+ Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary();
+ if (!ChildOrErr) {
+ if (auto E = isNotObjectErrorInvalidFileType(ChildOrErr.takeError()))
+ reportError(std::move(E), getFileNameForError(C, I),
+ A->getFileName());
+ continue;
----------------
jh7370 wrote:
I'd prefer to have a "good" case that shows we fetch the triple from a later file, if we skip the earlier file following calling `isNotObjectErrorInvalidFileType`. If I follow the logic correctly, that would mean adding e.g. the minidump file first, then an object.
We can still use this case for the error case mentioned in my other comment, so that bits good.
https://github.com/llvm/llvm-project/pull/165661
More information about the llvm-commits
mailing list