Skip to content

Commit 6a17ebb

Browse files
committed
CPP: Add test cases and renumber.
1 parent 4e77f58 commit 6a17ebb

File tree

2 files changed

+33
-13
lines changed

2 files changed

+33
-13
lines changed
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
| test.cpp:12:2:12:12 | return ... | May return stack-allocated memory. |
2-
| test.cpp:20:2:20:12 | return ... | May return stack-allocated memory. |
3-
| test.cpp:73:2:73:12 | return ... | May return stack-allocated memory. |
4-
| test.cpp:93:2:93:12 | return ... | May return stack-allocated memory. |
5-
| test.cpp:100:2:100:19 | return ... | May return stack-allocated memory. |
1+
| test.cpp:17:2:17:12 | return ... | May return stack-allocated memory. |
2+
| test.cpp:25:2:25:12 | return ... | May return stack-allocated memory. |
3+
| test.cpp:33:2:33:12 | return ... | May return stack-allocated memory. |
4+
| test.cpp:92:2:92:12 | return ... | May return stack-allocated memory. |
5+
| test.cpp:112:2:112:12 | return ... | May return stack-allocated memory. |
6+
| test.cpp:119:2:119:19 | return ... | May return stack-allocated memory. |

cpp/ql/test/query-tests/Likely Bugs/Memory Management/ReturnStackAllocatedMemory/test.cpp

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ class MyClass
55
int a, b;
66
};
77

8+
MyClass makeMyClass()
9+
{
10+
return { 0, 0 }; // GOOD
11+
}
12+
813
MyClass *test1()
914
{
1015
MyClass mc;
@@ -21,47 +26,61 @@ MyClass *test2()
2126
}
2227

2328
MyClass *test3()
29+
{
30+
MyClass mc;
31+
MyClass *ptr = &mc;
32+
ptr = nullptr;
33+
return ptr; // GOOD [FALSE POSITIVE]
34+
}
35+
36+
MyClass *test4()
2437
{
2538
MyClass mc;
2639
MyClass &ref = mc;
2740

2841
return &ref; // BAD [NOT DETECTED]
2942
}
3043

31-
int *test4()
44+
MyClass &test5()
45+
{
46+
MyClass mc;
47+
return mc; // BAD [NOT DETECTED]
48+
}
49+
50+
int *test6()
3251
{
3352
MyClass mc;
3453

3554
return &(mc.a); // BAD [NOT DETECTED]
3655
}
3756

38-
MyClass test6()
57+
MyClass test7()
3958
{
4059
MyClass mc;
4160

4261
return mc; // GOOD
4362
}
4463

45-
MyClass *test7()
64+
MyClass *test8()
4665
{
4766
MyClass *mc = new MyClass;
4867

4968
return mc; // GOOD
5069
}
5170

52-
MyClass test8()
71+
MyClass test9()
5372
{
5473
return MyClass(); // GOOD
5574
}
5675

57-
int test9()
76+
int test10()
5877
{
5978
MyClass mc;
6079

6180
return mc.a; // GOOD
6281
}
6382

64-
MyClass *test10()
83+
MyClass *test11()
6584
{
6685
MyClass *ptr;
6786

@@ -73,12 +92,12 @@ MyClass *test10()
7392
return ptr; // BAD
7493
}
7594

76-
MyClass *test11(MyClass *param)
95+
MyClass *test12(MyClass *param)
7796
{
7897
return param; // GOOD
7998
}
8099

81-
MyClass *test12()
100+
MyClass *test13()
82101
{
83102
static MyClass mc;
84103
MyClass &ref = mc;

0 commit comments

Comments
 (0)