Finding end of macro call

Hi all,

For my checker I need to reach the semicolon after VarDecl statement ( For example: int a = 1 /*Need to get here*/; ). For ordinary variables I used getLocWithOffset and Lexer::getRawToken, but this approach didn't work with macro calls.
(For example: int a = macro_call(Arg) /*Need to get here*/; ). In this situation I never reach the semicolon token. Is there a fast way to get SourceLocation of semicolon after macro call, considering the fact I am not interested in macro expansion.

Thanks,
Kirill.