Yo quitaría lo de static, puesto que es una variable global normal no estática. Si fuera estática, su valor no se modificaría en todo el programa.
Quizás al optimizar, el compilador ve que la tienes declarada como estática y la hace constante a 0 e ignora todas las modificaciones que le hagas en el programa.