can be safe, except when dereferencing a null pointer