Summary: `__cxa_throw` signature didn't match C++ ABI (see 2.4.3 in http://refspecs.linuxfoundation.org/abi-eh-1.22.html), gcc 4.9 was complaining.
Test Plan: fbconfig -r folly && fbmake opt -j32
Reviewed By: soren@fb.com
Subscribers: folly-diffs@
FB internal diff:
D1760492
Tasks:
5908365
Signature: t1:
1760492:
1420251038:
6d04683f96ac889ff348ca0485420c975819b90b
extern "C" {
FOLLY_NORETURN void __cxa_throw(void* thrownException,
extern "C" {
FOLLY_NORETURN void __cxa_throw(void* thrownException,
- std::type_info* type, void (*destructor)(void));
+ std::type_info* type,
+ void (*destructor)(void*));
void* __cxa_begin_catch(void* excObj);
FOLLY_NORETURN void __cxa_rethrow(void);
void __cxa_end_catch(void);
void* __cxa_begin_catch(void* excObj);
FOLLY_NORETURN void __cxa_rethrow(void);
void __cxa_end_catch(void);
pthread_once_t initialized = PTHREAD_ONCE_INIT;
extern "C" {
pthread_once_t initialized = PTHREAD_ONCE_INIT;
extern "C" {
-FOLLY_NORETURN typedef void (*CxaThrowType)(void*, std::type_info*,
- void (*)(void));
+FOLLY_NORETURN typedef void (*CxaThrowType)(void*,
+ std::type_info*,
+ void (*)(void*));
typedef void* (*CxaBeginCatchType)(void*);
FOLLY_NORETURN typedef void (*CxaRethrowType)(void);
typedef void (*CxaEndCatchType)(void);
typedef void* (*CxaBeginCatchType)(void*);
FOLLY_NORETURN typedef void (*CxaRethrowType)(void);
typedef void (*CxaEndCatchType)(void);
-void __cxa_throw(void* thrownException, std::type_info* type,
- void (*destructor)(void)) {
+void __cxa_throw(void* thrownException,
+ std::type_info* type,
+ void (*destructor)(void*)) {
addActiveException();
orig_cxa_throw(thrownException, type, destructor);
}
addActiveException();
orig_cxa_throw(thrownException, type, destructor);
}