aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@integrable-solutions.net>2003-06-21 17:39:58 +0000
committerGabriel Dos Reis <gdr@gcc.gnu.org>2003-06-21 17:39:58 +0000
commit25abc0a5efa834a9a39d44f942d3bc3cc5480771 (patch)
tree32fb950e73559984b72a7c2f099244e64b51366a
parentcff5cdc83d920e0ea10209a764649c6abc011804 (diff)
downloadgcc-25abc0a5efa834a9a39d44f942d3bc3cc5480771.zip
gcc-25abc0a5efa834a9a39d44f942d3bc3cc5480771.tar.gz
gcc-25abc0a5efa834a9a39d44f942d3bc3cc5480771.tar.bz2
re PR c++/10784 (Warning about choosing custom operator over copy constructor cannot be turned off (and it's useless in the first place))
cp/ PR c++/10784 * call.c (joust): Warn about choosing conversion sequence only if -Wconversion. testsuite/ * g++.old-deja/g++.benjamin/16077.C: Add -Wconversion option. * g++.old-deja/g++.other/conv7.C: Likewise * g++.old-deja/g++.other/overcnv2.C: Likewise. * g++.old-deja/g++.other/overload14.C: Likewise. From-SVN: r68312
-rw-r--r--gcc/cp/ChangeLog8
-rw-r--r--gcc/cp/call.c2
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/g++.old-deja/g++.benjamin/16077.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/conv7.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/overcnv2.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/overload14.C1
7 files changed, 19 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 0e679c9..7809040 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,6 +1,12 @@
+2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PR c++/10784
+ * call.c (joust): Warn about choosing conversion sequence only if
+ -Wconversion.
+
2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
- PC c++/10864
+ PR c++/10864
* call.c (op_error): Tidy.
* error.c (dump_expr): Properly format 'T()' when T is an
aggregate type.
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 48e3642..bb1ad5b 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -5807,7 +5807,7 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn)
if (!give_warning)
/*NOP*/;
- else if (warn)
+ else if (warn && warn_conversion)
{
tree source = source_type (TREE_VEC_ELT (w->convs, 0));
if (! DECL_CONSTRUCTOR_P (w->fn))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a947a8f..4e3c4cf 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,12 @@
2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
+ * g++.old-deja/g++.benjamin/16077.C: Add -Wconversion option.
+ * g++.old-deja/g++.other/conv7.C: Likewise
+ * g++.old-deja/g++.other/overcnv2.C: Likewise.
+ * g++.old-deja/g++.other/overload14.C: Likewise.
+
+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.
diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C b/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C
index edffef2..9f854b5 100644
--- a/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C
+++ b/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C
@@ -1,6 +1,7 @@
// { dg-do assemble }
// 981203 bkoz
// g++/16077
+// { dg-options "-Wconversion" }
class nicaragua;
struct colombia {
diff --git a/gcc/testsuite/g++.old-deja/g++.other/conv7.C b/gcc/testsuite/g++.old-deja/g++.other/conv7.C
index 71ec204..7042e14 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/conv7.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/conv7.C
@@ -1,4 +1,5 @@
// { dg-do assemble }
+// { dg-options "-Wconversion" }
//
// Copyright (C) 2001 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 5 May 2001 <nathan@codesourcery.com>
diff --git a/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C b/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C
index ab877d1..ef9c1f7 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C
@@ -1,4 +1,5 @@
// { dg-do assemble }
+// { dg-options "-Wconversion" }
// Test that we resolve this case as mandated by the standard, but also
// warn about it. We choose op char* not because it is a member of B --
// the standard says that all conversion ops are treated as coming from
diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload14.C b/gcc/testsuite/g++.old-deja/g++.other/overload14.C
index 28d5f47..2a50b1b 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/overload14.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/overload14.C
@@ -1,4 +1,5 @@
// { dg-do run }
+// { dg-options "-Wconversion" }
extern "C" void abort();
struct A {