https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107735
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #2) > I wonder if this is because doing > constexpr const int *v1 = &array[3]; > > is valid and well defined. It's not, but &array.data()[3] is. I agree that's probably the reason for the different diagnostics.