This was a mistake from e7300e75b51a7e7d4e81975b4be7a6c65f9a8286 (https://reviews.llvm.org/D133574) caused by us accidentally tracking an older copy of the C DR list for DR496. The text in https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2396.htm#dr_496 makes it clear that subobjects are allowed, which means member and array access expressions are allowed.
This backs out the changes from the previous commit that relate to this diagnostic.
Minor nit: maybe rename from ext2 to, say, offset_to_subobject to avoid implying it is an extension.