atrosinenko marked 3 inline comments as done. atrosinenko added a comment. Thank you for the comments. Will send an update soon.
================ Comment at: clang/lib/Driver/ToolChains/MSP430.cpp:155 SmallString<128> Dir(computeSysRoot()); llvm::sys::path::append(Dir, "include"); addSystemInclude(DriverArgs, CC1Args, Dir.str()); ---------------- krisb wrote: > Seems the driver stops adding `msp430-elf/include` to the default include > search paths, instead it adds `$sysroot/include` (or > `$gcc-toolchain/include`). As I can see the latter isn't among the default > include paths used by TI gcc. > So, shouldn't we change here to `llvm::sys::path::append(Dir, "msp430-elf", > "include");` as well? Frankly speaking, I was more concerned with linker arguments autodiscovery. Adding `$sysroot/msp430-elf/include` definitely makes sense because that directory contains standard headers. ================ Comment at: clang/lib/Driver/ToolChains/MSP430.cpp:239 + ArgStringList &CmdArgs) { + if (!Args.hasArg(options::OPT_T)) { + if (Args.hasArg(options::OPT_msim)) { ---------------- krisb wrote: > What about an early exit here? Agree, this would make this code clearer. ================ Comment at: clang/test/Driver/msp430-toolchain.c:12 // RUN: %clang %s -### -no-canonical-prefixes -target msp430 --sysroot="" 2>&1 \ -// RUN: | FileCheck -check-prefix=CC1 %s -// CC1: clang{{.*}} "-cc1" "-triple" "msp430" +// RUN: | FileCheck -check-prefix=DEFAULT-NEG %s +// DEFAULT-POS: clang{{.*}} "-cc1" "-triple" "msp430" ---------------- krisb wrote: > How about using a single run line with just > `--check-prefixes=DEFAULT-POS,DEFAULT-NEG`? My goal was to ensure everything marked with `DEFAULT-POS` exists in the input stream. At the same time, none of patterns marked with `DEFAULT-NEG` should exist there. It would be great to check this in a single run (at least, there would be no chance to run the compiler process twice with slightly different arguments by mistake). From reading the [FileCheck documentation](https://llvm.org/docs/CommandGuide/FileCheck.html) it is not very clear the precise semantics of `--check-prefixes=A,B`. Experimenting with it shows it really behaves **not** in a way I need here. ```name=test.txt POS: A POS: B NEG-NOT: 1 NEG-NOT: 2 ``` `FileCheck test.txt --check-prefixes=POS,NEG` does fail for the following input: ``` A B 1 ``` as expected. On the other hand, the following is considered OK: ``` A 1 B ``` As I understand, when an option `--check-prefixes=POS,NEG` is given to `FileCheck`, it just recognizes both prefixes but it uses them in the same pass. What can really help here is `--implicit-check-not`. According to the same documentation, it does precisely what I need but requires specifying every forbidden pattern in the command line. Another possibility that I prefer would be to rewrite it like this: ``` // RUN: %clang %s -### -no-canonical-prefixes -target msp430 --sysroot="" > %t 2>&1 // RUN: FileCheck --check-prefix=DEFAULT-POS %s < %t // RUN: FileCheck --check-prefix=DEFAULT-NEG %s < %t ``` This would still be slightly too verbose but at least the compiler arguments are specified only once and just a single clang process is spawned. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D81676/new/ https://reviews.llvm.org/D81676 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits