class.c (note_name_declared_in_class): Make declaration changes meaning a pedwarn.
authorRichard Guenther <rguenther@suse.de>
Fri, 23 Feb 2007 11:08:39 +0000 (11:08 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 23 Feb 2007 11:08:39 +0000 (11:08 +0000)
2007-02-23  Richard Guenther  <rguenther@suse.de>

* class.c (note_name_declared_in_class): Make declaration
changes meaning a pedwarn.

* g++.dg/warn/changes-meaning.C: New testcase.

From-SVN: r122255

gcc/cp/ChangeLog
gcc/cp/class.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/warn/changes-meaning.C [new file with mode: 0644]

index 63dddf944eb071179d4403def6ea917003d09a14..bdef6b5734b92287e84ba8771a109f78e0669493 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-23  Richard Guenther  <rguenther@suse.de>
+
+       * class.c (note_name_declared_in_class): Make declaration
+       changes meaning a pedwarn.
+
 2007-02-22  Michael Matz  <matz@suse.de>
 
        PR c++/29433
index 0f19b67c74f5a5e21b9763c8448615273c7bedd2..f24a2fec32788be208cbbd074616d9a05691027e 100644 (file)
@@ -6299,9 +6299,9 @@ note_name_declared_in_class (tree name, tree decl)
         A name N used in a class S shall refer to the same declaration
         in its context and when re-evaluated in the completed scope of
         S.  */
-      error ("declaration of %q#D", decl);
-      error ("changes meaning of %qD from %q+#D",
-            DECL_NAME (OVL_CURRENT (decl)), (tree) n->value);
+      pedwarn ("declaration of %q#D", decl);
+      pedwarn ("changes meaning of %qD from %q+#D",
+              DECL_NAME (OVL_CURRENT (decl)), (tree) n->value);
     }
 }
 
index cab14535df205f4f5a089ed0d6657acab0e85af2..550665f1cda1e958e00bd31ad86c68934d4579a8 100644 (file)
@@ -1,3 +1,7 @@
+2007-02-23  Richard Guenther  <rguenther@suse.de>
+
+       * g++.dg/warn/changes-meaning.C: New testcase.
+
 2007-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libgfortran/30910    
diff --git a/gcc/testsuite/g++.dg/warn/changes-meaning.C b/gcc/testsuite/g++.dg/warn/changes-meaning.C
new file mode 100644 (file)
index 0000000..fdbddf8
--- /dev/null
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-fpermissive" } */
+
+template <class _Tp> class auto_ptr {};  /* { dg-warning "changes meaning" } */
+template <class _Tp>
+class counted_ptr
+{
+public:
+  auto_ptr<_Tp> auto_ptr(); /* { dg-warning "" } */
+};
+