#ifdef __cplusplus namespace __cxxabiv1 { typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(void *);
extern "C" { #endif // Allocate array. void* __cxa_vec_new(size_t __element_count, size_t __element_size, size_t __padding_size, __cxa_cdtor_type constructor, __cxa_cdtor_type destructor); When the above snippet from cxxabi.h gets parsed as "C" then __cxa_cdtor_type won't be defined, the declaration needs to move out of the #ifdef to inside the extern "C" part. -- Summary: cxxabi.h __cxa_cdtor_type not declared when included from "C" Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jaco at kroon dot co dot za GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29095