Hi All, I am writing some software which is using boost::mpi. I think I have run into a slight bug (or at least a limitation) with the library. It is very similar to this question on S/O: http://stackoverflow.com/questions/8127442/sending-complex-data-with-skeleto... I am sending/receiving a class which has an enum member variable. Using normal send and receive was working fine but then I tried to use the skeleton/content mechanism and now my program failed with a segfault on calling `communicator::isend` with the content. While compiling, the compiler issued a warning about an uninitizialized variable: /home/dan/boost_1_54_0/boost/archive/detail/iserializer.hpp:539:9: warning: ‘i’ may be used uninitialized in this function [-Wuninitialized] I looked and noticed this was a function for handling enum values so I commented out the enum variable from my serialization member function and then the sending worked as expected. It looks like the same cause (using addresses of temporaries) as in the S/O question. If anyone is interested I have written a small example exhibiting this issue. I have a couple of questions regarding this: * Is it possible to get around this limitation/bug?^ * Is boost::mpi still being actively developed? I've found a few discussions about this but none really lead anywhere. Thanks, Dan ^ Perhaps it would be possible to write a custom serialize function for any enums but this would be a pain if one used many different enums.
participants (1)
-
Barker, Daniel