Files
codeql/cpp/ql/test/library-tests/dataflow/taint-tests/structlikeclass.cpp
Mathias Vorreiter Pedersen 373c849b18 C++: Accept library-test changes
2022-10-14 10:14:52 +02:00

65 lines
960 B
C++

int source();
void sink(...);
class StructLikeClass {
public:
StructLikeClass() {} // Constructor
StructLikeClass(int _v) : v(_v) {} // ConversionConstructor
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); // $ ir
sink(s2); // $ ir
sink(s3); // $ ir
sink(s4); // $ ir
}
{
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); // $ ir
sink(s2); // $ ir
sink(s3 = source()); // $ ir
}
}