diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2012-10-24 20:14:09 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2012-10-24 20:14:09 +0000 |
commit | 6c8b6498bed5f378018285c42b367dc2e06a98cd (patch) | |
tree | 2547c74cc46a29af812806d6202c3301fb7f6b6f /test/SemaCXX/warn-missing-variable-declarations.cpp | |
parent | a71a7d8a1ce4474e7bdb680658fb58b6caf391d3 (diff) |
Add an additional test for namespaces and -Wmissing-variable-declarations. Move C++ test into SemaCXX.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166616 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/warn-missing-variable-declarations.cpp')
-rw-r--r-- | test/SemaCXX/warn-missing-variable-declarations.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/SemaCXX/warn-missing-variable-declarations.cpp b/test/SemaCXX/warn-missing-variable-declarations.cpp new file mode 100644 index 0000000000..12af9735d1 --- /dev/null +++ b/test/SemaCXX/warn-missing-variable-declarations.cpp @@ -0,0 +1,43 @@ +// RUN: %clang -Wmissing-variable-declarations -fsyntax-only -Xclang -verify %s + +// Variable declarations that should trigger a warning. +int vbad1; // expected-warning{{no previous extern declaration for non-static variable 'vbad1'}} +int vbad2 = 10; // expected-warning{{no previous extern declaration for non-static variable 'vbad2'}} + +namespace x { + int vbad3; // expected-warning{{no previous extern declaration for non-static variable 'vbad3'}} +} + +// Variable declarations that should not trigger a warning. +static int vgood1; +extern int vgood2; +int vgood2; +static struct { + int mgood1; +} vgood3; + +// Functions should never trigger a warning. +void fgood1(void); +void fgood2(void) { + int lgood1; + static int lgood2; +} +static void fgood3(void) { + int lgood3; + static int lgood4; +} + +// Structures, namespaces and classes should be unaffected. +struct sgood1 { + int mgood2; +}; +struct { + int mgood3; +} sgood2; +class CGood1 { + static int MGood1; +}; +int CGood1::MGood1; +namespace { + int mgood4; +} |