<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qt/qtdeclarative.git/src/qml/compiler/qv4codegen.cpp, branch 6.5</title>
<subtitle>Qt Declarative (Quick 2)
</subtitle>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/'/>
<entry>
<title>Merge tag 'v6.5.10-lts' into tqtc/lts-6.5-opensource</title>
<updated>2026-08-20T12:41:16+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2026-08-20T12:41:16+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=ae5bbc665633ea99eb26800eb5a8978d2213a2c2'/>
<id>ae5bbc665633ea99eb26800eb5a8978d2213a2c2</id>
<content type='text'>
Qt 6.5.10-lts release

Conflicts solved:
	dependencies.yaml

Change-Id: I30aa1cd656455861044ba1c3c8075f52d20dc2e8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Qt 6.5.10-lts release

Conflicts solved:
	dependencies.yaml

Change-Id: I30aa1cd656455861044ba1c3c8075f52d20dc2e8
</pre>
</div>
</content>
</entry>
<entry>
<title>qv4codegen: Track the correct location for assign instructions</title>
<updated>2025-04-28T10:46:37+00:00</updated>
<author>
<name>Olivier De Cannière</name>
<email>olivier.decanniere@qt.io</email>
</author>
<published>2025-04-14T14:09:55+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=e3551b09d199d2f295e848df95d3b3d14f20faff'/>
<id>e3551b09d199d2f295e848df95d3b3d14f20faff</id>
<content type='text'>
This fixes a qmllint warning about unqualified access in the wrong place
in the following unconventional but valid case:

Warning: .../Main.qml:5:9: Unqualified access [unqualified]
        console.log(a = 1)
        ^^^^^^^

Warning: .../Main.qml:5:21: Unqualified access [unqualified]
        console.log(a = 1)
                    ^

Change-Id: I8eaa43f520c394b094917fe37dc6115ec2f7af74
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
(cherry picked from commit 4beea6bc83f315ec57fd07ea0c21767dc63127d6)
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 39e1b2bc1c5432f2498c9c56250244e612f9ce14)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a qmllint warning about unqualified access in the wrong place
in the following unconventional but valid case:

Warning: .../Main.qml:5:9: Unqualified access [unqualified]
        console.log(a = 1)
        ^^^^^^^

Warning: .../Main.qml:5:21: Unqualified access [unqualified]
        console.log(a = 1)
                    ^

Change-Id: I8eaa43f520c394b094917fe37dc6115ec2f7af74
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
(cherry picked from commit 4beea6bc83f315ec57fd07ea0c21767dc63127d6)
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
(cherry picked from commit 39e1b2bc1c5432f2498c9c56250244e612f9ce14)
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Update commercial SPDX-License-Identifier"</title>
<updated>2025-01-03T17:25:16+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2025-01-03T05:44:42+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=eee1fcc18b8460f5aa581cc4e41db3ed8ec78fbb'/>
<id>eee1fcc18b8460f5aa581cc4e41db3ed8ec78fbb</id>
<content type='text'>
This reverts commit da5933f22c00270ac9083a089686e5c54e0057da.

Revert of commercial SPDX license identifiers is required for the
Qt 6.5.x opensource releases, Qt 6.5.4 onwards.

Change-Id: Ic056fb761f242af0ec4c883ecb35d50804c1c67c
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit da5933f22c00270ac9083a089686e5c54e0057da.

Revert of commercial SPDX license identifiers is required for the
Qt 6.5.x opensource releases, Qt 6.5.4 onwards.

Change-Id: Ic056fb761f242af0ec4c883ecb35d50804c1c67c
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Update commercial SPDX-License-Identifier</title>
<updated>2023-10-23T09:34:14+00:00</updated>
<author>
<name>Tarja Sundqvist</name>
<email>tarja.sundqvist@qt.io</email>
</author>
<published>2023-10-19T18:47:43+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=da5933f22c00270ac9083a089686e5c54e0057da'/>
<id>da5933f22c00270ac9083a089686e5c54e0057da</id>
<content type='text'>
Updated the commercial SPDX-License-Identifier to
the files in tqtc-qtdeclarative. Examples, tests, or
documentation files were not updated.

Task-number: QTQAINFRA-5900
Change-Id: I74e2ac15b270b503edc80369b126913dd2ec33e1
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updated the commercial SPDX-License-Identifier to
the files in tqtc-qtdeclarative. Examples, tests, or
documentation files were not updated.

