Я получаю эти предупреждения анализатора, они из-за операторов goto?
--- Снип ---
Это потому, что strDesc определен перед меткой WarningMessage.
Таким образом, даже если вы не должны быть в этом случае (вторая ветвь IF после WarningMessage + strDesc не определена), вы должны объявить strDesc после WarningMessage.