Article View: gnu.g++.bug
Article #1369Problem with function matching rules
From: Michael Schwartz
Date: Fri, 08 Jan 1993 16:49
Date: Fri, 08 Jan 1993 16:49
31 lines
1529 bytes
1529 bytes
There appears to be a bug in function matching rules using conversion
operators to convert class types to built-in types.
The following example fails:
class A
{
public:
operator const char * (void) { return "Hello"; }
A() {}
~A() {}
};
main()
{
A a;
const char *cp = 1 + a;
const char *cp2 = a + 1;
}
Output of compile:
Reading specs from /usr/local/lib/gcc-lib/m68k-sun-sunos4.1/2.3.3/specs
gcc version 2.3.3
/usr/local/lib/gcc-lib/m68k-sun-sunos4.1/2.3.3/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__mc68000 -D__sun -D__unix -D__HAVE_68881__ -D__mc68020__ -Dmc68020 bad_match.cc /usr/tmp/cca02076.i
GNU CPP version 2.3.3 (68k, MIT syntax)
/usr/local/lib/gcc-lib/m68k-sun-sunos4.1/2.3.3/cc1plus /usr/tmp/cca02076.i -quiet -dumpbase bad_match.cc -version -o /usr/tmp/cca02076.s
GNU C++ version 2.3.3 (68k, MIT syntax) compiled by GNU C version 2.3.3.
bad_match.cc: In function `int main ()':
bad_match.cc:14: undefined A operator + ()
bad_match.cc:15: undefined A operator + ()
Technical Details
Message-ID:
<9301081749.AA02136@loki.den.mmc.com>Path:
arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!loki-gw.den.mmc.com!schwartzShow Full Headers
Complete Article Headers
Newsgroups: gnu.g++.bug Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!loki-gw.den.mmc.com!schwartz From: schwartz@loki-gw.den.mmc.com ( Michael Schwartz) Subject: Problem with function matching rules Message-ID: <9301081749.AA02136@loki.den.mmc.com> Sender: gnulists@ai.mit.edu Organization: GNUs Not Usenet Distribution: gnu Date: Fri, 8 Jan 1993 16:49:48 GMT Approved: bug-g++@prep.ai.mit.edu Lines: 32