C++: Add a test of default constructors etc.

This commit is contained in:
Geoffrey White
2020-06-16 11:27:15 +01:00
parent c196ea24b2
commit d565cfc58e
2 changed files with 95 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
int source();
void sink(...) {};
class StructLikeClass {
public:
StructLikeClass(int _v = 0) : v(_v) {} // Constructor
int v;
};
void test_structlikeclass()
{
{
StructLikeClass s1(1);
StructLikeClass s2 = 1;
StructLikeClass s3(s1);
StructLikeClass s4;
s4 = 1;
sink(s1);
sink(s2);
sink(s3);
sink(s4);
}
{
StructLikeClass s1(source());
StructLikeClass s2 = source();
StructLikeClass s3(s1);
StructLikeClass s4;
s4 = source();
sink(s1); // tainted [NOT DETECTED]
sink(s2); // tainted [NOT DETECTED]
sink(s3); // tainted [NOT DETECTED]
sink(s4); // tainted [NOT DETECTED]
}
{
StructLikeClass s1;
StructLikeClass s2 = s1;
StructLikeClass s3(s1);
StructLikeClass s4;
s4 = s1;
sink(s1);
sink(s2);
sink(s3);
sink(s4);
}
{
StructLikeClass s1 = StructLikeClass(source());
StructLikeClass s2;
StructLikeClass s3;
s2 = StructLikeClass(source());
sink(s1); // tainted [NOT DETECTED]
sink(s2); // tainted [NOT DETECTED]
sink(s3 = source()); // tainted [NOT DETECTED]
}
}