diff options
author | Mark Mitchell <mark@codesourcery.com> | 2004-01-16 18:39:58 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2004-01-16 18:39:58 +0000 |
commit | 144e414d26bf3d2daff9456456cfd9abeb5cfcda (patch) | |
tree | 6818ad65c074376c79d89ace6b1b77c0b768d406 /gcc | |
parent | 9e0baa604103abcb676222364f1fa51e1f006203 (diff) | |
download | gcc-144e414d26bf3d2daff9456456cfd9abeb5cfcda.zip gcc-144e414d26bf3d2daff9456456cfd9abeb5cfcda.tar.gz gcc-144e414d26bf3d2daff9456456cfd9abeb5cfcda.tar.bz2 |
re PR c++/13178 (Bogus C++ error message referring to operator 1)
PR c++/13178
* call.c (name_as_c_string): Print conversion operator names
correctly.
PR c++/13178
* g++.dg/conversion/op1.C: New test.
From-SVN: r75986
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/call.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/conversion/op1.C | 10 |
4 files changed, 28 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c2458ab..06733cc 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2004-01-16 Mark Mitchell <mark@codesourcery.com> + PR c++/13178 + * call.c (name_as_c_string): Print conversion operator names + correctly. + PR c++/13478 * call.c (initialize_reference): Pass -1 for inner parameter to convert_like_real. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index aaf902c..7864d08 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -4986,6 +4986,15 @@ name_as_c_string (tree name, tree type, bool *free_p) *free_p = true; } } + else if (IDENTIFIER_TYPENAME_P (name)) + { + pretty_name = concat ("operator ", + type_as_string (TREE_TYPE (name), + TFF_PLAIN_IDENTIFIER), + NULL); + /* Remember that we need to free the memory allocated. */ + *free_p = true; + } else pretty_name = (char *) IDENTIFIER_POINTER (name); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b5d83dc..573156e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-01-16 Mark Mitchell <mark@codesourcery.com> + + PR c++/13178 + * g++.dg/conversion/op1.C: New test. + 2004-01-16 J"orn Rennecke <joern.rennecke@superh.com> PR 10392 diff --git a/gcc/testsuite/g++.dg/conversion/op1.C b/gcc/testsuite/g++.dg/conversion/op1.C new file mode 100644 index 0000000..3aa21c7 --- /dev/null +++ b/gcc/testsuite/g++.dg/conversion/op1.C @@ -0,0 +1,10 @@ +class C +{ + template<typename U> + operator U(); +}; + +int fn (C c) +{ + return C::operator float(c); // { dg-error "operator U" } +} |