From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Mitchell To: hjl@lucon.org (H.J. Lu) Cc: egcs@cygnus.com, gcc2@cygnus.com Subject: Patch for A C++ bug in gcc 2.8.0 and egcs 971207 Date: Sun, 14 Dec 1997 23:48:00 -0000 Message-id: <199712142348.XAA05915@quickstep.stanford.edu> References: X-SW-Source: 1997-12/msg00825.html Here's a fix for things like this: template void remove(const T& value) { } void f() { remove(__null); } which were resulting in bad manglings of remove. -- Mark Mitchell mmitchell@usa.net Stanford University http://www.stanford.edu 1997-12-14 Mark Mitchell * method.c (build_overload_name): Fix mangling for __null. Index: method.c =================================================================== RCS file: /home/mitchell/Repository/egcs/gcc/cp/method.c,v retrieving revision 1.4 diff -c -p -r1.4 method.c *** method.c 1997/12/07 17:48:55 1.4 --- method.c 1997/12/15 07:40:46 *************** build_overload_name (parmtypes, begin, e *** 1047,1054 **** } case UNKNOWN_TYPE: ! /* This will take some work. */ ! OB_PUTC ('?'); break; case TEMPLATE_TYPE_PARM: --- 1047,1056 ---- } case UNKNOWN_TYPE: ! /* We can get here if __null is defined to have type ({unkown ! type}*), which it is if -ansi is not used. Treat this ! like 'void*'. */ ! OB_PUTC ('v'); break; case TEMPLATE_TYPE_PARM: