const &y = x;
Это не ссылка без типа, а синтаксически неверный код, который не пройдет трансляцию за пределами GCC.
Т.к. ты пользуешься GCC, тебе стоит принять во внимание то, что он не соблюдает стандарт в некоторых случаях.
В частности - в данном случае.
В C++ нет типа по умолчанию, в отличие от С, где типом по умолчанию является
int
. Если в C код
const y = x
является синтаксически верным и подразумевает
const int y = x
, то в C++ этот же код является уже синтаксически неверным и
не пройдет трансляцию.
GCC в твоем коде отходит от стандарта C++ в пользу поведения как в C.