¿Por qué el compilador no me advirtió sobre una declaración if vacía?

Estoy usando Keil uVision v4.74 y he habilitado la opción "Todas las advertencias".

Escribí lo siguienteintencional código:

if(condition matched)
{
 //do something
}

Cuando reconstruí mi proyecto, obtuve 0 errores, 0 advertencias.

Sin embargo, cuando yoaccidentalmente escribió:

if(condition matched);
{
 //do something
}

También recibí 0 errores, 0 advertencias.

Era casi imposible para mí descubrir que un pequeño; siguiendo la condición if fue la raíz del problema.

¿Por qué el compilador no lo trató como una advertencia y me informó?

Respuestas a la pregunta(2)

Su respuesta a la pregunta