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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits