Ok now everything works!! https://github.com/philippeb8/block_ptr/blob/master/example/block_ptr_test2.... So now block_ptr<> is Boost.Container compliant! I still need to fix an issue but it's moving forward! Thanks, -Phil
On 03/02/2016 06:15 PM, Phil Bouchard wrote:
Ok now everything works!! https://github.com/philippeb8/block_ptr/blob/master/example/block_ptr_test2....
So now block_ptr<> is Boost.Container compliant!
I still need to fix an issue but it's moving forward!
Actually it works when the optimization option is turned off on my computer. I love these cases ;)
On 2016-03-02 6:34 PM, Phil Bouchard wrote:
On 03/02/2016 06:15 PM, Phil Bouchard wrote:
Actually it works when the optimization option is turned off on my computer.
I love these cases ;)
It works with: - MSVC 2015 (Debug & Release) - GCC 4.8 (Debug) But fails with GCC 4.8 (Release)...
On 03/02/2016 10:37 PM, Phil Bouchard wrote:
On 03/02/2016 08:03 PM, Phil Bouchard wrote:
On 2016-03-02 6:34 PM, Phil Bouchard wrote:
It works with: - MSVC 2015 (Debug & Release) - GCC 4.8 (Debug)
But fails with GCC 4.8 (Release)...
Sorry for the spam but this had to do with my stack detection optimization on GCC.
So I only have 1 use case left that doesn't work with -O3: https://github.com/philippeb8/block_ptr/blob/master/example/block_ptr_test2.... It works with -O0 so for the moment I have no idea what's going on there.
On 03/02/2016 11:42 PM, Phil Bouchard wrote:
It works with -O0 so for the moment I have no idea what's going on there.
Sorry wrong call; I fixed a memory corruption bug but now block_ptr<> doesn't work anymore with the Boost.Container. And this time this is consistent unfortunately. I will try to figure out if I can fix it.
On 03/03/2016 08:30 PM, Phil Bouchard wrote:
On 03/02/2016 11:42 PM, Phil Bouchard wrote:
It works with -O0 so for the moment I have no idea what's going on there.
Sorry wrong call; I fixed a memory corruption bug but now block_ptr<> doesn't work anymore with the Boost.Container. And this time this is consistent unfortunately.
I will try to figure out if I can fix it.
Everything works well if I comment:
template
On Friday, March 04, 2016 10:14 AM, Phil Bouchard wrote:
On 03/03/2016 08:30 PM, Phil Bouchard wrote:
On 03/02/2016 11:42 PM, Phil Bouchard wrote:
It works with -O0 so for the moment I have no idea what's going on there.
Sorry wrong call; I fixed a memory corruption bug but now block_ptr<> doesn't work anymore with the Boost.Container. And this time this is consistent unfortunately.
I will try to figure out if I can fix it.
Everything works well if I comment:
template
struct node_alloc_holder { [...]
~node_alloc_holder() { /*this->clear(alloc_version());*/ }
It seems like the nodes destroy themselves before the list attempts to destroy them.
I am pretty sure block_ptr<> is neat now as I reviewed it many times. If I could have some help solving this that would be great.
If you haven't used asan (address-sanitizer) you may find it throws a fair bit of light on the subject. If using gcc or clang, just add -fsanitize=address to the compiler command line. Ben
participants (3)
-
Ben Pope
-
Phil Bouchard
-
Phil Bouchard