public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: virtual inheritance: optimization for empty objects
       [not found] ` <nms.mail.egcs/orn21tueds.fsf@araguaia.dcc.unicamp.br>
@ 1999-03-14 11:01   ` Marc Girod
  1999-03-14 11:15     ` Alexandre Oliva
                       ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Marc Girod @ 1999-03-14 11:01 UTC (permalink / raw)
  To: Alexandre Oliva; +Cc: egcs

>>>>> "AO" == Alexandre Oliva <oliva@dcc.unicamp.br> writes:

AO> On Mar  4, 1999, Alexander Schiemann <aschiem@count.math.uni-sb.de> wrote:
>> deriving a class B from class A without adding a data-member
>> does not increase the size.
>> But with virtual inheritance egcs-1.1.1 does not take advantage
>> of such a situation.

AO> The latest snapshots will, if you compile with -fnew-abi.

I am very interested, but trying with a small example on 19990314, I get:

sizeof> c++ -o foo -fnew-abi foo.C
foo.C: In function `int main()':
foo.C:36: `cout' undeclared in namespace `std'
foo.C:46: `endl' undeclared in namespace `std'

I used std::cout and std::endl. I works without -fnew-abi.

I guess I need to rebuild the libstdc++, or what exactly should I
rebuild?... Are there instructions?
Best Regards!

Marc

-- 
Marc Girod                Hiomo 5/1          Voice:  +358-9-511 23746
Nokia Telecommunications  P.O. Box 320       Mobile: +358-40-569 7954
NWS/NMS/NMS for Data      00045 NOKIA Group  Fax:    +358-9-511 23580
                          Finland            marc.girod@ntc.nokia.com

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
  1999-03-14 11:01   ` virtual inheritance: optimization for empty objects Marc Girod
@ 1999-03-14 11:15     ` Alexandre Oliva
       [not found]       ` < orlngz3n0r.fsf@dcc.unicamp.br >
  1999-03-31 23:46       ` Alexandre Oliva
       [not found]     ` < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com >
  1999-03-31 23:46     ` Marc Girod
  2 siblings, 2 replies; 20+ messages in thread
From: Alexandre Oliva @ 1999-03-14 11:15 UTC (permalink / raw)
  To: Marc Girod; +Cc: egcs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 718 bytes --]

On Mar 14, 1999, Marc Girod <girod@stybba.ntc.nokia.com> wrote:

>>>>>> "AO" == Alexandre Oliva <oliva@dcc.unicamp.br> writes:
sizeof> c++ -o foo -fnew-abi foo.C
> foo.C: In function `int main()':
> foo.C:36: `cout' undeclared in namespace `std'
> foo.C:46: `endl' undeclared in namespace `std'

> I guess I need to rebuild the libstdc++

Yup

> Are there instructions?

Not that I know of.  I think it's not supposed to be widely used
before it becomes official, when it will be enabled by default.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org,computer.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Instituto de Computação, Universidade Estadual de Campinas, SP, Brasil

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
       [not found]     ` < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com >
@ 1999-03-14 11:45       ` Joe Buck
  1999-03-31 23:46         ` Joe Buck
  1999-03-14 11:52       ` Martin v. Loewis
  1 sibling, 1 reply; 20+ messages in thread
From: Joe Buck @ 1999-03-14 11:45 UTC (permalink / raw)
  To: Marc Girod; +Cc: oliva, egcs

> sizeof> c++ -o foo -fnew-abi foo.C
> foo.C: In function `int main()':
> foo.C:36: `cout' undeclared in namespace `std'
> foo.C:46: `endl' undeclared in namespace `std'
> 
> I used std::cout and std::endl. I works without -fnew-abi.

Does -fnew-abi turn on -fhonor-std?  If it does, you might try
-fno-honor-std in addition to -fnew-abi.

(no-honor-std is the hack that ignores references to the std namespace,
so that standard C++ programs can work even though libstdc++ isn't
putting the streams in the std namespace).


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
       [not found]     ` < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com >
  1999-03-14 11:45       ` Joe Buck
