EricWF added inline comments.
Comment at: include/list:198
@@ +197,3 @@
+__node_pointer;
+__node_base_pointer __prev_;
+__node_base_pointer __next_;
Possible ABI break here.
http://reviews.llvm.org/D12299
__
EricWF added a comment.
I've spent some time testing this patch to see if it causes ABI problem. Here
is what I did:
1. Add external instantiations of std::list into the libc++ dylib for the types
used in the tests.
2. Compile `libcxx-old.dylib` with the external instantations but without this
mclow.lists added a comment.
So... what do we need to do to enumerate the "ABI breakage" of this patch?
I get that there's a couple of member variables that are changing type. Can
they change (as a result of this patch) from a plain pointer to a fancy pointer
(or vice versa)? Can they change si
EricWF updated this revision to Diff 33219.
EricWF added a comment.
Address failing test that @awi pointed out.
http://reviews.llvm.org/D12299
Files:
include/list
Index: include/list
===
--- include/list
+++ include/list
@@ -191
awi added a subscriber: awi.
awi added a comment.
Hello,
I like your patch very much. I looks similar to my patch from January, so I am
confident it solves my problem, but it does so a little more elegantly at some
places.
I tried it with my two sources files main.cpp and main2.cpp. While main.c
EricWF created this revision.
EricWF added reviewers: mclow.lists, danalbert, jroelofs.
EricWF added a subscriber: cfe-commits.
This patch is an ABI-breaking version of D12297. However unlike D12297, this
patch does not have any undefined behavior when `element_type` has a stricter
alignment req