Task-number: QTQAINFRA-5900
Change-Id: I74e2ac15b270b503edc80369b126913dd2ec33e1
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix CMake Unity (Jumbo) builds on Windows</title>
<updated>2023-02-15T15:33:35+00:00</updated>
<author>
<name>Friedemann Kleint</name>
<email>Friedemann.Kleint@qt.io</email>
</author>
<published>2023-02-14T13:48:53+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8012e3bd11f73fd6dd8f318bfb4d0d04ae5ca259'/>
<id>8012e3bd11f73fd6dd8f318bfb4d0d04ae5ca259</id>
<content type='text'>
Rename some variables to prevent clashes with the "interface"
on Windows.

Task-number: QTBUG-109394
Change-Id: I54cd35c2d06b30c21cddd8650282687ec8ccf5ee
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
(cherry picked from commit e81bd76e68ea818d7ea330bf7ae8f9a5fd4476ff)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rename some variables to prevent clashes with the "interface"
on Windows.

Task-number: QTBUG-109394
Change-Id: I54cd35c2d06b30c21cddd8650282687ec8ccf5ee
Reviewed-by: Ulf Hermann &lt;ulf.hermann@qt.io&gt;
(cherry picked from commit e81bd76e68ea818d7ea330bf7ae8f9a5fd4476ff)
Reviewed-by: Qt Cherry-pick Bot &lt;cherrypick_bot@qt-project.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QML: Do not crash on CallWithSpread</title>
<updated>2022-11-22T11:32:16+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-11-15T15:26:49+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8f827de1a1cc466f4c99049a90669f1c538e717f'/>
<id>8f827de1a1cc466f4c99049a90669f1c538e717f</id>
<content type='text'>
We need to check for subscripts also when creating CallWithSpread and
TailCall instructions. Furthermore, the == operator of Reference needs
to take into account whether the subscript has been loaded or not.

Amends commit 872e91612fd83de6dd1193014b5e2a0f5e8c30af.

Fixes: QTBUG-108441
Change-Id: I2d1a7a11f9cdcb4320a87df979d9ca4457620d3f
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
Reviewed-by: Semih Yavuz &lt;semih.yavuz@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need to check for subscripts also when creating CallWithSpread and
TailCall instructions. Furthermore, the == operator of Reference needs
to take into account whether the subscript has been loaded or not.

Amends commit 872e91612fd83de6dd1193014b5e2a0f5e8c30af.

Fixes: QTBUG-108441
Change-Id: I2d1a7a11f9cdcb4320a87df979d9ca4457620d3f
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
Reviewed-by: Semih Yavuz &lt;semih.yavuz@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QML: Require TDZ checks variables declared in case blocks</title>
<updated>2022-11-15T07:32:27+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-11-11T17:03:36+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=1166ebf3e9493b0be7e72aaeb72362ec666bc8d6'/>
<id>1166ebf3e9493b0be7e72aaeb72362ec666bc8d6</id>
<content type='text'>
... and check the tdz only once on function calls.

Task-number: QTBUG-108362
Change-Id: I534e2604fb68b3b9145b7b7dd003e988e9df17d0
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... and check the tdz only once on function calls.

Task-number: QTBUG-108362
Change-Id: I534e2604fb68b3b9145b7b7dd003e988e9df17d0
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>QML: Fix the most blatant TDZ violations</title>
<updated>2022-11-14T09:19:08+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-11-11T13:23:42+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=1d3d7437bab7c3a0c3222de3a00bcf2c9437ae76'/>
<id>1d3d7437bab7c3a0c3222de3a00bcf2c9437ae76</id>
<content type='text'>
When reading a let or const register before its declaration we can be
sure this is invalid.

Task-number: QTBUG-108362
Fixes: QTBUG-77428
Change-Id: I7e8f8b46079860f00c051c1a91f773dc8cdd5595
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When reading a let or const register before its declaration we can be
sure this is invalid.

Task-number: QTBUG-108362
Fixes: QTBUG-77428
Change-Id: I7e8f8b46079860f00c051c1a91f773dc8cdd5595
Reviewed-by: Sami Shalayel &lt;sami.shalayel@qt.io&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace CallElement with separate instructions</title>
<updated>2022-11-07T14:49:10+00:00</updated>
<author>
<name>Ulf Hermann</name>
<email>ulf.hermann@qt.io</email>
</author>
<published>2022-11-03T16:09:29+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=872e91612fd83de6dd1193014b5e2a0f5e8c30af'/>
<id>872e91612fd83de6dd1193014b5e2a0f5e8c30af</id>
<content type='text'>
We need to do the subscript lookup before generating the arguments since
the arguments may change the array.