@ 1999-03-14 11:52       ` Martin v. Loewis
  1999-03-31 23:46         ` Martin v. Loewis
  1 sibling, 1 reply; 20+ messages in thread
From: Martin v. Loewis @ 1999-03-14 11:52 UTC (permalink / raw)
  To: girod; +Cc: oliva, egcs

> foo.C:36: `cout' undeclared in namespace `std'
> foo.C:46: `endl' undeclared in namespace `std'
> 
> I used std::cout and std::endl. I works without -fnew-abi.
> 
> I guess I need to rebuild the libstdc++, or what exactly should I
> rebuild?... 

You need much more than that ... you need to rewrite libstdc++. With
-fnew-abi, std is a namespace. So if cout is not in namespace std
(which it isn't in libstdc++ v2), it is an error to refer to it via
std::cout.

You can try arrange libstdc++ to use it consistently, either by
putting the library in std::, or by removing the extra qualifiers.  As
an alternative, you could try libstdc++ v3, which gets this right.

Regards,
Martin

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
       [not found]       ` < orlngz3n0r.fsf@dcc.unicamp.br >
@ 1999-03-15  3:44         ` F. Heitkamp
       [not found]           ` < 199903151145.GAA14544@pc1.fred.org >
  1999-03-31 23:46           ` F. Heitkamp
  0 siblings, 2 replies; 20+ messages in thread
From: F. Heitkamp @ 1999-03-15  3:44 UTC (permalink / raw)
  To: oliva; +Cc: girod, egcs

   Mailing-List: contact egcs-help@egcs.cygnus.com; run by ezmlm
   Precedence: bulk
   Sender: owner-egcs@egcs.cygnus.com
   Cc: egcs@egcs.cygnus.com
   Content-Type: text/plain; charset=iso-8859-1
   From: Alexandre Oliva <oliva@dcc.unicamp.br>
   Date: 14 Mar 1999 16:10:44 -0300
   User-Agent: Gnus/5.07008 (Pterodactyl Gnus v0.80) XEmacs/20.4 (Emerald)

   On Mar 14, 1999, Marc Girod <girod@stybba.ntc.nokia.com> wrote:


   > I guess I need to rebuild the libstdc++

   Yup

   > Are there instructions?

   Not that I know of.  I think it's not supposed to be widely used
   before it becomes official, when it will be enabled by default.

Which libstdc++ is better to use? The newest broken one or the oldest
incompatible one?  Or even something in between?

Fred

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
       [not found]           ` < 199903151145.GAA14544@pc1.fred.org >
@ 1999-03-15 16:07             ` Martin v. Loewis
  1999-03-31 23:46               ` Martin v. Loewis
  0 siblings, 1 reply; 20+ messages in thread
From: Martin v. Loewis @ 1999-03-15 16:07 UTC (permalink / raw)
  To: fheitka; +Cc: oliva, girod, egcs

> Which libstdc++ is better to use? The newest broken one or the oldest
> incompatible one?  Or even something in between?

That very much depends on what you want to use it for. If you want to
develop applications, use the one that comes with the compiler. 

If you want to check standards-compliance, report bugs, and provide
fixes, by any means, please use the newest broken one :-)

Regards,
Martin

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
  1999-03-14 11:45       ` Joe Buck
@ 1999-03-31 23:46         ` Joe Buck
  0 siblings, 0 replies; 20+ messages in thread
From: Joe Buck @ 1999-03-31 23:46 UTC (permalink / raw)
  To: Marc Girod; +Cc: oliva, egcs

> sizeof> c++ -o foo -fnew-abi foo.C
> foo.C: In function `int main()':
> foo.C:36: `cout' undeclared in namespace `std'
> foo.C:46: `endl' undeclared in namespace `std'
> 
> I used std::cout and std::endl. I works without -fnew-abi.

Does -fnew-abi turn on -fhonor-std?  If it does, you might try
-fno-honor-std in addition to -fnew-abi.

(no-honor-std is the hack that ignores references to the std namespace,
so that standard C++ programs can work even though libstdc++ isn't
putting the streams in the std namespace).



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
  1999-03-14 11:01   ` virtual inheritance: optimization for empty objects Marc Girod
  1999-03-14 11:15     ` Alexandre Oliva
       [not found]     ` < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com >
@ 1999-03-31 23:46     ` Marc Girod
  2 siblings, 0 replies; 20+ messages in thread
From: Marc Girod @ 1999-03-31 23:46 UTC (permalink / raw)
  To: Alexandre Oliva; +Cc: egcs

>>>>> "AO" == Alexandre Oliva <oliva@dcc.unicamp.br> writes:

AO> On Mar  4, 1999, Alexander Schiemann <aschiem@count.math.uni-sb.de> wrote:
>> deriving a class B from class A without adding a data-member
>> does not increase the size.
>> But with virtual inheritance egcs-1.1.1 does not take advantage
>> of such a situation.

AO> The latest snapshots will, if you compile with -fnew-abi.

I am very interested, but trying with a small example on 19990314, I get:

sizeof> c++ -o foo -fnew-abi foo.C
foo.C: In function `int main()':
foo.C:36: `cout' undeclared in namespace `std'
foo.C:46: `endl' undeclared in namespace `std'

I used std::cout and std::endl. I works without -fnew-abi.

I guess I need to rebuild the libstdc++, or what exactly should I
rebuild?... Are there instructions?
Best Regards!

Marc

-- 
Marc Girod                Hiomo 5/1          Voice:  +358-9-511 23746
Nokia Telecommunications  P.O. Box 320       Mobile: +358-40-569 7954
NWS/NMS/NMS for Data      00045 NOKIA Group  Fax:    +358-9-511 23580
                          Finland            marc.girod@ntc.nokia.com

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
  1999-03-14 11:15     ` Alexandre Oliva
       [not found]       ` < orlngz3n0r.fsf@dcc.unicamp.br >
@ 1999-03-31 23:46       ` Alexandre Oliva
  1 sibling, 0 replies; 20+ messages in thread
From: Alexandre Oliva @ 1999-03-31 23:46 UTC (permalink / raw)
  To: Marc Girod; +Cc: egcs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 719 bytes --]

On Mar 14, 1999, Marc Girod <girod@stybba.ntc.nokia.com> wrote:

>>>>>> "AO" == Alexandre Oliva <oliva@dcc.unicamp.br> writes:
sizeof> c++ -o foo -fnew-abi foo.C
> foo.C: In function `int main()':
> foo.C:36: `cout' undeclared in namespace `std'
> foo.C:46: `endl' undeclared in namespace `std'

> I guess I need to rebuild the libstdc++

Yup

> Are there instructions?

Not that I know of.  I think it's not supposed to be widely used
before it becomes official, when it will be enabled by default.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org,computer.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Instituto de Computação, Universidade Estadual de Campinas, SP, Brasil


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
  1999-03-14 11:52       ` Martin v. Loewis
@ 1999-03-31 23:46         ` Martin v. Loewis
  0 siblings, 0 replies; 20+ messages in thread
From: Martin v. Loewis @ 1999-03-31 23:46 UTC (permalink / raw)
  To: girod; +Cc: oliva, egcs

> foo.C:36: `cout' undeclared in namespace `std'
> foo.C:46: `endl' undeclared in namespace `std'
> 
> I used std::cout and std::endl. I works without -fnew-abi.
> 
> I guess I need to rebuild the libstdc++, or what exactly should I
> rebuild?... 

You need much more than that ... you need to rewrite libstdc++. With
-fnew-abi, std is a namespace. So if cout is not in namespace std
(which it isn't in libstdc++ v2), it is an error to refer to it via
std::cout.

You can try arrange libstdc++ to use it consistently, either by
putting the library in std::, or by removing the extra qualifiers.  As
an alternative, you could try libstdc++ v3, which gets this right.

Regards,
Martin

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
  1999-03-15  3:44         ` F. Heitkamp
       [not found]           ` < 199903151145.GAA14544@pc1.fred.org >
@ 1999-03-31 23:46           ` F. Heitkamp
  1 sibling, 0 replies; 20+ messages in thread
From: F. Heitkamp @ 1999-03-31 23:46 UTC (permalink / raw)
  To: oliva; +Cc: girod, egcs

   Mailing-List: contact egcs-help@egcs.cygnus.com; run by ezmlm
   Precedence: bulk
   Sender: owner-egcs@egcs.cygnus.com
   Cc: egcs@egcs.cygnus.com
   Content-Type: text/plain; charset=iso-8859-1
   From: Alexandre Oliva <oliva@dcc.unicamp.br>
   Date: 14 Mar 1999 16:10:44 -0300
   User-Agent: Gnus/5.07008 (Pterodactyl Gnus v0.80) XEmacs/20.4 (Emerald)

   On Mar 14, 1999, Marc Girod <girod@stybba.ntc.nokia.com> wrote:


   > I guess I need to rebuild the libstdc++

   Yup

   > Are there instructions?

   Not that I know of.  I think it's not supposed to be widely used
   before it becomes official, when it will be enabled by default.

Which libstdc++ is better to use? The newest broken one or the oldest
incompatible one?  Or even something in between?

Fred


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
  1999-03-15 16:07             ` Martin v. Loewis
@ 1999-03-31 23:46               ` Martin v. Loewis
  0 siblings, 0 replies; 20+ messages in thread
From: Martin v. Loewis @ 1999-03-31 23:46 UTC (permalink / raw)
  To: fheitka; +Cc: oliva, girod, egcs

> Which libstdc++ is better to use? The newest broken one or the oldest
> incompatible one?  Or even something in between?

That very much depends on what you want to use it for. If you want to
develop applications, use the one that comes with the compiler. 

If you want to check standards-compliance, report bugs, and provide
fixes, by any means, please use the newest broken one :-)

Regards,
Martin

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
  1999-03-04 13:39 ` Alexandre Oliva
@ 1999-03-31 23:46   ` Alexandre Oliva
  0 siblings, 0 replies; 20+ messages in thread
From: Alexandre Oliva @ 1999-03-31 23:46 UTC (permalink / raw)
  To: Alexander Schiemann; +Cc: egcs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 536 bytes --]

On Mar  4, 1999, Alexander Schiemann <aschiem@count.math.uni-sb.de> wrote:

> deriving a class B from class A without adding a data-member
> does not increase the size.
> But with virtual inheritance egcs-1.1.1 does not take advantage
> of such a situation.

The latest snapshots will, if you compile with -fnew-abi.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org,computer.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Instituto de Computação, Universidade Estadual de Campinas, SP, Brasil


^ permalink raw reply	[flat|nested] 20+ messages in thread

* virtual inheritance: optimization for empty objects
  1999-03-04 12:56 Alexander Schiemann
@ 1999-03-31 23:46 ` Alexander Schiemann
  0 siblings, 0 replies; 20+ messages in thread
From: Alexander Schiemann @ 1999-03-31 23:46 UTC (permalink / raw)
  To: egcs



^ permalink raw reply	[flat|nested] 20+ messages in thread

* virtual inheritance: optimization for empty objects
  1999-03-04 13:05 Alexander Schiemann
  1999-03-04 13:39 ` Alexandre Oliva
@ 1999-03-31 23:46 ` Alexander Schiemann
  1 sibling, 0 replies; 20+ messages in thread
From: Alexander Schiemann @ 1999-03-31 23:46 UTC (permalink / raw)
  To: egcs

Hi,

deriving a class B from class A without adding a data-member
does not increase the size.
But with virtual inheritance egcs-1.1.1 does not take advantage
of such a situation. Of course, some virtual pointer had to
be added. But we need only the locations of non-empty blocks
of data assigned to some virtual bases. 
The easiest example is the following multiple derivation:

struct A{
int a; // some data
};

struct B1:virtual A{}; // no additional data

struct B2:virtual A{}; // no additional data

struct C:public B1,public B2{};

We get the sizes:
sizeof A=4
sizeof B1=8
sizeof B2=8
sizeof C=12

So we have two redundant virtual pointers in C.
We could let B1 and B2 overlap in C (both consist of the
same virtual pointer).
With additional levels of virtual bases the possible gain
increases quickly. Even if only some of the derived classes do not
add data it seems possible (though not entirely trivial) to
get rid of many of the virtual pointers.

I think that quite frequently abstract classes consist only of 
virtual functions. I encountered this situation modeling hierarchies
of mathematical objects (that have a partial order of generalization).
In this context every base-class occurs once in an object and only the
lowest base-class and the most derived classes have some data. 
 
Now I would like to know
- does this suggestion conform with the standard (two base subobjects
  having the same address)? I checked it, but perhaps
  I missed some requirement.
- are there compilers that implement this kind of layout?


Thanks
Alexander Schiemann

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
  1999-03-06 17:09 ` Jason Merrill
@ 1999-03-31 23:46   ` Jason Merrill
  0 siblings, 0 replies; 20+ messages in thread
From: Jason Merrill @ 1999-03-31 23:46 UTC (permalink / raw)
  To: Alexander Schiemann; +Cc: egcs

>>>>> Alexander Schiemann <aschiem@count.math.uni-sb.de> writes:

 > - does this suggestion conform with the standard (two base subobjects
 >   having the same address)? I checked it, but perhaps
 >   I missed some requirement.

Yes.  Only base subobjects of the same type are required to have different
addresses.

 > - are there compilers that implement this kind of layout?

I don't know.  IBM's may.  They have a patent on having a vbase with no data
members share space with a derived class, which would not cover this
optimization; but it's in the same area, so they may have thought of it.

I hate software patents.

Jason

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
       [not found] <199903042105.WAA19132.cygnus.egcs@count.math.uni-sb.de>
@ 1999-03-06 17:09 ` Jason Merrill
  1999-03-31 23:46   ` Jason Merrill
  0 siblings, 1 reply; 20+ messages in thread
From: Jason Merrill @ 1999-03-06 17:09 UTC (permalink / raw)
  To: Alexander Schiemann; +Cc: egcs

>>>>> Alexander Schiemann <aschiem@count.math.uni-sb.de> writes:

 > - does this suggestion conform with the standard (two base subobjects
 >   having the same address)? I checked it, but perhaps
 >   I missed some requirement.

Yes.  Only base subobjects of the same type are required to have different
addresses.

 > - are there compilers that implement this kind of layout?

I don't know.  IBM's may.  They have a patent on having a vbase with no data
members share space with a derived class, which would not cover this
optimization; but it's in the same area, so they may have thought of it.

I hate software patents.

Jason

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: virtual inheritance: optimization for empty objects
  1999-03-04 13:05 Alexander Schiemann
@ 1999-03-04 13:39 ` Alexandre Oliva
  1999-03-31 23:46   ` Alexandre Oliva
  1999-03-31 23:46 ` Alexander Schiemann
  1 sibling, 1 reply; 20+ messages in thread
From: Alexandre Oliva @ 1999-03-04 13:39 UTC (permalink / raw)
  To: Alexander Schiemann; +Cc: egcs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 535 bytes --]

On Mar  4, 1999, Alexander Schiemann <aschiem@count.math.uni-sb.de> wrote:

> deriving a class B from class A without adding a data-member
> does not increase the size.
> But with virtual inheritance egcs-1.1.1 does not take advantage
> of such a situation.

The latest snapshots will, if you compile with -fnew-abi.

-- 
Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org,computer.org}
oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org}
Instituto de Computação, Universidade Estadual de Campinas, SP, Brasil

^ permalink raw reply	[flat|nested] 20+ messages in thread

* virtual inheritance: optimization for empty objects
@ 1999-03-04 13:05 Alexander Schiemann
  1999-03-04 13:39 ` Alexandre Oliva
  1999-03-31 23:46 ` Alexander Schiemann
  0 siblings, 2 replies; 20+ messages in thread
From: Alexander Schiemann @ 1999-03-04 13:05 UTC (permalink / raw)
  To: egcs

Hi,

deriving a class B from class A without adding a data-member
does not increase the size.
But with virtual inheritance egcs-1.1.1 does not take advantage
of such a situation. Of course, some virtual pointer had to
be added. But we need only the locations of non-empty blocks
of data assigned to some virtual bases. 
The easiest example is the following multiple derivation:

struct A{
int a; // some data
};

struct B1:virtual A{}; // no additional data

struct B2:virtual A{}; // no additional data

struct C:public B1,public B2{};

We get the sizes:
sizeof A=4
sizeof B1=8
sizeof B2=8
sizeof C=12

So we have two redundant virtual pointers in C.
We could let B1 and B2 overlap in C (both consist of the
same virtual pointer).
With additional levels of virtual bases the possible gain
increases quickly. Even if only some of the derived classes do not
add data it seems possible (though not entirely trivial) to
get rid of many of the virtual pointers.

I think that quite frequently abstract classes consist only of 
virtual functions. I encountered this situation modeling hierarchies
of mathematical objects (that have a partial order of generalization).
In this context every base-class occurs once in an object and only the
lowest base-class and the most derived classes have some data. 
 
Now I would like to know
- does this suggestion conform with the standard (two base subobjects
  having the same address)? I checked it, but perhaps
  I missed some requirement.
- are there compilers that implement this kind of layout?


Thanks
Alexander Schiemann

^ permalink raw reply	[flat|nested] 20+ messages in thread

* virtual inheritance: optimization for empty objects
@ 1999-03-04 12:56 Alexander Schiemann
  1999-03-31 23:46 ` Alexander Schiemann
  0 siblings, 1 reply; 20+ messages in thread
From: Alexander Schiemann @ 1999-03-04 12:56 UTC (permalink / raw)
  To: egcs



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~1999-03-31 23:46 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <nms.mail.egcs/199903042105.WAA19132@count.math.uni-sb.de>
     [not found] ` <nms.mail.egcs/orn21tueds.fsf@araguaia.dcc.unicamp.br>
1999-03-14 11:01   ` virtual inheritance: optimization for empty objects Marc Girod
1999-03-14 11:15     ` Alexandre Oliva
     [not found]       ` < orlngz3n0r.fsf@dcc.unicamp.br >
1999-03-15  3:44         ` F. Heitkamp
     [not found]           ` < 199903151145.GAA14544@pc1.fred.org >
1999-03-15 16:07             ` Martin v. Loewis
1999-03-31 23:46               ` Martin v. Loewis
1999-03-31 23:46           ` F. Heitkamp
1999-03-31 23:46       ` Alexandre Oliva
     [not found]     ` < 1yk8wjdhf7.fsf@sinkku.ntc.nokia.com >
1999-03-14 11:45       ` Joe Buck
1999-03-31 23:46         ` Joe Buck
1999-03-14 11:52       ` Martin v. Loewis
1999-03-31 23:46         ` Martin v. Loewis
1999-03-31 23:46     ` Marc Girod
     [not found] <199903042105.WAA19132.cygnus.egcs@count.math.uni-sb.de>
1999-03-06 17:09 ` Jason Merrill
1999-03-31 23:46   ` Jason Merrill
1999-03-04 13:05 Alexander Schiemann
1999-03-04 13:39 ` Alexandre Oliva
1999-03-31 23:46   ` Alexandre Oliva
1999-03-31 23:46 ` Alexander Schiemann
  -- strict thread matches above, loose matches on Subject: below --
1999-03-04 12:56 Alexander Schiemann
1999-03-31 23:46 ` Alexander Schiemann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).