Hi Allan, Thanks for the prompt response. I will go ahead & log a bug.
FWIW - Below is some test output. Thanks, Andre //some changed test code: Vector<int> testVector; testVector.resize(42); auto sizeOfCalc = (sizeof(void*)/sizeof(uint32_t) + 1); auto address = &testVector; auto castResult = bitwise_cast<uint32_t*>(&testVector); auto indexedResult = castResult[sizeOfCalc]; bool result = (indexedResult == 42); //and the corresponding "online" checks & results... sizeof(void*) 0x0000000000000008 sizeof(uint32_t) 0x0000000000000004 sizeOfCalc 0x0000000000000003 address 0x00000000002ce7d8 {m_size=0x0000002a } WTF::VectorBuffer<int,0>: {...} m_size: 0x0000002a castResult 0x00000000002ce7d8 {0x083f8450} indexedResult 0xcccccccc castResult[0] 0x083f8450 castResult[1] 0x00000000 castResult[2] 0x0000002a -----Original Message----- From: Allan Sandfeld Jensen [mailto:carew...@gmail.com] On Behalf Of Allan Sandfeld Jensen Sent: Friday, October 10, 2014 3:09 PM To: interest@qt-project.org Cc: Andre Barth Subject: Re: [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) 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(uint3 > 2_t)+ > 1] == 42); > > Here is a bug report / changeset I've found wrt this: > > http://trac.webkit.org/changeset/148896/trunk/Source/JavaScriptCore/ll > int/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