diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2009-07-21 19:28:10 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2009-07-21 19:28:10 +0000 |
commit | 952c15dd52a004861edea256479ad80de3148263 (patch) | |
tree | e920b3d3cb21c138d1b8fdf5de053ecc9646c496 /clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp | |
parent | c9ec735aa8871078ca9d9b53f1131103fc1a41b5 (diff) | |
download | bcm5719-llvm-952c15dd52a004861edea256479ad80de3148263.tar.gz bcm5719-llvm-952c15dd52a004861edea256479ad80de3148263.zip |
Misc fixes for -Wreorder:
1. Make it work correctly with anonymous unions.
2. Don't compute it if the warning isn't enabled.
3. Optimize the algorithm slightly to make it linear time in the
case where we don't produce any warnings.
llvm-svn: 76630
Diffstat (limited to 'clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp')
-rw-r--r-- | clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp b/clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp index 107c89355e6..a1990329ace 100644 --- a/clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp +++ b/clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp @@ -73,4 +73,17 @@ struct X : public virtual A, virtual V, public virtual B { // expected-note {{base 'struct V'}} }; - +class Anon { + int c; union {int a,b;}; int d; + Anon() : c(10), b(1), d(2) {} +}; +class Anon2 { + int c; union {int a,b;}; int d; + Anon2() : c(2), + d(10), // expected-warning {{member 'd' will be initialized after}} + b(1) {} // expected-note {{field b}} +}; +class Anon3 { + union {int a,b;}; + Anon3() : b(1) {} +}; |