gets

¿Por qué es la función gets tan peligrosa que no debe ser utilizada?

Cuando intento compilar código C que usa la función gets() con GCC, Entiendo esto aviso: (.text + 0x34): advertencia ... por qué existe tal advertencia sobre el uso de gets()? Si gets() es tan peligroso entonces ¿por qué no podemos eliminarlo?