diff options
Diffstat (limited to 'clang/test/SemaCXX/uninitialized.cpp')
| -rw-r--r-- | clang/test/SemaCXX/uninitialized.cpp | 14 |
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 { |

