diff options
author | Jason Merrill <jason@redhat.com> | 2014-11-15 18:28:46 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2014-11-15 18:28:46 -0500 |
commit | b8cd39962c5d6dab4cf908ca561e6e90156f241d (patch) | |
tree | 079b57fe06e7826f4ebecd095313adf51971e7d5 /gcc | |
parent | f5f08264283526e1f17500d44f93fdf5730072c3 (diff) | |
download | gcc-b8cd39962c5d6dab4cf908ca561e6e90156f241d.zip gcc-b8cd39962c5d6dab4cf908ca561e6e90156f241d.tar.gz gcc-b8cd39962c5d6dab4cf908ca561e6e90156f241d.tar.bz2 |
* constexpr.c (cx_check_missing_mem_inits): Clarify error message.
From-SVN: r217616
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/constexpr.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-ctor.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/constexpr-template2.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/nsdmi3.C | 2 |
7 files changed, 12 insertions, 7 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5311649..279e91b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2014-11-15 Jason Merrill <jason@redhat.com> + + * constexpr.c (cx_check_missing_mem_inits): Clarify error message. + 2014-11-14 Paolo Carlini <paolo.carlini@oracle.com> * semantics.c (end_maybe_infinite_loop): Use fold_non_dependent_expr. diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c index d30bf635..0d45f31 100644 --- a/gcc/cp/constexpr.c +++ b/gcc/cp/constexpr.c @@ -716,8 +716,9 @@ cx_check_missing_mem_inits (tree fun, tree body, bool complain) } if (!complain) return true; - error ("uninitialized member %qD in %<constexpr%> constructor", - field); + error ("member %qD must be initialized by mem-initializer " + "in %<constexpr%> constructor", field); + inform (DECL_SOURCE_LOCATION (field), "declared here"); bad = true; } if (field == NULL_TREE) diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor.C index 659e733..55beda7 100644 --- a/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor.C +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor.C @@ -3,5 +3,5 @@ struct A { int i; - constexpr A() { } // { dg-error "uninitialized member .A::i" } + constexpr A() { } // { dg-error "A::i" } }; diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C index 29f574d..13ca6fa 100644 --- a/gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C @@ -21,5 +21,5 @@ struct A1 struct B1 { A1 a1; - constexpr B1() {} // { dg-error "uninitialized member" } + constexpr B1() {} // { dg-error "B1::a1" } }; diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C index 3e2685b..a589356 100644 --- a/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C @@ -6,7 +6,7 @@ struct A { int i; - constexpr A(int _i) { i = _i; } // { dg-error "empty body|uninitialized member" } + constexpr A(int _i) { i = _i; } // { dg-error "empty body|A::i" } }; template <class T> diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-template2.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-template2.C index a316b34..12a8d42 100644 --- a/gcc/testsuite/g++.dg/cpp0x/constexpr-template2.C +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-template2.C @@ -3,7 +3,7 @@ template <class T> struct A { T t; - constexpr A() { } // { dg-error "uninitialized" } + constexpr A() { } // { dg-error "::t" } }; int main() diff --git a/gcc/testsuite/g++.dg/cpp0x/nsdmi3.C b/gcc/testsuite/g++.dg/cpp0x/nsdmi3.C index 6ac414b..d2e7439 100644 --- a/gcc/testsuite/g++.dg/cpp0x/nsdmi3.C +++ b/gcc/testsuite/g++.dg/cpp0x/nsdmi3.C @@ -15,4 +15,4 @@ struct B constexpr B b; // { dg-error "B::B" } -// { dg-prune-output "uninitialized member" } +// { dg-prune-output "B::a1" } |