This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

c++/4029: constructor doesn't see base class' members



>Number:         4029
>Category:       c++
>Synopsis:       constructor doesn't see base class' members
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 15 03:06:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     g++
>Release:        3.0.1pre20010801, 3.0 release, 2.95.4pre20010319
>Organization:
>Environment:
Intel Pentium II 233
Progeny Debian Linux 1.0
Reading specs from /usr/lib/gcc-lib/i386-linux/3.0.1/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,proto,objc --prefix=/usr --infodir=/share/info --mandir=/share/man --enable-shared --with-gnu-as --with-gnu-ld --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --enable-threads=posix --enable-java-gc=boehm --with-cpp-install-dir=bin --enable-objc-gc i386-linux
Thread model: posix
gcc version 3.0.1 20010801 (Debian prerelease)
>Description:
Constructor does not see base class' member variables
in "var (value)"-style initialization.
>How-To-Repeat:
template <class _TTW>
struct SGBb 
{
	typedef _TTW _TW;
	_TW   sy;
	void* st;
	
	SGBb <_TW> (_TW _sy, void* _st)
		: sy (_sy), st (_st) {}
};

template <class _TW, class _TTWO>
struct SGBMb : public SGBb <_TW> 
{
	typedef _TTWO _TWO;
	_TWO osy;
	
	SGBMb <_TW, _TWO> (_TW _sy, _TWO _osy, void* _st)
		: sy (_sy), osy (_osy), st (_st) {}
};
>Fix:
template <class _TTW>
struct SGBb 
{
	typedef _TTW _TW;
	_TW   sy;
	void* st;
	
	SGBb <_TW> (_TW _sy, void* _st)
		: sy (_sy), st (_st) {}
};

template <class _TW, class _TTWO>
struct SGBMb : public SGBb <_TW> 
{
	typedef _TTWO _TWO;
	_TWO osy;
	
	SGBMb <_TW, _TWO> (_TW _sy, _TWO _osy, void* _st)
		: osy (_osy)
	{
		sy = _sy;
		st = _st;
	}
};
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-c++src; name="error.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="error.cpp"

dGVtcGxhdGUgPGNsYXNzIF9UVFc+CnN0cnVjdCBTR0JiIAp7Cgl0eXBlZGVmIF9UVFcgX1RXOwoJ
X1RXICAgc3k7Cgl2b2lkKiBzdDsKCQoJU0dCYiA8X1RXPiAoX1RXIF9zeSwgdm9pZCogX3N0KQoJ
CTogc3kgKF9zeSksIHN0IChfc3QpIHt9Cn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgX1RXLCBjbGFzcyBf
VFRXTz4Kc3RydWN0IFNHQk1iIDogcHVibGljIFNHQmIgPF9UVz4gCnsKCXR5cGVkZWYgX1RUV08g
X1RXTzsKCV9UV08gb3N5OwoJCglTR0JNYiA8X1RXLCBfVFdPPiAoX1RXIF9zeSwgX1RXTyBfb3N5
LCB2b2lkKiBfc3QpCgkJOiBzeSAoX3N5KSwgb3N5IChfb3N5KSwgc3QgKF9zdCkge30KfTsK


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]