CPP: Add test cases and renumber.

This commit is contained in:
Geoffrey White
2019-02-20 10:00:11 +00:00
parent 4e77f586da
commit 6a17ebbd1b
2 changed files with 33 additions and 13 deletions

View File

@@ -1,5 +1,6 @@
| test.cpp:12:2:12:12 | return ... | May return stack-allocated memory. |
| test.cpp:20:2:20:12 | return ... | May return stack-allocated memory. |
| test.cpp:73:2:73:12 | return ... | May return stack-allocated memory. |
| test.cpp:93:2:93:12 | return ... | May return stack-allocated memory. |
| test.cpp:100:2:100:19 | return ... | May return stack-allocated memory. |
| test.cpp:17:2:17:12 | return ... | May return stack-allocated memory. |
| test.cpp:25:2:25:12 | return ... | May return stack-allocated memory. |
| test.cpp:33:2:33:12 | return ... | May return stack-allocated memory. |
| test.cpp:92:2:92:12 | return ... | May return stack-allocated memory. |
| test.cpp:112:2:112:12 | return ... | May return stack-allocated memory. |
| test.cpp:119:2:119:19 | return ... | May return stack-allocated memory. |

View File

@@ -5,6 +5,11 @@ public:
int a, b;
};
MyClass makeMyClass()
{
return { 0, 0 }; // GOOD
}
MyClass *test1()
{
MyClass mc;
@@ -21,6 +26,14 @@ MyClass *test2()
}
MyClass *test3()
{
MyClass mc;
MyClass *ptr = &mc;
ptr = nullptr;
return ptr; // GOOD [FALSE POSITIVE]
}
MyClass *test4()
{
MyClass mc;
MyClass &ref = mc;
@@ -28,40 +41,46 @@ MyClass *test3()
return &ref; // BAD [NOT DETECTED]
}
int *test4()
MyClass &test5()
{
MyClass mc;
return mc; // BAD [NOT DETECTED]
}
int *test6()
{
MyClass mc;
return &(mc.a); // BAD [NOT DETECTED]
}
MyClass test6()
MyClass test7()
{
MyClass mc;
return mc; // GOOD
}
MyClass *test7()
MyClass *test8()
{
MyClass *mc = new MyClass;
return mc; // GOOD
}
MyClass test8()
MyClass test9()
{
return MyClass(); // GOOD
}
int test9()
int test10()
{
MyClass mc;
return mc.a; // GOOD
}
MyClass *test10()
MyClass *test11()
{
MyClass *ptr;
@@ -73,12 +92,12 @@ MyClass *test10()
return ptr; // BAD
}
MyClass *test11(MyClass *param)
MyClass *test12(MyClass *param)
{
return param; // GOOD
}
MyClass *test12()
MyClass *test13()
{
static MyClass mc;
MyClass &ref = mc;