This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Name mangling issue with HP, Sun, Tru64 UNIX C++ but not GCC


On Wed, Feb 01, 2006 at 01:21:03PM -0500, Andrew Pinski wrote:
> > 
> > We ran into a problem building KDE on HP-UX 11.23/IA with the HP C++
> > compiler. The compiler mangled a function name in a .cpp file though
> > it was declared extern "C" in the .h file. After a post to the HP C++
> > developers list, we were told this behavior is correct. GCC 4.0.2 does
> > not do this so I'd like to get your opinion.
> > 
> > $ cat mangle-1.cc
> > typedef enum {
> >   XSLDBG_MSG_THREAD_NOTUSED,
> >   XSLDBG_MSG_THREAD_INIT
> > } XsldbgMessageEnum;
> > 
> > extern "C" {
> >   void xsldbgSetAppFunc (int (*notifyXsldbgAppFunc) (XsldbgMessageEnum type,
> >                                                      const void *data));
> > }
> > 
> > static int (*notifyXsldbgAppFuncPtr) (XsldbgMessageEnum type,
> >                                       const void *data) = 0;
> > 
> > void xsldbgSetAppFunc (int (*notifyXsldbgAppFunc) (XsldbgMessageEnum type,
> >                                                    const void *data))
> > {
> >   notifyXsldbgAppFuncPtr = notifyXsldbgAppFunc;
> > }
> 
> This is most likely very related to PR 2316 where GCC does not use language
> as the overloaded part.  

Is there some place in the C++ standard I can look up to determine
what the correct behavior for the above code should be?

-- 
albert chin (china@thewrittenword.com)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]