[PATCH] D102812: [clang] Don't pass multiple backend options if mixing -mimplicit-it and -Wa,-mimplicit-it

Fangrui Song via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu May 20 10:40:47 PDT 2021


MaskRay added inline comments.


================
Comment at: clang/lib/Driver/ToolChains/Clang.cpp:2369
 
-static bool AddARMImplicitITArgs(const ArgList &Args, ArgStringList &CmdArgs,
+static bool CheckARMImplicitITArg(StringRef Value) {
+  return Value == "always" || Value == "never" || Value == "arm" ||
----------------
Use `functionName` for new functions.


================
Comment at: clang/test/Driver/arm-target-as-mimplicit-it.s:39
 // ALWAYS: "-mllvm" "-arm-implicit-it=always"
+// ALWAYS-NOT: "-arm-implicit-it={{.*}}"
 // NEVER: "-mllvm" "-arm-implicit-it=never"
----------------
mstorsjo wrote:
> DavidSpickett wrote:
> > mstorsjo wrote:
> > > This pattern wouldn't detct if there's e.g. `-arm-implicit-it=never -arm-implicit-it=always`, but I added test cases that pass `-Wa,-mimplicit-it=always` twice, where this check should be able to verify that we only output it once.
> > Could you do:
> > ```
> > // ALWAYS-NOT: "-mllvm" "-arm-implicit-it=never"
> > // ALWAYS: "-mllvm" "-arm-implicit-it=always"
> > ```
> > 
> > Not sure if doing the NOT moves the check forward to beyond where the always would be.
> Thanks, I think that could work to further guard against that case.
The NOT pattern can omit the value to catch more cases.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D102812



More information about the cfe-commits mailing list