Re: [linux-audio-dev] [ot] [rant] gcc, you let me down one time too many

From: Clemens Ladisch <clemens@email-addr-hidden>
Date: Mon Jun 06 2005 - 10:37:08 EEST

Tim Goetze wrote:
> Enter gcc version 3, which drops multi-line inline assembly support.

The following compiles fine with gcc 3.3.3:

void f()
{
        __asm__ ("nop\n"
                 "nop\n");
}

> Enter gcc version 3, moving the vtable member to memory offset 0 of a
> derived type even if the base type is in C which doesn't know about
> vtables.

There are no memory layout guarantees for non-POD types.

If your external functions use the correct type (i.e., a pointer to
the base type), the compiler will automatically cast class pointers in
the correct way. Otherwise, you have to cast to the base type
yourself whenever you 'export' a pointer.

> Enter gcc version 4, which requires the templated types' constructor
> code be rewritten in the most nonsensical, misleading and ugly fashion
> possibly imaginable this side of Hungary and Redmond, WA, according to
> our (now not so very young anymore) hero.

Could you show some details? Probably the old code wasn't quite
correct according to The Standard(TM).

Regards,
Clemens
Received on Mon Jun 6 12:15:09 2005

This archive was generated by hypermail 2.1.8 : Mon Jun 06 2005 - 12:15:09 EEST