Skip to content

Commit 5f676c6

Browse files
committed
C++: Ensure instantiation. In an upcoming PR it's important to ensure that
templated constructors are instantiated. So this commit ensures that all the constructors that were not previously instantiated are now instantiated.
1 parent dc46def commit 5f676c6

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ void test_RawResponse(Azure::Core::Http::RawResponse& resp) {
317317
}
318318

319319
void test_GetHeader() {
320+
std::pair<std::string, std::string>();
320321
Azure::Core::Http::Request request(Azure::Core::Http::Get, Azure::Core::Url("http://example.com"));
321322
{
322323
auto headerValue = request.GetHeader("Content-Type").Value();

‎cpp/ql/test/library-tests/dataflow/taint-tests/map.cpp‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ void test_map()
219219
sink(m22); // $ ast,ir
220220

221221
// erase, clear
222-
std::map<const char *, const char *> m23;
222+
std::map<const char *, const char *> m23; std::map<const char *, const char *>::value_type(source(), source()); // ensure instantiation
223223
m23.insert(std::pair<const char *, const char *>(source(), source()));
224224
m23.insert(std::pair<const char *, const char *>(source(), source()));
225225
sink(m23); // $ ast,ir=223:49 ast,ir=224:49
@@ -229,7 +229,7 @@ void test_map()
229229
sink(m23); // $ SPURIOUS: ast,ir=223:49 ast,ir=224:49
230230

231231
// emplace, emplace_hint
232-
std::map<const char *, const char *> m24, m25;
232+
std::map<const char *, const char *> m24, m25; std::map<const char *, const char *>::value_type("abc", source()); // force the template instantiation
233233
sink(m24.emplace("abc", "def").first);
234234
sink(m24);
235235
sink(m24.emplace("abc", source()).first);
@@ -406,7 +406,7 @@ void test_unordered_map()
406406
sink(m28); // $ MISSING: ast,ir
407407

408408
// additional try_emplace test cases
409-
std::unordered_map<const char *, std::pair<int, int>> m29, m30, m31, m32;
409+
std::unordered_map<const char *, std::pair<int, int>> m29, m30, m31, m32; std::pair<int, int> inst1(0, 0); int x; std::pair<int, int> inst2(x, x);
410410
sink(m29.try_emplace("abc", 1, 2));
411411
sink(m29);
412412
sink(m29["abc"]);

0 commit comments

Comments
 (0)