aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDodji Seketeli <dodji@redhat.com>2011-03-12 07:28:20 +0000
committerDodji Seketeli <dodji@gcc.gnu.org>2011-03-12 08:28:20 +0100
commitb057bff4c1c94c7e0086e9c7cd4b3c8bca40da92 (patch)
tree72430aa24de6f75af0eb7a67dfb9e6ce4e628518 /gcc
parentba7d31f68a4afe75450273f8e941259b1c676982 (diff)
downloadgcc-b057bff4c1c94c7e0086e9c7cd4b3c8bca40da92.zip
gcc-b057bff4c1c94c7e0086e9c7cd4b3c8bca40da92.tar.gz
gcc-b057bff4c1c94c7e0086e9c7cd4b3c8bca40da92.tar.bz2
re PR c++/46824 (chromium-compile failed because error: no match for ‘operator*’ in)
PR c++/46824 gcc/cp/ * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of the argument of the indirection operator should not be dependent. Fix the comment. gcc/testsuite/ * g++.dg/conversion/cast3.C: New test. From-SVN: r170897
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/call.c4
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/conversion/cast3.C14
4 files changed, 26 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 7c1e739..bebb1fc 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2011-03-11 Dodji Seketeli <dodji@redhat.com>
+
+ * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
+ the argument of the indirection operator should not be dependent.
+ Fix the comment.
+
2011-03-11 Jason Merrill <jason@redhat.com>
PR c++/47125
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index a297f53..5953e35 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -2150,7 +2150,7 @@ add_builtin_candidate (struct z_candidate **candidates, enum tree_code code,
}
return;
-/* 7 For every cv-qualified or cv-unqualified complete object type T, there
+/* 7 For every cv-qualified or cv-unqualified object type T, there
exist candidate operator functions of the form
T& operator*(T*);
@@ -2161,7 +2161,7 @@ add_builtin_candidate (struct z_candidate **candidates, enum tree_code code,
case INDIRECT_REF:
if (TREE_CODE (type1) == POINTER_TYPE
- && is_complete (TREE_TYPE (type1))
+ && !uses_template_parms (TREE_TYPE (type1))
&& (TYPE_PTROB_P (type1)
|| TREE_CODE (TREE_TYPE (type1)) == FUNCTION_TYPE))
break;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9652b4aa..412188a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2011-03-11 Dodji Seketeli <dodji@redhat.com>
+
+ * g++.dg/conversion/cast3.C: New test.
+
2011-03-11 Jason Merrill <jason@redhat.com>
* g++.dg/template/error45.C: New.
diff --git a/gcc/testsuite/g++.dg/conversion/cast3.C b/gcc/testsuite/g++.dg/conversion/cast3.C
new file mode 100644
index 0000000..43287a1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/conversion/cast3.C
@@ -0,0 +1,14 @@
+// Origin: PR c++/46824
+
+class Incomplete;
+struct Ptr
+{
+ operator Incomplete*();
+};
+
+int
+main()
+{
+ Ptr p;
+ *p;
+}