https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65168
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- The diagnostic needs rewording, &r is not the address of a reference, it's the address of whatever the reference is bound to. Please don't add diagnostics that talk about something that has no meaning in the language. It's not really relevant that r is a reference, &r takes the address of an object, so must be non-zero because you can't have an object with address zero.