The std::is_trivially_destructible<T> type trait incorrectly reports arrays of non-trivially-destructible types as being trivially destructible.
We're seeing this issue on both ARM-CGT 20.2.0 and C6000-ARM 8.3.8, and this minimal example should reproduce the issue:
#include <type_traits>
class C
{
~C() { /* non-trivial! */ }
};
static_assert(!std::is_trivially_destructible<C>::value, ""); // passes
static_assert(!std::is_trivially_destructible<C[5]>::value, ""); // fails (unexpectedly)
According to cppreference.com, both of these assertions should pass, which is also the case in GCC, for example.