Files
codeql/cpp/ql/test/query-tests/jsf/4.13 Functions/AV Rule 114/test.cpp
2018-08-02 17:53:23 +01:00

53 lines
532 B
C++

class MyValue {
public:
MyValue(int _val) : val(_val) {};
private:
int val;
};
MyValue g1()
{
return MyValue(1); // GOOD
}
MyValue g2()
{
// BAD
}
MyValue g3()
{
throw MyValue(3); // GOOD
}
MyValue g4()
{
throw "fail"; // GOOD
}
MyValue g5(bool c)
{
if (c) throw "fail";
return MyValue(5); // GOOD
}
MyValue g6(bool c)
{
if (c) return MyValue(6);
throw "fail"; // GOOD
}
#define DONOTHING
MyValue g7(bool c)
{
if (c) return MyValue(7);
DONOTHING
DONOTHING
// BAD [the alert here is unfortunately placed]
}