This fixes a regression exposed by r307795 in which the level of a comment line
between '}' and a preprocessor directive is incorrectly set as the level of the
line before the '}'. In effect, this:
int f(int i) { int j = i; return i + j; } // comment #ifdef A #endif
was formatted as:
int f(int i) { int j = i; return i + j; } // comment #ifdef A #endif
What happens if you instead change the Line->Level = InitialLevel; statement from below to before this line? That seems like the more intuitively correct fix.