summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/uninitialized.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaCXX/uninitialized.cpp')
-rw-r--r--clang/test/SemaCXX/uninitialized.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/uninitialized.cpp b/clang/test/SemaCXX/uninitialized.cpp
index fa453cbb290..b0b4ef672db 100644
--- a/clang/test/SemaCXX/uninitialized.cpp
+++ b/clang/test/SemaCXX/uninitialized.cpp
@@ -823,6 +823,20 @@ namespace cross_field_warnings {
int d = a + b + c;
R() : a(c = 5), b(c), c(a) {}
};
+
+ // FIXME: Use the CFG-based analysis to give a sometimes uninitialized
+ // warning on y.
+ struct T {
+ int x;
+ int y;
+ T(bool b)
+ : x(b ? (y = 5) : (1 + y)), // expected-warning{{field 'y' is uninitialized when used here}}
+ y(y + 1) {}
+ T(int b)
+ : x(!b ? (1 + y) : (y = 5)), // expected-warning{{field 'y' is uninitialized when used here}}
+ y(y + 1) {}
+ };
+
}
namespace base_class {
OpenPOWER on IntegriCloud