I could narrow down to a simple repro listed below. See [1].
In this example, the variable fence in the expression "fence = fence + 1" in the CATCH block and the other same expression after CATCH_END is marked as not recognized.
If I replace TRY2 by TRY in the tmain code then it will work fine.
Let me know if it repro'es for you.
Thanks,
Rog+?rio Ramos
Microsoft
[1]
#include "stdafx.h"
#define TRY \ try {
#define TRY2 TRY
#define CATCH \ } \ catch (...) \ {
#define CATCH_END \ }
int _tmain(int argc, _TCHAR* argv[])
{
int fence = 0;
TRY2
{
fence = fence + 1; // recognized
}
CATCH
{
fence = fence + 1; // Not recognized
}
CATCH_END
fence = fence + 1; // Not recognized
return 0;
}