Here's why:
* The "a" in "warm" is a short vowel sound. It sounds like the "a" in "cat" or "man".
* Long vowel sounds are usually indicated by a double vowel or a vowel followed by a silent "e". For example, "warm" would need to be spelled "warme" to have a long "a" sound.
Therefore, "warm" has a short "a" sound.