* constexpr.c (cx_check_missing_mem_inits): Clarify error message.
authorJason Merrill <jason@redhat.com>
Sat, 15 Nov 2014 23:28:46 +0000 (18:28 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Sat, 15 Nov 2014 23:28:46 +0000 (18:28 -0500)
From-SVN: r217616

gcc/cp/ChangeLog
gcc/cp/constexpr.c
gcc/testsuite/g++.dg/cpp0x/constexpr-ctor.C
gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C
gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
gcc/testsuite/g++.dg/cpp0x/constexpr-template2.C
gcc/testsuite/g++.dg/cpp0x/nsdmi3.C

index 5311649d12dc15a47181642e6b27a1f0cc8dea5d..279e91b92f05c57252fa5b971072beae1d899b48 100644 (file)
@@ -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.
index d30bf635d84d0dfd5701400b838a052d5e829dea..0d45f31f48acbe30dd76c7b8bcc00afd2cc598ad 100644 (file)
@@ -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)
index 659e733cdcd262e503170f5b6bf05eed6b036bda..55beda7c49f1ca9d1f951602b768d987d2c45991 100644 (file)
@@ -3,5 +3,5 @@
 struct A
 {
   int i;
-  constexpr A() { }            // { dg-error "uninitialized member .A::i" }
+  constexpr A() { }            // { dg-error "A::i" }
 };
index 29f574df3896a075a5d7c1d22d6a06066eb400fb..13ca6fa23908a900d96e2742ee5923422a083c36 100644 (file)
@@ -21,5 +21,5 @@ struct A1
 struct B1
 {
     A1 a1;
-    constexpr B1() {} // { dg-error "uninitialized member" }
+    constexpr B1() {} // { dg-error "B1::a1" }
 };
index 3e2685b1c5c326c821d9958fcab70f36b019bf7e..a5893563eecc66a3f6bdadf4f0216fdb7f2de750 100644 (file)
@@ -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>
index a316b34bd7b39b0ed130c2f2197a81d3cf882cf2..12a8d42b31fc36aa8e9c53ad2c50d038afd6f23d 100644 (file)
@@ -3,7 +3,7 @@
 template <class T> struct A
 {
   T t;
-  constexpr A() { }            // { dg-error "uninitialized" }
+  constexpr A() { }            // { dg-error "::t" }
 };
 
 int main()
index 6ac414b7437d148652e463103eb36cf342a364ec..d2e74392487558a6140240ae904d22d618d70a14 100644 (file)
@@ -15,4 +15,4 @@ struct B
 
 constexpr B b;                 // { dg-error "B::B" }
 
-// { dg-prune-output "uninitialized member" }
+// { dg-prune-output "B::a1" }