summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2009-07-21 19:28:10 +0000
committerEli Friedman <eli.friedman@gmail.com>2009-07-21 19:28:10 +0000
commit952c15dd52a004861edea256479ad80de3148263 (patch)
treee920b3d3cb21c138d1b8fdf5de053ecc9646c496 /clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp
parentc9ec735aa8871078ca9d9b53f1131103fc1a41b5 (diff)
downloadbcm5719-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.cpp15
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) {}
+};
OpenPOWER on IntegriCloud