Source: openvdb
Version: 0.99.0-1
Severity: serious
Justification: fails to build from source
Builds of openvdb on 32-bit architectures (i386, and 32-bit PowerPC if
tbb ever materializes there) are failing because two functions in
TestParticlesToLevelSet.c compare an explicitly calculated size_t to
the Index64 return value from GridBase::activeVoxelCount via a cppunit
template that requires its arguments to have identical types:
unittest/TestParticlesToLevelSet.cc: In member function 'void
TestParticlesToLevelSet::testRasterizeSpheres()':
unittest/TestParticlesToLevelSet.cc:249:9: error: no matching function for
call to 'assertEquals(size_t&, openvdb::v0_99_0::Index64, CppUnit::SourceLine,
const char [1])'
unittest/TestParticlesToLevelSet.cc:249:9: note: candidate is:
In file included from /usr/include/cppunit/TestCase.h:6:0,
from /usr/include/cppunit/TestCaller.h:5,
from /usr/include/cppunit/extensions/HelperMacros.h:9,
from unittest/TestParticlesToLevelSet.cc:32:
/usr/include/cppunit/TestAssert.h:94:6: note: template<class T> void
CppUnit::assertEquals(const T&, const T&, CppUnit::SourceLine, const string&)
/usr/include/cppunit/TestAssert.h:94:6: note: template argument
deduction/substitution failed:
unittest/TestParticlesToLevelSet.cc:249:9: note: deduced conflicting types
for parameter 'const T' ('unsigned int' and 'openvdb::v0_99_0::Index64 {aka
long long unsigned int}')
unittest/TestParticlesToLevelSet.cc: In member function 'void
TestParticlesToLevelSet::testRasterizeSpheresAndId()':
unittest/TestParticlesToLevelSet.cc:368:9: error: no matching function for
call to 'assertEquals(size_t&, openvdb::v0_99_0::Index64, CppUnit::SourceLine,
const char [1])'
unittest/TestParticlesToLevelSet.cc:368:9: note: candidate is:
In file included from /usr/include/cppunit/TestCase.h:6:0,
from /usr/include/cppunit/TestCaller.h:5,
from /usr/include/cppunit/extensions/HelperMacros.h:9,
from unittest/TestParticlesToLevelSet.cc:32:
/usr/include/cppunit/TestAssert.h:94:6: note: template<class T> void
CppUnit::assertEquals(const T&, const T&, CppUnit::SourceLine, const string&)
/usr/include/cppunit/TestAssert.h:94:6: note: template argument
deduction/substitution failed:
unittest/TestParticlesToLevelSet.cc:368:9: note: deduced conflicting types
for parameter 'const T' ('unsigned int' and 'openvdb::v0_99_0::Index64 {aka
long long unsigned int}')
make[2]: *** [unittest/TestParticlesToLevelSet.o] Error 1
I'm not sure why the compiler isn't promoting the size_t to an
Index64, but presume patching testRasterizeSpheres* to use Index64 for
count should satisfy it. Could you please do so? (I'd also suggest
testing the result in a 32-bit chroot or VM, as further errors could
be lurking.)
Thanks!
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]