Noted by kkysen (#1628 (comment)), and also demonstrated by #1571 (comment).
When an override_ty has to pass through an array-to-pointer cast, it is not propagated to the expression inside the cast. That means that, for example, if the outer expression/variable has type *const wchar_t and the inner array is [c_int; N], the wchar_t pointee type is not propagated to override the element type c_int of the original array. Instead, a cast to the pointer type gets added at the end.