🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by David Callahan Fri, 15 Dec 1989 21:39
bug: g++ does not allocate storage for static member.
#2096
Author: David Callahan
Date: Fri, 15 Dec 1989 21:39
65 lines
2605 bytes
Running 1.36.1, config sun-nfp-0S4, there is bug with static elements 
if structures. Here is a transcript. The source file has two structure
definitions. The first has a static array and the second is
conditionally defined based on the preprocessor value BUG. When this
second structure is not defined, g++ correctly allocates storage for
the static array but fails to allocate storage when the second struct
is define.

---------------------
dactyl% cat temp.c

struct node {

      static const int            type_size = 6 ;
      static const int stmt_map[type_size] ;

    protected:
      node() { } ;
} ;

const int node::stmt_map[node::type_size] = { 0, 0, 0, 1, 1, 0 } ;

#ifdef BUG
struct expr : public node {
    protected:
      expr() { } ;
} ;
#endif
dactyl% g++ -v -S temp.c
gcc version 1.36.1 (based on GCC 1.36)
 /usr/local/lib/g++-1.36.1/gcc-cpp -+ -v -undef -D__GNUC__ -D__GNUG__ -D__cplusplus -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -Dmc68020 temp.c /usr/tmp/cca09539.cpp
GNU CPP version 1.36
 /usr/local/lib/g++-1.36.1/gcc-cc1plus /usr/tmp/cca09539.cpp -quiet -dumpbase temp.c -version -o temp.s
GNU C++ version 1.36.1 (based on GCC 1.36) (68k, MIT syntax) compiled by GNU C version 1.36.
default target switches: -m68020 -mc68020 -mbitfield
dactyl% cat temp.s
#NO_APP
gcc_compiled.:
.globl _node$stmt_map
.text
	.even
_node$stmt_map:
	.long 0
	.long 0
	.long 0
	.long 1
	.long 1
	.long 0
.globl _node$type_size
	.even
_node$type_size:
	.long 6
dactyl% g++ -v -S -DBUG temp.c
gcc version 1.36.1 (based on GCC 1.36)
 /usr/local/lib/g++-1.36.1/gcc-cpp -+ -v -DBUG -undef -D__GNUC__ -D__GNUG__ -D__cplusplus -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -Dmc68020 temp.c /usr/tmp/cca09543.cpp
GNU CPP version 1.36
 /usr/local/lib/g++-1.36.1/gcc-cc1plus /usr/tmp/cca09543.cpp -quiet -dumpbase temp.c -version -o temp.s
GNU C++ version 1.36.1 (based on GCC 1.36) (68k, MIT syntax) compiled by GNU C version 1.36.
default target switches: -m68020 -mc68020 -mbitfield
dactyl% cat temp.s
#NO_APP
gcc_compiled.:
dactyl% 

------------------
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