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 =
|
||||
[&Context](const CommandLineArguments &Args, StringRef Filename) {
|
||||
ClangTidyOptions Opts = Context.getOptionsForFile(Filename);
|
||||
CommandLineArguments AdjustedArgs;
|
||||
if (Opts.ExtraArgsBefore)
|
||||
AdjustedArgs = *Opts.ExtraArgsBefore;
|
||||
AdjustedArgs.insert(AdjustedArgs.begin(), Args.begin(), Args.end());
|
||||
CommandLineArguments AdjustedArgs = Args;
|
||||
if (Opts.ExtraArgsBefore) {
|
||||
auto I = AdjustedArgs.begin();
|
||||
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)
|
||||
AdjustedArgs.insert(AdjustedArgs.end(), Opts.ExtraArgs->begin(),
|
||||
Opts.ExtraArgs->end());
|
||||
|
|
|
@ -1,7 +1,22 @@
|
|||
// 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: -config='{ExtraArgs: ["-Wshadow","-Wno-unused-variable"], ExtraArgsBefore: ["-Wno-shadow","-Wfloat-conversion","-Wunused-variable"]}' %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) {
|
||||
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