Fix reserved name check.

According to the standard, reserved names that either begin with underscore
followed by a capital letter and a capital letter, contain 2 consecutive
underscores, or are part of the reserved keywords.

In addition, the check was not working for function-like macros.