From 33a4b3db0de5fbba06264a46f560220b5f8f11a8 Mon Sep 17 00:00:00 2001 From: Richard Trieu Date: Wed, 12 Jun 2013 21:20:57 +0000 Subject: Introducing -Wheader-guard, a warning that checks header guards actually work properly. This warning checks that the #ifndef and #define directives at the beginning of a header refer to the same macro name. Includes a fix-it hint to correct the header guard. llvm-svn: 183867 --- clang/test/Lexer/Inputs/bad-header-guard.h | 4 ++++ clang/test/Lexer/Inputs/different-define.h | 4 ++++ clang/test/Lexer/Inputs/good-header-guard.h | 4 ++++ clang/test/Lexer/Inputs/multiple.h | 4 ++++ clang/test/Lexer/Inputs/no-define.h | 3 +++ clang/test/Lexer/Inputs/out-of-order-define.h | 7 +++++++ clang/test/Lexer/Inputs/tokens-between-ifndef-and-define.h | 7 +++++++ 7 files changed, 33 insertions(+) create mode 100644 clang/test/Lexer/Inputs/bad-header-guard.h create mode 100644 clang/test/Lexer/Inputs/different-define.h create mode 100644 clang/test/Lexer/Inputs/good-header-guard.h create mode 100644 clang/test/Lexer/Inputs/multiple.h create mode 100644 clang/test/Lexer/Inputs/no-define.h create mode 100644 clang/test/Lexer/Inputs/out-of-order-define.h create mode 100644 clang/test/Lexer/Inputs/tokens-between-ifndef-and-define.h (limited to 'clang/test/Lexer/Inputs') diff --git a/clang/test/Lexer/Inputs/bad-header-guard.h b/clang/test/Lexer/Inputs/bad-header-guard.h new file mode 100644 index 00000000000..601da093272 --- /dev/null +++ b/clang/test/Lexer/Inputs/bad-header-guard.h @@ -0,0 +1,4 @@ +#ifndef bad_header_guard +#define bad_guard + +#endif diff --git a/clang/test/Lexer/Inputs/different-define.h b/clang/test/Lexer/Inputs/different-define.h new file mode 100644 index 00000000000..f23454b7c8c --- /dev/null +++ b/clang/test/Lexer/Inputs/different-define.h @@ -0,0 +1,4 @@ +#ifndef different_define +#define FOO 5 + +#endif diff --git a/clang/test/Lexer/Inputs/good-header-guard.h b/clang/test/Lexer/Inputs/good-header-guard.h new file mode 100644 index 00000000000..664a479d391 --- /dev/null +++ b/clang/test/Lexer/Inputs/good-header-guard.h @@ -0,0 +1,4 @@ +#ifndef good_header_guard +#define good_header_guard + +#endif diff --git a/clang/test/Lexer/Inputs/multiple.h b/clang/test/Lexer/Inputs/multiple.h new file mode 100644 index 00000000000..5dfb327a0b2 --- /dev/null +++ b/clang/test/Lexer/Inputs/multiple.h @@ -0,0 +1,4 @@ +#ifndef multiple +#define multi + +#endif diff --git a/clang/test/Lexer/Inputs/no-define.h b/clang/test/Lexer/Inputs/no-define.h new file mode 100644 index 00000000000..591a66b30c6 --- /dev/null +++ b/clang/test/Lexer/Inputs/no-define.h @@ -0,0 +1,3 @@ +#ifndef no_define + +#endif diff --git a/clang/test/Lexer/Inputs/out-of-order-define.h b/clang/test/Lexer/Inputs/out-of-order-define.h new file mode 100644 index 00000000000..d38e93f29bb --- /dev/null +++ b/clang/test/Lexer/Inputs/out-of-order-define.h @@ -0,0 +1,7 @@ +#ifndef out_of_order + +#define something_else + +#define out_of_order + +#endif diff --git a/clang/test/Lexer/Inputs/tokens-between-ifndef-and-define.h b/clang/test/Lexer/Inputs/tokens-between-ifndef-and-define.h new file mode 100644 index 00000000000..ce8d7705063 --- /dev/null +++ b/clang/test/Lexer/Inputs/tokens-between-ifndef-and-define.h @@ -0,0 +1,7 @@ +#ifndef tokens_between + +const int pi = 3; + +#define pi_is_bad + +#endif -- cgit v1.2.3