forked from OSchip/llvm-project
[clang-tidy] Fix the order of ExtraArgsBefore
Added tests for the relative order of -extra-arg(-before) and ExtraArgs(Before). llvm-svn: 279516
This commit is contained in:
parent
a4092104cb
commit
42fd75ea86
|
@ -426,10 +426,14 @@ runClangTidy(std::unique_ptr<ClangTidyOptionsProvider> OptionsProvider,
|
||||||
ArgumentsAdjuster PerFileExtraArgumentsInserter =
|
ArgumentsAdjuster PerFileExtraArgumentsInserter =
|
||||||
[&Context](const CommandLineArguments &Args, StringRef Filename) {
|
[&Context](const CommandLineArguments &Args, StringRef Filename) {
|
||||||
ClangTidyOptions Opts = Context.getOptionsForFile(Filename);
|
ClangTidyOptions Opts = Context.getOptionsForFile(Filename);
|
||||||
CommandLineArguments AdjustedArgs;
|
CommandLineArguments AdjustedArgs = Args;
|
||||||
if (Opts.ExtraArgsBefore)
|
if (Opts.ExtraArgsBefore) {
|
||||||
AdjustedArgs = *Opts.ExtraArgsBefore;
|
auto I = AdjustedArgs.begin();
|
||||||
AdjustedArgs.insert(AdjustedArgs.begin(), Args.begin(), Args.end());
|
if (I != AdjustedArgs.end() && !StringRef(*I).startswith("-"))
|
||||||
|
++I; // Skip compiler binary name, if it is there.
|
||||||
|
AdjustedArgs.insert(I, Opts.ExtraArgsBefore->begin(),
|
||||||
|
Opts.ExtraArgsBefore->end());
|
||||||
|
}
|
||||||
if (Opts.ExtraArgs)
|
if (Opts.ExtraArgs)
|
||||||
AdjustedArgs.insert(AdjustedArgs.end(), Opts.ExtraArgs->begin(),
|
AdjustedArgs.insert(AdjustedArgs.end(), Opts.ExtraArgs->begin(),
|
||||||
Opts.ExtraArgs->end());
|
Opts.ExtraArgs->end());
|
||||||
|
|
|
@ -1,7 +1,22 @@
|
||||||
// RUN: clang-tidy -checks='-*,modernize-use-override,clang-diagnostic-shadow,clang-diagnostic-float-conversion' %s -- | count 0
|
// RUN: clang-tidy -checks='-*,modernize-use-override,clang-diagnostic-shadow,clang-diagnostic-float-conversion' %s -- | count 0
|
||||||
|
//
|
||||||
|
// Enable warnings using -config:
|
||||||
// RUN: clang-tidy -checks='-*,modernize-use-override,clang-diagnostic-shadow,clang-diagnostic-float-conversion' \
|
// RUN: clang-tidy -checks='-*,modernize-use-override,clang-diagnostic-shadow,clang-diagnostic-float-conversion' \
|
||||||
// RUN: -config='{ExtraArgs: ["-Wshadow","-Wno-unused-variable"], ExtraArgsBefore: ["-Wno-shadow","-Wfloat-conversion","-Wunused-variable"]}' %s -- \
|
// RUN: -config='{ExtraArgs: ["-Wshadow","-Wno-unused-variable"], ExtraArgsBefore: ["-Wno-shadow","-Wfloat-conversion","-Wunused-variable"]}' %s -- \
|
||||||
// RUN: | FileCheck -implicit-check-not='{{warning:|error:}}' %s
|
// RUN: | FileCheck -implicit-check-not='{{warning:|error:}}' %s
|
||||||
|
//
|
||||||
|
// ... -extra-arg:
|
||||||
|
// RUN: clang-tidy -checks='-*,modernize-use-override,clang-diagnostic-shadow,clang-diagnostic-float-conversion' \
|
||||||
|
// RUN: -extra-arg=-Wshadow -extra-arg=-Wno-unused-variable \
|
||||||
|
// RUN: -extra-arg-before=-Wno-shadow -extra-arg-before=-Wfloat-conversion \
|
||||||
|
// RUN: -extra-arg-before=-Wunused-variable %s -- \
|
||||||
|
// RUN: | FileCheck -implicit-check-not='{{warning:|error:}}' %s
|
||||||
|
//
|
||||||
|
// ... a combination of -config and -extra-arg(-before):
|
||||||
|
// RUN: clang-tidy -checks='-*,modernize-use-override,clang-diagnostic-shadow,clang-diagnostic-float-conversion' \
|
||||||
|
// RUN: -config='{ExtraArgs: ["-Wno-unused-variable"], ExtraArgsBefore: ["-Wno-shadow","-Wfloat-conversion"]}' \
|
||||||
|
// RUN: -extra-arg=-Wshadow -extra-arg-before=-Wunused-variable %s -- \
|
||||||
|
// RUN: | FileCheck -implicit-check-not='{{warning:|error:}}' %s
|
||||||
|
|
||||||
void f(float x) {
|
void f(float x) {
|
||||||
int a;
|
int a;
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
// RUN: clang-tidy -checks='-*,modernize-use-override' \
|
||||||
|
// RUN: -config='{ExtraArgs: ["-DTEST4"], ExtraArgsBefore: ["-DTEST1"]}' \
|
||||||
|
// RUN: -extra-arg=-DTEST3 -extra-arg-before=-DTEST2 %s -- -v 2>&1 \
|
||||||
|
// RUN: | FileCheck -implicit-check-not='{{warning:|error:}}' %s
|
||||||
|
|
||||||
|
// CHECK: {{^}}clang Invocation:{{$}}
|
||||||
|
// CHECK-NEXT: {{"-D" "TEST1" .*"-D" "TEST2" .*"-D" "TEST3" .*"-D" "TEST4"}}
|
Loading…
Reference in New Issue