nickdesaulniers added inline comments.
================ Comment at: lib/Driver/ToolChains/Gnu.cpp:543-549 +static const char* GetEndianArg(bool IsBigEndian, const ArgList &Args) { + if (Arg *A = Args.getLastArg(options::OPT_mlittle_endian, + options::OPT_mbig_endian)) { + IsBigEndian = !A->getOption().matches(options::OPT_mlittle_endian); + } + return (IsBigEndian) ? "-EB" : "-EL"; +} ---------------- If you passed `llvm::Triple` instead of `bool`, then I think you could do something like: ``` static const char* GetEndianArg(const llvm::Triple &triple, const ArgList &Args) { const bool IsBigEndian = triple == llvm::Triple::armeb || triple == llvm::Triple::thumbeb || triple == llvm::Triple::aarch64_be || Args.getLastArg(options::OPT_mlittle_endian, options::OPT_mbig_endian)->getOption().matches(options::OPT_mbig_endian); return IsBigEndian ? "-EB" : "-EL"; } ``` Might encapsulate the logic from the call sites better, but that's a minor nit. ================ Comment at: lib/Driver/ToolChains/Gnu.cpp:544-547 + if (Arg *A = Args.getLastArg(options::OPT_mlittle_endian, + options::OPT_mbig_endian)) { + IsBigEndian = !A->getOption().matches(options::OPT_mlittle_endian); + } ---------------- Just so I understand this check, even if we didn't have a BE triple, we set `IsBigEndian` if `-mlittle-endian` was not set? Is `-mlittle-endian` a default set flag, or does this set `"-EB"` even if no `-m*-endian` flag is specified (I think we want little-endian to be the default, and IIUC, this would change that)? https://reviews.llvm.org/D52784 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits