Skip to content

Commit 60f268c

Browse files
committed
C++: Big cleanup of declarations in the taint-tests to get rid of duplicated std::string declarations in 'azure.cpp' and 'bslx.cpp'.
1 parent 3dee9f9 commit 60f268c

13 files changed

Lines changed: 1351 additions & 1588 deletions

File tree

‎cpp/ql/test/include/type_traits.h‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
#if !defined(CODEQL_TYPE_TRAITS_H)
22
#define CODEQL_TYPE_TRAITS_H
33

4-
typedef unsigned long size_t;
4+
using size_t = decltype(sizeof(0));
55

66
namespace std {
7+
using size_t = decltype(sizeof(0));
78
template<class T>
89
struct remove_const { typedef T type; };
910

‎cpp/ql/test/library-tests/dataflow/external-models/asio_streams.cpp‎

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11

22
// --- stub library headers ---
33

4-
#include "std_string.h"
4+
#include "../taint-tests/stl.h"
55

66
#define SIZE_MAX 0xFFFFFFFF
77

8-
namespace std {
9-
class string_view {
10-
public:
11-
string_view(const char* s);
12-
};
13-
};
14-
158
namespace boost {
169
namespace system {
1710
class error_code {
@@ -150,20 +143,20 @@ void test_resolve_host() {
150143
sink(resolver.resolve(host, service, flags)); // $ ir
151144
sink(resolver.resolve(host, service, flags, error)); // $ ir
152145

153-
sink(resolver.resolve(host_view, service_view)); // $ ir
154-
sink(resolver.resolve(host_view, service_view, error)); // $ ir
155-
sink(resolver.resolve(host_view, service_view, flags)); // $ ir
156-
sink(resolver.resolve(host_view, service_view, flags, error)); // $ ir
146+
sink(resolver.resolve(host_view, service_view)); // $ MISSING: ir
147+
sink(resolver.resolve(host_view, service_view, error)); // $ MISSING: ir
148+
sink(resolver.resolve(host_view, service_view, flags)); // $ MISSING: ir
149+
sink(resolver.resolve(host_view, service_view, flags, error)); // $ MISSING: ir
157150

158151
sink(resolver.resolve(protocol, host, service)); // $ ir
159152
sink(resolver.resolve(protocol, host, service, error)); // $ ir
160153
sink(resolver.resolve(protocol, host, service, flags)); // $ ir
161154
sink(resolver.resolve(protocol, host, service, flags, error)); // $ ir
162155

163-
sink(resolver.resolve(protocol, host_view, service_view)); // $ ir
164-
sink(resolver.resolve(protocol, host_view, service_view, error)); // $ ir
165-
sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ ir
166-
sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ ir
156+
sink(resolver.resolve(protocol, host_view, service_view)); // $ MISSING: ir
157+
sink(resolver.resolve(protocol, host_view, service_view, error)); // $ MISSING: ir
158+
sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ MISSING: ir
159+
sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ MISSING: ir
167160
}
168161

169162
void test_resolve_service() {
@@ -181,18 +174,18 @@ void test_resolve_service() {
181174
sink(resolver.resolve(host, service, flags)); // $ ir
182175
sink(resolver.resolve(host, service, flags, error)); // $ ir
183176

184-
sink(resolver.resolve(host_view, service_view)); // $ ir
185-
sink(resolver.resolve(host_view, service_view, error)); // $ ir
186-
sink(resolver.resolve(host_view, service_view, flags)); // $ ir
187-
sink(resolver.resolve(host_view, service_view, flags, error)); // $ ir
177+
sink(resolver.resolve(host_view, service_view)); // $ MISSING: ir
178+
sink(resolver.resolve(host_view, service_view, error)); // $ MISSING: ir
179+
sink(resolver.resolve(host_view, service_view, flags)); // $ MISSING: ir
180+
sink(resolver.resolve(host_view, service_view, flags, error)); // $ MISSING: ir
188181

189182
sink(resolver.resolve(protocol, host, service)); // $ ir
190183
sink(resolver.resolve(protocol, host, service, error)); // $ ir
191184
sink(resolver.resolve(protocol, host, service, flags)); // $ ir
192185
sink(resolver.resolve(protocol, host, service, flags, error)); // $ ir
193186

194-
sink(resolver.resolve(protocol, host_view, service_view)); // $ ir
195-
sink(resolver.resolve(protocol, host_view, service_view, error)); // $ ir
196-
sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ ir
197-
sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ ir
187+
sink(resolver.resolve(protocol, host_view, service_view)); // $ MISSING: ir
188+
sink(resolver.resolve(protocol, host_view, service_view, error)); // $ MISSING: ir
189+
sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ MISSING: ir
190+
sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ MISSING: ir
198191
}

‎cpp/ql/test/library-tests/dataflow/external-models/azure.cpp‎

Lines changed: 1 addition & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,11 @@
1+
#include "../taint-tests/stl.h"
12
using uint16_t = unsigned short;
23
using int64_t = long long;
34
using size_t = unsigned long;
45
using uint8_t = unsigned char;
56
using int32_t = int;
67
using uint32_t = unsigned int;
78

8-
namespace std
9-
{
10-
template <class T1, class T2>
11-
struct pair {
12-
typedef T1 first_type;
13-
typedef T2 second_type;
14-
15-
T1 first;
16-
T2 second;
17-
pair();
18-
pair(const T1& x, const T2& y);
19-
template<class U, class V> pair(const pair<U, V> &p);
20-
21-
void swap(pair& p) /*noexcept(...)*/;
22-
};
23-
24-
template<class charT> struct char_traits;
25-
26-
typedef size_t streamsize;
27-
28-
template <class T> class allocator {
29-
public:
30-
allocator() throw();
31-
typedef size_t size_type;
32-
};
33-
34-
template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
35-
class basic_string {
36-
public:
37-
using value_type = charT;
38-
using reference = value_type&;
39-
using const_reference = const value_type&;
40-
typedef typename Allocator::size_type size_type;
41-
42-
basic_string(const charT* s, const Allocator& a = Allocator());
43-
};
44-
45-
typedef basic_string<char> string;
46-
47-
template <typename K, typename V>
48-
class map
49-
{
50-
public:
51-
using key_type = K;
52-
using value_type = pair<const K, V>;
53-
map();
54-
~map();
55-
56-
V& operator[](const key_type& key);
57-
};
58-
59-
template <typename T>
60-
class vector
61-
{
62-
public:
63-
vector();
64-
~vector();
65-
66-
T& operator[](size_t);
67-
};
68-
69-
template<typename T>
70-
class unique_ptr {
71-
public:
72-
unique_ptr();
73-
~unique_ptr();
74-
75-
T* get();
76-
};
77-
}
78-
799
namespace Azure
8010
{
8111
template <typename T>

‎cpp/ql/test/library-tests/dataflow/external-models/bslx.cpp‎

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,4 @@
1-
2-
// --- stub library headers ---
3-
4-
namespace std {
5-
typedef unsigned long size_t;
6-
template <class T> class allocator {};
7-
template<class charT> struct char_traits {};
8-
template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
9-
class basic_string {
10-
public:
11-
basic_string();
12-
basic_string(const charT* s, const Allocator& a = Allocator());
13-
const charT* data() const;
14-
size_t size() const;
15-
};
16-
typedef basic_string<char> string;
17-
}
1+
#include "../taint-tests/stl.h"
182

193
// BDE spells the standard string as `bsl::string`; alias it onto the stub above.
204
namespace bsl {

0 commit comments

Comments
 (0)