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

Reply via email to