mirror of
https://github.com/github/codeql.git
synced 2026-04-29 02:35:15 +02:00
Merge pull request #341 from geoffw0/av_114
CPP: Improve AV Rule 114.ql's understanding of return types.
This commit is contained in:
@@ -3,3 +3,5 @@
|
||||
| test.c:39:9:39:14 | ExprStmt | Function f6 should return a value of type int but does not return a value here |
|
||||
| test.cpp:16:1:18:1 | { ... } | Function g2 should return a value of type MyValue but does not return a value here |
|
||||
| test.cpp:48:2:48:26 | if (...) ... | Function g7 should return a value of type MyValue but does not return a value here |
|
||||
| test.cpp:74:1:76:1 | { ... } | Function g10 should return a value of type second but does not return a value here |
|
||||
| test.cpp:86:1:88:1 | { ... } | Function g12 should return a value of type second but does not return a value here |
|
||||
|
||||
@@ -50,3 +50,45 @@ MyValue g7(bool c)
|
||||
DONOTHING
|
||||
// BAD [the alert here is unfortunately placed]
|
||||
}
|
||||
|
||||
typedef void MYVOID;
|
||||
MYVOID g8()
|
||||
{
|
||||
// GOOD
|
||||
}
|
||||
|
||||
template<class T, class U>
|
||||
class TypePair
|
||||
{
|
||||
public:
|
||||
typedef T first;
|
||||
typedef U second;
|
||||
};
|
||||
|
||||
TypePair<void, int>::first g9()
|
||||
{
|
||||
// GOOD (the return type amounts to void)
|
||||
}
|
||||
|
||||
TypePair<void, int>::second g10()
|
||||
{
|
||||
// BAD (the return type amounts to int)
|
||||
}
|
||||
|
||||
template<class T>
|
||||
typename TypePair<void, T>::first g11()
|
||||
{
|
||||
// GOOD (the return type amounts to void)
|
||||
}
|
||||
|
||||
template<class T>
|
||||
typename TypePair<void, T>::second g12()
|
||||
{
|
||||
// BAD (the return type amounts to T / int)
|
||||
}
|
||||
|
||||
void instantiate()
|
||||
{
|
||||
g11<int>();
|
||||
g12<int>();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user