[PATCH] D141569: [clang-tidy] Implement CppCoreGuideline F.18
Carlos Galvez via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 24 21:13:54 PST 2023
carlosgalvezp added inline comments.
================
Comment at: clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/rvalue-reference-param-not-moved.cpp:1
+// RUN: %check_clang_tidy -std=c++14-or-later %s cppcoreguidelines-rvalue-reference-param-not-moved %t -- -- -fno-delayed-template-parsing
+
----------------
ccotter wrote:
> carlosgalvezp wrote:
> > ccotter wrote:
> > > ccotter wrote:
> > > > carlosgalvezp wrote:
> > > > > You specified C++11 in the LangOpts, but test against C++14 or later in the test, maybe change it here to c++11-or-later?
> > > > The test uses generalize lambda capture, so it needs 14. Should I split the tests that use C++14 features to a separate file, and update this test file to use 11?
> > > Ah, and use of `auto` parameters in other lambdas. So there are a few tests that would need to be split out to a separate file, use an `ifdef __cplusplus` check (I see one other cppcoreguidelines test does this).
> > Oops I forgot to submit my comment. Yes I think we could keep everything in one test file running `c++11-or-later`, and `#ifdef` the C++14 parts.
> This didn't actually end up working. The test failed looking for expected CHECK-MESSAGES, e.g.,
>
> ```
> #if __cplusplus >= 201402L
> /* bad code */
> // CHECK-MESSAGES
> #endif
> ```
>
> I'll go the separate file route then?
Hmm right.
What about 2 `RUN` commands in the same file? One of them you run it for `c++11` and the other for `c++14-or-later`. You can add a `check-prefix` for the C++14 case, then use `CHECK-MESSAGES-SOMEPREFIX` such that it only applies to that test invocation. No need to duplicate `CHECK-MESSAGES` for both runs - if no prefix is specified, it will apply to all runs.
Something like:
```
#if __cplusplus >= 201402L
/* bad code */
// CHECK-MESSAGES-CXX14
#endif
```
If it gets too messy maybe a separate test file is the better option, I'm hoping there's not much duplication that needs to be maintaned.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141569/new/
https://reviews.llvm.org/D141569
More information about the cfe-commits
mailing list