diff options
author | Erik Verbruggen <erik.verbruggen@me.com> | 2013-11-18 11:58:33 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-11-18 15:54:56 +0100 |
commit | 15bb30b0e90c628cc3812627923d1d459d461505 (patch) | |
tree | 9e8ac40f800bcf9d699e1004224fa5c7579599f5 | |
parent | 78985c5c2c4ec8c7d06bf0c59c5534f968d62f07 (diff) | |
download | qtscript-15bb30b0e90c628cc3812627923d1d459d461505.tar.gz |
Fix compiler errors.v5.2.0-rc1v5.2.0
On Mavericks with Apple's Clang 5.0 (3.3 based):
../3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.h:320:117: error: non-const reference cannot bind to bit-field 'm_attributesInPrevious'
...add(StructureTransitionTableHash::Key(RefPtr<UString::Rep>(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), exi...
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C++11 specific:
../3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.h:179:35: error: non-constant-expression cannot be narrowed from type 'size_t'
(aka 'unsigned long') to 'uint32_t' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]
LineInfo info = { instructions().size(), n->lineNo() };
^~~~~~~~~~~~~~~~~~~~~
Both occur in multiple places.
Task-number: QTBUG-34842
Change-Id: I98a29b51718a6e0db8749ac1b495e071e9fe479d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
7 files changed, 24 insertions, 12 deletions
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp index b0a0877..d2ad679 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp @@ -1837,7 +1837,12 @@ RegisterID* BytecodeGenerator::emitCatch(RegisterID* targetRegister, Label* star #if ENABLE(JIT) HandlerInfo info = { start->bind(0, 0), end->bind(0, 0), instructions().size(), m_dynamicScopeDepth + m_baseScopeDepth, CodeLocationLabel() }; #else - HandlerInfo info = { start->bind(0, 0), end->bind(0, 0), instructions().size(), m_dynamicScopeDepth + m_baseScopeDepth }; + HandlerInfo info = { + static_cast<uint32_t>(start->bind(0, 0)), + static_cast<uint32_t>(end->bind(0, 0)), + static_cast<uint32_t>(instructions().size()), + static_cast<uint32_t>(m_dynamicScopeDepth + m_baseScopeDepth) + }; #endif m_codeBlock->addExceptionHandler(info); @@ -1889,7 +1894,7 @@ void BytecodeGenerator::emitPushNewScope(RegisterID* dst, const Identifier& prop void BytecodeGenerator::beginSwitch(RegisterID* scrutineeRegister, SwitchInfo::SwitchType type) { - SwitchInfo info = { instructions().size(), type }; + SwitchInfo info = { static_cast<uint32_t>(instructions().size()), type }; switch (type) { case SwitchInfo::SwitchImmediate: emitOpcode(op_switch_imm); diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.h b/src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.h index 8b6a425..af74e60 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.h +++ b/src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.h @@ -176,7 +176,7 @@ namespace JSC { // Node::emitCode assumes that dst, if provided, is either a local or a referenced temporary. ASSERT(!dst || dst == ignoredResult() || !dst->isTemporary() || dst->refCount()); if (!m_codeBlock->numberOfLineInfos() || m_codeBlock->lastLineInfo().lineNumber != n->lineNo()) { - LineInfo info = { instructions().size(), n->lineNo() }; + LineInfo info = { static_cast<uint32_t>(instructions().size()), n->lineNo() }; m_codeBlock->addLineInfo(info); } if (m_emitNodeDepth >= s_maxEmitNodeDepth) @@ -195,7 +195,7 @@ namespace JSC { void emitNodeInConditionContext(ExpressionNode* n, Label* trueTarget, Label* falseTarget, bool fallThroughMeansTrue) { if (!m_codeBlock->numberOfLineInfos() || m_codeBlock->lastLineInfo().lineNumber != n->lineNo()) { - LineInfo info = { instructions().size(), n->lineNo() }; + LineInfo info = { static_cast<uint32_t>(instructions().size()), n->lineNo() }; m_codeBlock->addLineInfo(info); } if (m_emitNodeDepth >= s_maxEmitNodeDepth) diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Identifier.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Identifier.cpp index 747c4ac..0702c42 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Identifier.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Identifier.cpp @@ -195,7 +195,7 @@ PassRefPtr<UString::Rep> Identifier::add(JSGlobalData* globalData, const UChar* UString::Rep::empty().hash(); return &UString::Rep::empty(); } - UCharBuffer buf = {s, length}; + UCharBuffer buf = {s, static_cast<unsigned>(length)}; pair<HashSet<UString::Rep*>::iterator, bool> addResult = globalData->identifierTable->add<UCharBuffer, UCharBufferTranslator>(buf); // If the string is newly-translated, then we need to adopt it. diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSONObject.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSONObject.cpp index b089584..daacbdb 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSONObject.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSONObject.cpp @@ -320,7 +320,11 @@ void Stringifier::appendQuotedString(StringBuilder& builder, const UString& valu default: static const char hexDigits[] = "0123456789abcdef"; UChar ch = data[i]; - UChar hex[] = { '\\', 'u', hexDigits[(ch >> 12) & 0xF], hexDigits[(ch >> 8) & 0xF], hexDigits[(ch >> 4) & 0xF], hexDigits[ch & 0xF] }; + UChar hex[] = { '\\', 'u', + static_cast<UChar>(hexDigits[(ch >> 12) & 0xF]), + static_cast<UChar>(hexDigits[(ch >> 8) & 0xF]), + static_cast<UChar>(hexDigits[(ch >> 4) & 0xF]), + static_cast<UChar>(hexDigits[ch & 0xF]) }; builder.append(hex, sizeof(hex) / sizeof(UChar)); break; } diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp index bf49a15..307b1f7 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.cpp @@ -156,9 +156,10 @@ Structure::Structure(JSValue prototype, const TypeInfo& typeInfo) Structure::~Structure() { if (m_previous) { - if (m_nameInPrevious) - m_previous->table.remove(StructureTransitionTableHash::Key(RefPtr<UString::Rep>(m_nameInPrevious.get()), m_attributesInPrevious), m_specificValueInPrevious); - else + if (m_nameInPrevious) { + unsigned attrInPrev = m_attributesInPrevious; + m_previous->table.remove(StructureTransitionTableHash::Key(RefPtr<UString::Rep>(m_nameInPrevious.get()), attrInPrev), m_specificValueInPrevious); + } else m_previous->table.removeAnonymousSlotTransition(m_anonymousSlotsInPrevious); } diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.h b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.h index 7571efc..a8deb5e 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.h +++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Structure.h @@ -316,8 +316,10 @@ namespace JSC { Structure* existingTransition = singleTransition(); TransitionTable* transitionTable = new TransitionTable; setTransitionTable(transitionTable); - if (existingTransition) - add(StructureTransitionTableHash::Key(RefPtr<UString::Rep>(existingTransition->m_nameInPrevious.get()), existingTransition->m_attributesInPrevious), existingTransition, existingTransition->m_specificValueInPrevious); + if (existingTransition) { + const unsigned attrsInPrev = existingTransition->m_attributesInPrevious; + add(StructureTransitionTableHash::Key(RefPtr<UString::Rep>(existingTransition->m_nameInPrevious.get()), attrsInPrev), existingTransition, existingTransition->m_specificValueInPrevious); + } } } // namespace JSC diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/unicode/UTF8.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/unicode/UTF8.cpp index 21d5856..cbfc528 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/unicode/UTF8.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/unicode/UTF8.cpp @@ -229,7 +229,7 @@ static bool isLegalUTF8(const unsigned char* source, int length) // This table contains as many values as there might be trailing bytes // in a UTF-8 sequence. static const UChar32 offsetsFromUTF8[6] = { 0x00000000UL, 0x00003080UL, 0x000E2080UL, - 0x03C82080UL, 0xFA082080UL, 0x82082080UL }; + 0x03C82080UL, static_cast<UChar32>(0xFA082080UL), static_cast<UChar32>(0x82082080UL) }; ConversionResult convertUTF8ToUTF16( const char** sourceStart, const char* sourceEnd, |