[Interest] ASSERT / Debug Crash in Qt 5.3.2. WTF, Windows x64, LLIntData.cpp at bitwise_cast<uint32_t*>(&testVector)[sizeof(void*)/sizeof(uint32_t) + 1] == 42)

Andre Barth Andre.Barth at autodesk.com
Fri Oct 10 08:44:22 CEST 2014


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/LLIntData.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?

Thanks in advance
Andre



More information about the Interest mailing list