После оптимизации переменные a и b исчезают, а return
возвращает значение выражения (2*n+1):
main(int n, char** v)
{
return
2*n+1;
}