On Friday 10 October 2014, Andre Barth wrote: > Hi all, > > I built a JIT-free version of Qt 5.3.2 (Win64) and now run into this > assertion in > > ..\Qt\qtwebkit\Source\JavaScriptCore\llint\LLIntData.cpp > > Vector<int> testVector; > testVector.resize(42); > ASSERT(bitwise_cast<uint32_t*>(&testVector)[sizeof(void*)/sizeof(uint32_t)+ > 1] == 42); > > Here is a bug report / changeset I've found wrt this: > > http://trac.webkit.org/changeset/148896/trunk/Source/JavaScriptCore/llint/L > LIntData.cpp > > and > > https://bugs.webkit.org/show_bug.cgi?id=97268 > > The assert is supposed to check, that the Vector's m_size variable is at > the correct address, I guess?! > > If not, anyone can shed a light on this and explain the purpose of it and > where I might have incorrect compilation settings applied? > > Am I missing somewhere an alignment pragma or something to make this > (sizeof(void*)/sizeof(uint32_t)) > always calculate the right address - regardless of whether its x86 or x64? > There are some differences between alignment and exact types between linux x64 and win x64. Could you test what (sizeof(void*)/sizeof(uint32_t)) is, and what is on the first few ints of the address of Vector<int> after a resize(42)?
Anyway, it might we worth opening a bug for to track the issue. Even if the assert turns out to be harmless, the binaries should be able to run in debug versions (even win64). `Allan _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest