Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Знаете, что __int64 может быть именем переменной?
int __identifier(__int64);
int TestMisplacedPrgama()
{
do {} while((0,0)
#pragma warning(pop)
);
return 1;
}
namespace testOrder2
{
...
__w64 const static MyInt wa = 1;
const __w64 static MyInt wa2 = 1;
const static __w64 MyInt wa3 = 1;
const static MyInt __w64 wa4 = 1;
static const MyInt __w64 wb = 1;
volatile static __w64 MyInt wc = 1;
static __w64 volatile MyInt wd = 1;
static MyInt __w64 volatile we = 1;
const __w64 MyInt static wf = 1;
const MyInt __w64 static wg = 1;
__w64 MyInt static volatile wh = 1;
__w64 extern MyInt volatile waa = 1;
MyInt extern volatile __w64 wab = 1;
}
void TestThrow()
{
int a;
(a = 10, throw);
}
Знаете, что __int64 может быть именем переменной?Тот, кто использует имена, содержащие __ или начинающиеся с _<Capital> — ССЗБ, потому как lib.global.names/1. Кстати, ваш анализатор может выдавать предупреждения в этих случаях.
Как добавить новое диагностическое правило в PVS-Studio? Будни разработчиков…