octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #61472] AddressSanitizer crash in MEX tests


From: John W. Eaton
Subject: [Octave-bug-tracker] [bug #61472] AddressSanitizer crash in MEX tests
Date: Wed, 15 Dec 2021 20:38:54 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Follow-up Comment #31, bug #61472 (project octave):

I checked in a series of changesets so that we will now match malloc/std::free
calls when passing float and double values from MEX functions back to the
interpreter if Octave is built with a C++ compiler that supports the C++17
std::pmr:polymorphic_allocator concept.  If that feature is not available,
then we still transfer real-valued float and double arrays from MEX functions
back to the interpreter without a copy, but we rely on the ability to use
delete[] to release the storage allocated with malloc.  As far as I know, that
should work on current systems for plain old data types like float and double,
but will not work for class types like std::complex<float> or intNDArray
objects.  Also, more changes are needed to make copy-free transfer work for
intNDArray objects.  I'll try to make that happen before the release, but I'm
out of time for now.

If there are problems with mixing malloc and delete[] on some real systems
(apart from those that show up with the address sanitizer) then we can go back
to always performing a copy unless the c++17 feature is available.  It works
for me with GCC 11 without needing to specify -std=c++17 because that is now
the default.

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?61472>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]