If you mean with "crashing" not having enough video memory, then no, this is not caused by the compiler. The compiler translates C to machine language. It has nothing to do with your video memory.

However, I've meanwhile looked through some developer forums and it seems that E_OUTOFMEMORY can also happen when in fact video memory is still available. The object creation failed then for a different reason, for instance when the required format is not available or the system memory runs low. So we can not trust that E_OUTOFMEMORY always means that the 4 GB video memory are used up.