🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Michael T Pope Tue, 17 Oct 1989 05:53
operator new
#531
Author: Michael T Pope
Date: Tue, 17 Oct 1989 05:53
48 lines
2194 bytes
Sun-4/Sparc, SunOS 3.5?, configured as such
--------------new.C-------------------------
#include <sys/types.h>

class foo {
private:
  int dummy;
public:
  void* operator new(size_t t, int x) {
    return new char[t];
  }
}; // foo

int main() {
  foo* f = new foo;
}
---------------------------------------------
g++ -Wall -c -v new.C
gcc version 1.36.0- (based on GCC 1.36)
 /usr/local/gnu/gcc-cpp -+ -v -undef -D__GNUC__ -D__GNUG__ -D__cplusplus -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -Wall new.C /usr/tmp/cca24332.cpp
GNU CPP version 1.36
 /usr/local/gnu/gcc-cc1plus /usr/tmp/cca24332.cpp -quiet -dumpbase new.C -Wall -version -o /usr/tmp/cca24332.s
GNU C++ version 1.36.0- (based on GCC 1.36) (sparc) compiled by GNU C version 1.36.
default target switches: -mfpu -mepilogue -msun-asm
new.C: In function int main ():
new.C:36: too few arguments for method `operator new'
Failed assertion rval != error_mark_node at line 2164 of `cplus-method.c'.
g++: Program cc1plus got fatal signal 4.

Compilation exited abnormally with code 1 at Mon Oct 16 23:39:47
------------------------------------------------

BTW, although the following works, is there supposed to be a neater
syntax for calling foo::new() above?

foo* f = foo::operator new(sizeof(foo), 42);

---------------------------------------------

In gcc.c, contrary to the documentation, libg++ is still present in
the link_spec... which is fortunate as otherwise ___main is not found.
Less fortunate is that libg++.a requires ___builtin_saveregs from
gnulib, causing trouble since -lg++ appears after gnulib in the
link_spec list of arguments.  Moving -lg++ up the list works as a
quick kludge to get things to link.

Cheers,
Mike Pope
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads