Skip to content

Commit 8f6f788

Browse files
committed
C++: Test nested typedefs in forwarding.
1 parent 042fea6 commit 8f6f788

2 files changed

Lines changed: 16 additions & 5 deletions

File tree

‎cpp/ql/test/library-tests/dataflow/external-models/flow.ext.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,4 @@ extensions:
5353
- ["", "Forwarder<T>", True, "forward<Args>", "(Args &&)", "", "0", "T", "Argument[-1]", "manual"]
5454
- ["", "", False, "makeForwarded<T>", "(int)", "", "0", "T", "ReturnValue", "manual"]
5555
- ["", "Forwarder", True, "forwardToElement", "(int)", "", "0", "Element", "Argument[-1]", "manual"]
56-
- ["", "Container<T>", True, "emplace<Args>", "(int,Args &&)", "", "1", "T", "Argument[-1].Element", "manual"]
56+
- ["", "Container<T>", True, "emplace<Args>", "(int,Args &&)", "", "1", "value_type", "Argument[-1].Element", "manual"]

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

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,7 @@ void forward_test() {
379379

380380
template<typename T>
381381
struct Container {
382+
using value_type = T;
382383
template<typename... Args>
383384
void emplace(int pos, Args&&... args);
384385

@@ -413,7 +414,17 @@ void forward_test_model() {
413414
c.emplace(0, x);
414415

415416
Element e = c.get();
416-
ymlSink(e.x); // $ ir
417+
ymlSink(e.x); // $ MISSING: ir
418+
}
419+
420+
void forward_test_member_alias_scalar() {
421+
Container<int> scalar;
422+
scalar.emplace(0, ymlSource());
423+
ymlSink(scalar.get()); // $ MISSING: ir
424+
425+
Container<int*> pointer;
426+
pointer.emplace(0, ymlSourcePtr());
427+
ymlSink(*pointer.get()); // $ MISSING: ir
417428
}
418429

419430
struct ElementWithDefaultArgument {
@@ -427,7 +438,7 @@ void forward_test_model_with_default_argument() {
427438
c.emplace(0, x);
428439

429440
ElementWithDefaultArgument e = c.get();
430-
ymlSink(e.x); // $ ir
441+
ymlSink(e.x); // $ MISSING: ir
431442
}
432443

433444
struct ElementWithOverloadedArity {
@@ -441,7 +452,7 @@ void forward_test_constructor_arity() {
441452
{
442453
Container<ElementWithOverloadedArity> c;
443454
c.emplace(0, x);
444-
ymlSink(c.get().x); // $ ir
455+
ymlSink(c.get().x); // $ MISSING: ir
445456
}
446457
{
447458
Container<ElementWithOverloadedArity> c;
@@ -451,7 +462,7 @@ void forward_test_constructor_arity() {
451462
{
452463
Container<ElementWithOverloadedArity> c;
453464
c.emplace(0, 0, x);
454-
ymlSink(c.get().x); // $ ir
465+
ymlSink(c.get().x); // $ MISSING: ir
455466
}
456467
}
457468

0 commit comments

Comments
 (0)