The __is_pod() built-in returns false for pod class types that have base
    classes, which is allowed by c++0x.

Environment:
System: Linux cranium 2.6.18-8.el5xen #1 SMP Fri Jan 26 14:29:35 EST 2007
x86_64 x86_64 x86_64 GNU/Linux
Architecture: x86_64


host: x86_64-unknown-linux-gnu
build: x86_64-unknown-linux-gnu
target: x86_64-unknown-linux-gnu
configured with: /build/sebor/src/gcc-4.3.0/configure
--prefix=/nfs/devco/contrib/linux/gcc-4.3.0
--with-gmp=/nfs/devco/contrib/linux/gmp-4.2
--with-mpfr=/nfs/devco/contrib/linux/mpfr-2.3.1

How-To-Repeat:
    Compile the following code as g++ -std=gnu++0x t.cpp

    struct pod_t { };
    struct derived_pod_t : pod_t { };

    typedef char assert [__is_pod (derived_pod_t) ? 1 : -1];


------- Comment #1 from vitek at roguewave dot com  2008-07-16 18:54 -------
Fix:
    No known workaround.


-- 
           Summary: __is_pod() fails for some pod types
           Product: gcc
           Version: 3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: vitek at roguewave dot com
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36856

Reply via email to