[PATCH] D140959: RFC: Multilib prototype

Michael Platings via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 5 06:55:09 PST 2023


michaelplatings added inline comments.


================
Comment at: clang/include/clang/Driver/Multilib2.h:33-34
+private:
+  std::vector<std::tuple<std::string, std::vector<std::string>, std::vector<std::string>>> Multilibs;
+  std::vector<std::tuple<std::string, std::vector<std::string>, std::vector<std::string>>> RegexAttributes;
+};
----------------
phosek wrote:
> I think it'd really help readability and comprehension if this was modeled using types (that is `struct`s and `class`es). It's not at all clear what these strings are supposed to represent, and seeing expressions like `std::get<0>` doesn't help either.
I fully agree. Sorry if I wasn't clear in the RFC but this is the kind of thing I meant when I said the code is not intended to be production quality.


================
Comment at: clang/test/Driver/Inputs/baremetal_multilib/arm-none-eabi/multilib.yaml:24
+- path: thumb/v6-m/nofp
+  args: [--target=arm-none-eabi, -mfloat-abi=soft, -march=armv6m]
+  attrs: [thumb, soft, v6m]
----------------
phosek wrote:
> I understand how the second section is used to match arguments passed to `clang -cc1` and turn those into attributes which are then used to find the right variant, but I don't understand what this list of arguments is used for?
Having these here permits `clang -print-multi-lib` to work, which would print out something like this:
```
thumb/nofp;@mthumb at mfloat-abi=soft
thumb/v7/nofp;@mthumb at march=armv7 at mfloat-abi=soft
...
```


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140959/new/

https://reviews.llvm.org/D140959



More information about the cfe-commits mailing list