diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-04-15 00:00:53 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-04-15 00:00:53 +0000 |
commit | 454a5b65d4025d155788617a4880662ad8e039ae (patch) | |
tree | c66588b411da7e327cc0aab5d51f1a7f8ba241bd /clang/test/SemaCXX/value-initialization.cpp | |
parent | 97bdf94da37d8780c0f08ad18494e682ba28b544 (diff) | |
download | bcm5719-llvm-454a5b65d4025d155788617a4880662ad8e039ae.tar.gz bcm5719-llvm-454a5b65d4025d155788617a4880662ad8e039ae.zip |
Warn about non-aggregate classes with no user-declared constructors
that have reference or const scalar members, since those members can
never be initializer or modified. Fixes <rdar://problem/7804350>.
llvm-svn: 101316
Diffstat (limited to 'clang/test/SemaCXX/value-initialization.cpp')
-rw-r--r-- | clang/test/SemaCXX/value-initialization.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/test/SemaCXX/value-initialization.cpp b/clang/test/SemaCXX/value-initialization.cpp index 16a7a1d0c9b..00bd1aaa40b 100644 --- a/clang/test/SemaCXX/value-initialization.cpp +++ b/clang/test/SemaCXX/value-initialization.cpp @@ -1,7 +1,9 @@ // RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++0x -struct A { // expected-error {{implicit default constructor for 'A' must explicitly initialize the const member 'i'}} - const int i; // expected-note {{declared at}} +struct A { // expected-error {{implicit default constructor for 'A' must explicitly initialize the const member 'i'}} \ + // expected-warning{{struct 'A' does not declare any constructor to initialize its non-modifiable members}} + const int i; // expected-note {{declared at}} \ + // expected-note{{const member 'i' will never be initialized}} virtual void f() { } }; |