🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.bug
Article #1284

2.3.2: friend decl breaks member op new

#1284
From: Nathan Myers
Date: Wed, 16 Dec 1992 19:55
30 lines
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.roguewave

Show 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