summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/uninitialized.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-04-05 17:41:31 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-04-05 17:41:31 +0000
commitb5d4831f8372120a5b1aef14a8add2a0691f3977 (patch)
tree3d4cb79f6bd789a8d1658acea956929dc2f59768 /clang/test/SemaCXX/uninitialized.cpp
parent7522abd3ce7c24c27c9c9fbe2edec63962157ab2 (diff)
downloadbcm5719-llvm-b5d4831f8372120a5b1aef14a8add2a0691f3977.tar.gz
bcm5719-llvm-b5d4831f8372120a5b1aef14a8add2a0691f3977.zip
Fix PR9624 by explicitly disabling uninitialized warnings for direct self-init:
int x = x; GCC disables its warnings on this construct as a way of indicating that the programmer intentionally wants the variable to be uninitialized. Only the warning on the initializer is turned off in this iteration. This makes the code a lot more ugly, but starts commenting the surprising behavior here. This is a WIP, I want to refactor it substantially for clarity, and to determine whether subsequent warnings should be suppressed or not. llvm-svn: 128894
Diffstat (limited to 'clang/test/SemaCXX/uninitialized.cpp')
-rw-r--r--clang/test/SemaCXX/uninitialized.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/test/SemaCXX/uninitialized.cpp b/clang/test/SemaCXX/uninitialized.cpp
index cf75187ab8e..0a3b5d938dd 100644
--- a/clang/test/SemaCXX/uninitialized.cpp
+++ b/clang/test/SemaCXX/uninitialized.cpp
@@ -7,7 +7,7 @@ int far(const int& x);
// Test self-references within initializers which are guaranteed to be
// uninitialized.
-int a = a; // FIXME: This doesn't warn!? Seems it doesn't cast 'a' to an RValue.
+int a = a; // no-warning: used to signal intended lack of initialization.
int b = b + 1; // expected-warning {{variable 'b' is uninitialized when used within its own initialization}}
int c = (c + c); // expected-warning 2 {{variable 'c' is uninitialized when used within its own initialization}}
void test() {
OpenPOWER on IntegriCloud