mirror of
https://github.com/github/codeql.git
synced 2026-04-12 02:24:00 +02:00
The statements from `errorExpr` - which does not parse correctly - affected the tuples that were being generated for the other code in `bad_asts.cpp` due to the way the front-end handles parse errors. This did not affect the test results, but was also not the intention of the test. Split off `errorExpr` into a separate file.
30 lines
582 B
C++
30 lines
582 B
C++
// semmle-extractor-options: -std=c++17
|
|
|
|
// Test cases that illustrate known bad ASTs that we have to work around in IR generation.
|
|
namespace Bad {
|
|
struct S {
|
|
int x;
|
|
|
|
template<int t>
|
|
int MemberFunction(int y) {
|
|
return t + x + y;
|
|
}
|
|
};
|
|
|
|
void CallBadMemberFunction() {
|
|
S s = {};
|
|
s.MemberFunction<6>(1); // Not marked as member function in AST.
|
|
}
|
|
|
|
struct Point {
|
|
int x;
|
|
int y;
|
|
Point() {
|
|
}
|
|
};
|
|
|
|
void CallCopyConstructor(const Point& a) {
|
|
Point b = a; // Copy constructor contains literal expressions with no values.
|
|
}
|
|
}
|