Fixes: QTBUG-106708
Change-Id: Ia3a0dd34c6ed8d39e86ad20911a632d691826322
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need to do the subscript lookup before generating the arguments since
the arguments may change the array.

Fixes: QTBUG-106708
Change-Id: Ia3a0dd34c6ed8d39e86ad20911a632d691826322
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Port to new Q_UNREACHABLE_RETURN()</title>
<updated>2022-10-20T21:59:33+00:00</updated>
<author>
<name>Marc Mutz</name>
<email>marc.mutz@qt.io</email>
</author>
<published>2022-10-13T21:18:06+00:00</published>
<link rel='alternate' type='text/html' href='https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=534241f723161ab79d9a85b2c8145d571f0d99f9'/>
<id>534241f723161ab79d9a85b2c8145d571f0d99f9</id>
<content type='text'>
This is a semantic patch using ClangTidyTransformator to convert
sequences of Q_UNREACHABLE() + return into Q_UNREACHABLE_RETURN(),
newly added to qtbase.

    const std::string unr = "unr", val = "val", ret = "ret";
    auto makeUnreachableReturn = cat("Q_UNREACHABLE_RETURN(",
                                    ifBound(val, cat(node(val)), cat("")),
                                    ")");
    auto ignoringSwitchCases = [](auto stmt) {
        return anyOf(stmt, switchCase(subStmt(stmt)));
    };

    makeRule(stmt(ignoringSwitchCases(stmt(isExpandedFromMacro("Q_UNREACHABLE")).bind(unr)),
                  nextStmt(returnStmt(optionally(hasReturnValue(expr().bind(val)))).bind(ret))),
             {changeTo(node(unr), cat(makeUnreachableReturn,
                                      ";")), // TODO: why is the ; lost w/o this?
              changeTo(node(ret), cat(""))},
             cat("use ", makeUnreachableReturn));

a.k.a qt-use-unreachable-return.

subStmt() and nextStmt() are non-standard matchers.

There was one false positive, suppressed it with NOLINTNEXTLINE.

It's not really a false positiive, it's just that Clang sees the world
in one way and if conditonal compilation (#if) differs for other
compilers, Clang doesn't know better. This is an artifact of matching
two consecutive statements.

Change-Id: I3855b2dc8523db1ea860f72ad9818738162495c6
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a semantic patch using ClangTidyTransformator to convert
sequences of Q_UNREACHABLE() + return into Q_UNREACHABLE_RETURN(),
newly added to qtbase.

    const std::string unr = "unr", val = "val", ret = "ret";
    auto makeUnreachableReturn = cat("Q_UNREACHABLE_RETURN(",
                                    ifBound(val, cat(node(val)), cat("")),
                                    ")");
    auto ignoringSwitchCases = [](auto stmt) {
        return anyOf(stmt, switchCase(subStmt(stmt)));
    };

    makeRule(stmt(ignoringSwitchCases(stmt(isExpandedFromMacro("Q_UNREACHABLE")).bind(unr)),
                  nextStmt(returnStmt(optionally(hasReturnValue(expr().bind(val)))).bind(ret))),
             {changeTo(node(unr), cat(makeUnreachableReturn,
                                      ";")), // TODO: why is the ; lost w/o this?
              changeTo(node(ret), cat(""))},
             cat("use ", makeUnreachableReturn));

a.k.a qt-use-unreachable-return.

subStmt() and nextStmt() are non-standard matchers.

There was one false positive, suppressed it with NOLINTNEXTLINE.

It's not really a false positiive, it's just that Clang sees the world
in one way and if conditonal compilation (#if) differs for other
compilers, Clang doesn't know better. This is an artifact of matching
two consecutive statements.

Change-Id: I3855b2dc8523db1ea860f72ad9818738162495c6
Reviewed-by: Qt CI Bot &lt;qt_ci_bot@qt-project.org&gt;
Reviewed-by: Fabian Kosmale &lt;fabian.kosmale@qt.io&gt;
</pre>
</div>
</content>
</entry>
</feed>
