🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Tom Vijlbrief Thu, 30 Nov 1989 11:28
g++ 1.36.1- eats all available memory on SPARC
#645
Author: Tom Vijlbrief
Date: Thu, 30 Nov 1989 11:28
87 lines
2876 bytes
The following program eats all available memory in my sparc:
=========================================
#include <stdarg.h>


#define BIT(x) (x)

enum eVObjAlign {
    eVObjHLeft  = BIT(0),
    eVObjHCenter= BIT(1),
    eVObjHRight = BIT(2),
    eVObjHExpand= BIT(3),
    eVObjH      = eVObjHLeft|eVObjHCenter|eVObjHRight|eVObjHExpand, 
    eVObjVTop   = BIT(8),
    eVObjVBase  = BIT(9),
    eVObjVCenter= BIT(10),
    eVObjVBottom= BIT(11), 
    eVObjVExpand= BIT(12), 
    eVObjV      = eVObjVTop|eVObjVBase|eVObjVCenter|eVObjVBottom|eVObjVExpand 
};

class VObjAlign {
  eVObjAlign f;
public:
  VObjAlign() {}
  VObjAlign(int i) { f= eVObjAlign(i); }
  operator int() { return f; }
};

typedef int Collection, VObject;

class Point {
public:
	short a,b;
	Point(int x) {a=b=x;};
};

Point gPoint0(3);

class OneOfCluster: public Point {
public:
	OneOfCluster(int id= 1, VObjAlign a= 1, Point g= gPoint0, Collection *cp= 0);
	OneOfCluster(int id, VObjAlign a, Point g, VObject*, ...);
	OneOfCluster(int id, VObjAlign a, Point g, char*, ...);
};

OneOfCluster::OneOfCluster(int id, VObjAlign a, Point g, VObject*, ...): (id)
{
    va_list ap;
    va_start(ap, g);
    SetItems(ap);
    Init(0);
    va_end(ap);
}

OneOfCluster::OneOfCluster(int id, VObjAlign a, Point g, char*, ...): (id)
{
    char *t;
    va_list ap;
    va_start(ap, g);
    Init(0);
    va_end(ap);
}
===========================

tom@lightning:~/src/CC> g++ -v -c vararg.cc
gcc version 1.36.1- (based on GCC 1.36)
 /usr/local/lib/gcc-cpp -+ -v -undef -D__GNUC__ -D__GNUG__ -D__cplusplus -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ vararg.cc /usr/tmp/cca00190.cpp
GNU CPP version 1.36
 /usr/local/lib/gcc-cc1plus /usr/tmp/cca00190.cpp -quiet -dumpbase vararg.cc -version -o /usr/tmp/cca00190.s
GNU C++ version 1.36.1- (based on GCC 1.36) (sparc) compiled by GNU C version 1.36.
default target switches: -mfpu -mepilogue
^Ctom@lightning:~/src/CC> 
================================

The problem is caused by the VObjAlign class in the variable argument list,
replacing it by an int works.

Tom

===============================================================================
Tom Vijlbrief
TNO Institute for Perception
P.O. Box 23				Phone: +31 34 63 562 11
3769 ZG  Soesterberg			E-mail: tnosoes!tom@mcvax.cwi.nl
The Netherlands				    or:	uunet!mcvax!tnosoes!tom
===============================================================================
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