Article View: gnu.g++.bug
Article #12842.3.2: friend decl breaks member op new
From: Nathan Myers
Date: Wed, 16 Dec 1992 19:55
Date: Wed, 16 Dec 1992 19:55
30 lines
1767 bytes
1767 bytes
// Friend declaration disables access to member operator new
// (this bug does not occur in gcc 2.2.2)
#include <stddef.h> // for size_t
struct Link {
void* operator new(size_t, int);
friend void* __builtin_new(size_t); // This declaration triggers the bug
};
void f() { new(2) Link; }
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2/2.3.2/specs
gcc version 2.3.2
/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.3.2/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dsun -Dsparc -Dunix -D__svr4__ -D__sun__ -D__sparc__ -D__unix__ -D__svr4__ -D__sun -D__sparc -D__unix -D__svr4__ -Asystem(unix) -Acpu(sparc) -Amachine(sparc) gccbug.cc /tmp/cca000KN.i
GNU CPP version 2.3.2 (sparc)
/usr/local/lib/gcc-lib/sparc-sun-solaris2/2.3.2/cc1plus /tmp/cca000KN.i -quiet -dumpbase gccbug.cc -version -o /tmp/cca000KN.s
GNU C++ version 2.3.2 (sparc) compiled by GNU C version 2.3.2.
gccbug.cc: In function `void f ()':
gccbug.cc:10: too many arguments for function `operator new'
Can anybody tell me why gcc's ::new calls __builtin_new(),
rather than ::operator new() as specified in the ARM?
This makes it awkward to provide a portable replacement for malloc
and operator new.
-------------------
Nathan Myers
Rogue Wave Software
myersn@ece.orst.edu
Technical Details
Message-ID:
<m0n24qP-0000GmC@rwave.roguewave.com>Path:
arc1-ca.pugleaf.net!sparky!uunet!cs.utexas.edu!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!rwave.UUCP!myersn%rwave.roguewaveShow Full Headers
Complete Article Headers
Newsgroups: gnu.g++.bug Path: arc1-ca.pugleaf.net!sparky!uunet!cs.utexas.edu!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!rwave.UUCP!myersn%rwave.roguewave From: myersn%rwave.roguewave@rwave.UUCP (Nathan Myers) Subject: 2.3.2: friend decl breaks member op new Message-ID: <m0n24qP-0000GmC@rwave.roguewave.com> Sender: gnulists@ai.mit.edu Organization: GNUs Not Usenet Distribution: gnu Date: Wed, 16 Dec 1992 19:55:00 GMT Approved: bug-g++@prep.ai.mit.edu Lines: 32