C++ PATCH: Fix C++/10915
Gabriel Dos Reis
gdrc@integrable-solutions.net
Sat Jun 21 15:13:00 GMT 2003
This patchlet fixes PR C++/10915. Now we issue the diagnostic only if
-Wconversion. Ideally, we should issue the diagnostic only in case of
"potential" use.
Applied to branch and head. Regtested on an i686-pc-linux-gnu. No
regression.
-- Gaby
Index: testsuite/ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/ChangeLog,v
retrieving revision 1.2261.2.196
diff -p -r1.2261.2.196 ChangeLog
*** testsuite/ChangeLog 20 Jun 2003 19:27:43 -0000 1.2261.2.196
--- testsuite/ChangeLog 21 Jun 2003 12:25:03 -0000
***************
*** 1,3 ****
--- 1,8 ----
+ 2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * g++.old-deja/g++.jason/conversion5.C: Adjust option.
+ * g++.old-deja/g++.bugs/900215_01.C: Likewise.
+
2003-06-20 Mark Mitchell <mark@codesourcery.com>
PR c++/10888
Index: testsuite/g++.dg/warn/conversion-function-1.C
===================================================================
RCS file: testsuite/g++.dg/warn/conversion-function-1.C
diff -N testsuite/g++.dg/warn/conversion-function-1.C
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- testsuite/g++.dg/warn/conversion-function-1.C 21 Jun 2003 12:25:04 -0000
***************
*** 0 ****
--- 1,8 ----
+ // Copyright (C) 2003 Free Software Foundation
+ // Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
+ // { dg-options "-Wno-conversion" }
+
+ struct A {
+ operator A&();
+ };
+
Index: testsuite/g++.old-deja/g++.bugs/900215_01.C
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.old-deja/g++.bugs/900215_01.C,v
retrieving revision 1.3
diff -p -r1.3 900215_01.C
*** testsuite/g++.old-deja/g++.bugs/900215_01.C 8 Mar 2000 17:09:57 -0000 1.3
--- testsuite/g++.old-deja/g++.bugs/900215_01.C 21 Jun 2003 12:25:04 -0000
***************
*** 19,24 ****
--- 19,26 ----
// 8/3/2000 (nathan): The std allows you to define such an op, but
// it will never be called. [class.conv.fct]. Make it an unconditional warning.
+ // Special Options: -Wconversion
+
struct struct0 {
operator void (); // WARNING - operator void
Index: testsuite/g++.old-deja/g++.jason/conversion5.C
===================================================================
RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/conversion5.C,v
retrieving revision 1.2
diff -p -r1.2 conversion5.C
*** testsuite/g++.old-deja/g++.jason/conversion5.C 16 Dec 1998 21:32:34 -0000 1.2
--- testsuite/g++.old-deja/g++.jason/conversion5.C 21 Jun 2003 12:25:04 -0000
***************
*** 1,4 ****
--- 1,5 ----
// Build don't link:
+ // Special Options: -Wconversion
struct A { };
struct B: public A {
A a;
Index: cp/ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/ChangeLog,v
retrieving revision 1.3076.2.157
diff -p -r1.3076.2.157 ChangeLog
*** cp/ChangeLog 20 Jun 2003 15:46:37 -0000 1.3076.2.157
--- cp/ChangeLog 21 Jun 2003 12:25:15 -0000
***************
*** 1,3 ****
--- 1,9 ----
+ 2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/10915
+ * decl.c (grok_op_properties): Warn possible confusing conversion
+ only if -Wconversion.
+
2003-06-20 Mark Mitchell <mark@codesourcery.com>
PR c++/10845
Index: cp/decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/decl.c,v
retrieving revision 1.965.2.51
diff -p -r1.965.2.51 decl.c
*** cp/decl.c 20 Jun 2003 05:57:16 -0000 1.965.2.51
--- cp/decl.c 21 Jun 2003 12:25:23 -0000
*************** grok_op_properties (decl, friendp)
*** 13235,13241 ****
&& DERIVED_FROM_P (t, current_class_type))
what = "a base class";
! if (what)
warning ("conversion to %s%s will never use a type conversion operator",
ref ? "a reference to " : "", what);
}
--- 13235,13241 ----
&& DERIVED_FROM_P (t, current_class_type))
what = "a base class";
! if (what && warn_conversion)
warning ("conversion to %s%s will never use a type conversion operator",
ref ? "a reference to " : "", what);
}
More information about the Gcc-patches
mailing list