Hello! The new test finalization self tests fail wigh gcc < 4.3 due to the way need_finalization_p is defined:
template<typename T> static inline bool need_finalization_p () { #if GCC_VERSION >= 4003 return !__has_trivial_destructor (T); #else return true; #endif } It is obvious that checking for ASSERT_FALSE (need_finalization_p <test_struct> ()); will always fail. Checking need_finalization_p is meaningless with gcc < 4.3. 2016-06-13 Uros Bizjak <ubiz...@gmail.com> * ggc-tests.c (test_finalization): Only test need_finalization_p for GCC_VERSION >= 4003. Bootstrapped on x86_64-linux-gnu, CentOS 5.11. OK for mainline? Uros. diff --git a/gcc/ggc-tests.c b/gcc/ggc-tests.c index 48eac03..7f97231 100644 --- a/gcc/ggc-tests.c +++ b/gcc/ggc-tests.c @@ -190,8 +190,10 @@ int test_struct_with_dtor::dtor_call_count; static void test_finalization () { +#if GCC_VERSION >= 4003 ASSERT_FALSE (need_finalization_p <test_struct> ()); ASSERT_TRUE (need_finalization_p <test_struct_with_dtor> ()); +#endif /* Create some garbage. */ const int count = 10;