diff options
author | Dodji Seketeli <dodji@redhat.com> | 2011-03-12 07:28:20 +0000 |
---|---|---|
committer | Dodji Seketeli <dodji@gcc.gnu.org> | 2011-03-12 08:28:20 +0100 |
commit | b057bff4c1c94c7e0086e9c7cd4b3c8bca40da92 (patch) | |
tree | 72430aa24de6f75af0eb7a67dfb9e6ce4e628518 /gcc | |
parent | ba7d31f68a4afe75450273f8e941259b1c676982 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/call.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/conversion/cast3.C | 14 |
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; +} |