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 debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to