diff options
| author | Tyker <tyker1@outlook.com> | 2020-01-03 16:59:44 +0100 |
|---|---|---|
| committer | Tyker <tyker1@outlook.com> | 2020-01-03 17:22:24 +0100 |
| commit | b4b904e19bb356724b2c6aea0199ce05c6f15cdb (patch) | |
| tree | a9a4f57a30298bcbc5e3a1b7be11278049076fa8 /clang/test | |
| parent | 53fc4840673539a560c7bdc6315416b1e7adcf5a (diff) | |
| download | bcm5719-llvm-b4b904e19bb356724b2c6aea0199ce05c6f15cdb.tar.gz bcm5719-llvm-b4b904e19bb356724b2c6aea0199ce05c6f15cdb.zip | |
[Diagnostic] Fixed add ftabstop to -Wmisleading-indentation
Summary:
this allow much better support of codebases like the linux kernel that mix tabs and spaces.
-ftabstop=//Width// allow specifying how large tabs are considered to be.
Reviewers: xbolva00, aaron.ballman, rsmith
Reviewed By: aaron.ballman
Subscribers: mstorsjo, cfe-commits, jyknight, riccibruno, rsmith, nathanchance
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71037
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Parser/warn-misleading-indentation.cpp | 84 |
1 files changed, 82 insertions, 2 deletions
diff --git a/clang/test/Parser/warn-misleading-indentation.cpp b/clang/test/Parser/warn-misleading-indentation.cpp index d366db767e6..4b9d45b19ca 100644 --- a/clang/test/Parser/warn-misleading-indentation.cpp +++ b/clang/test/Parser/warn-misleading-indentation.cpp @@ -1,7 +1,9 @@ // RUN: %clang_cc1 -x c -fsyntax-only -verify %s -// RUN: %clang_cc1 -x c -fsyntax-only -verify -Wmisleading-indentation -DWITH_WARN %s -// RUN: %clang_cc1 -std=c++17 -fsyntax-only -verify -Wall -Wno-unused -DWITH_WARN -DCXX17 %s // RUN: %clang_cc1 -std=c++17 -fsyntax-only -verify -Wall -Wno-unused -Wno-misleading-indentation -DCXX17 %s +// RUN: %clang_cc1 -x c -fsyntax-only -verify -Wmisleading-indentation -DWITH_WARN -ftabstop 8 -DTAB_SIZE=8 %s +// RUN: %clang_cc1 -std=c++17 -fsyntax-only -verify -Wall -Wno-unused -DWITH_WARN -ftabstop 4 -DTAB_SIZE=4 -DCXX17 %s +// RUN: %clang_cc1 -x c -fsyntax-only -verify -Wall -Wno-unused -DWITH_WARN -ftabstop 1 -DTAB_SIZE=1 %s +// RUN: %clang_cc1 -std=c++17 -fsyntax-only -verify -Wall -Wno-unused -Wmisleading-indentation -DCXX17 -DWITH_WARN -ftabstop 2 -DTAB_SIZE=2 %s #ifndef WITH_WARN // expected-no-diagnostics @@ -225,3 +227,81 @@ void s(int num) { // expected-warning@-2 {{misleading indentation; statement is not part of the previous 'if'}} #endif } +int a4() +{ + if (0) + return 1; + return 0; +#if (TAB_SIZE == 1) +// expected-warning@-2 {{misleading indentation; statement is not part of the previous 'if'}} +// expected-note@-5 {{here}} +#endif +} + +int a5() +{ + if (0) + return 1; + return 0; +#if WITH_WARN +// expected-warning@-2 {{misleading indentation; statement is not part of the previous 'if'}} +// expected-note@-5 {{here}} +#endif +} + +int a6() +{ + if (0) + return 1; + return 0; +#if (TAB_SIZE == 8) +// expected-warning@-2 {{misleading indentation; statement is not part of the previous 'if'}} +// expected-note@-5 {{here}} +#endif +} + +#define FOO \ + goto fail + +int main(int argc, char* argv[]) { + if (5 != 0) + goto fail; + else + goto fail; + + if (1) { + if (1) + goto fail; + else if (1) + goto fail; + else if (1) + goto fail; + else + goto fail; + } else if (1) { + if (1) + goto fail; + } + + if (1) { + if (1) + goto fail; + } else if (1) + goto fail; + + + if (1) goto fail; goto fail; + + if (0) + goto fail; + + goto fail; + + if (0) + FOO; + + goto fail; + +fail:; +} + |

