Fix TestDataFormatterLibcxxListLoop.py test

Summary:
The compilation of the TestDataFormatterLibcxxListLoop.py currently fails with this error:

```
functionalities/data-formatter/data-formatter-stl/libcxx/list/loop/main.cpp:19:24: error: no member named '__value_' in 'std::__1::__list_node_base<int, void *>'
    assert(third_elem->__value_ == 3);
           ~~~~~~~~~~  ^
```

It seems the internal structure of list has changed with the 3.8 release. This patch makes the test compile with the current libc++ and with the previous libc++.

Reviewers: shafik, zturner, labath

Reviewed By: labath

Subscribers: christof, jdoerfert, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D58273

llvm-svn: 354202
This commit is contained in:
Raphael Isemann 2019-02-16 12:13:30 +00:00
parent 87992de487
commit 913f07af6e
1 changed files with 8 additions and 0 deletions

View File

@ -15,10 +15,18 @@ int main()
int_list *numbers_list = new int_list{1,2,3,4,5,6,7,8,9,10}; int_list *numbers_list = new int_list{1,2,3,4,5,6,7,8,9,10};
printf("// Set break point at this line."); printf("// Set break point at this line.");
#if _LIBCPP_VERSION >= 3800
auto *third_elem = numbers_list->__end_.__next_->__next_->__next_;
assert(third_elem->__as_node()->__value_ == 3);
auto *fifth_elem = third_elem->__next_->__next_;
assert(fifth_elem->__as_node()->__value_ == 5);
#else
auto *third_elem = numbers_list->__end_.__next_->__next_->__next_; auto *third_elem = numbers_list->__end_.__next_->__next_->__next_;
assert(third_elem->__value_ == 3); assert(third_elem->__value_ == 3);
auto *fifth_elem = third_elem->__next_->__next_; auto *fifth_elem = third_elem->__next_->__next_;
assert(fifth_elem->__value_ == 5); assert(fifth_elem->__value_ == 5);
#endif
fifth_elem->__next_ = third_elem; fifth_elem->__next_ = third_elem;
#endif #endif