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