Commit Graph

38519 Commits

Author SHA1 Message Date
Sona Kurazyan
012f7bb622 Copy backend configuration while setting dtls config
When setting dtls configuration, we should also copy
backendConfig, otherwise this setting will be ignored.

Change-Id: I4df53e8e6d8c2bd0eb7dddb9928b7883c401d60a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-01-05 09:22:36 +00:00
Ville Voutilainen
1fb41a3869 Fix qbswap calls for Big Endian targets
Task-number: QTBUG-71945
Change-Id: I5356f8e32d00ea591b1f65cdd4111276fcf876ac
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Khem Raj <raj.khem@gmail.com>
2019-01-05 09:22:13 +00:00
Tor Arne Vestbø
1075f10184 macOS: Optimize detection of dark mode
Change-Id: I579527c54f8453c1e4f57bab7eebfc576b6ad365
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-01-04 20:55:14 +00:00
Gatis Paeglis
0c54e0251f ibus: send batched QInputMethodQueryEvent event
Change-Id: Idc537a497569d86bb63776934d5e0bbbc39291be
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-01-04 20:12:04 +00:00
Gatis Paeglis
fe63900dc9 xcb: rework focus-in peeker so we can drop PeekFunc API
The API for registering temporary peek function was added ~7 years
ago by 78264f333e. It was never been
used for anything else. The solution from 78264f333 also did not work
very well on KDE desktop, quoting Martin Flöser:

"In case the keyboard gets grabbed by another process and immediately
ungrabbed the active Qt application window receives a FocusOut and a
FocusIn event. FocusOut on the grab of keyboard, FocusIn on the ungrab.

Qt registers a peek function for checking the FocusIn event, but the
timespan is too short: the new event is not yet queued. This causes
a QEvent::WindowDeactivate being emitted, followed directly by a
QEvent::WindowActivate. This has quite some side effects, for example
rendering flickering in the GUI (switching to inactive/active in short
time frame), hooks on WindowDeactivate being run, etc.

Real world examples for such short keyboard grabs are global shortcut
listener applications like kglobalaccel5. It has e.g. a passive key
grab on the mute key, which is then turned into an active grab when
the key is grabbed. Kglobalaccel5 immediately ungrabs the keyboard
and flushes the connection if it gets a key event, but it of course
causes the sequence of FocusOut and FocusIn events in the active
Qt window."

Reworked the code to use QTimer instead, which is more elegant solution,
because it does not rely on race-conditions, but uses a concreate time
to wait instead. Also the need to write focusInPeeker() caused us to
duplicate event handlers that were present already elsewhere.

Change-Id: I647e52fb2634fdf55a640e19b13265c356f96c95
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-01-04 20:11:52 +00:00
Tony Sarajärvi
8c2ca29045 Revert "Blacklist tst_QTimer::basic_chrono on macOS"
Incorrectly blacklisted.

This reverts commit 40a7c57ba9.

Task-number: QTBUG-61013
Change-Id: I7d9dc4a4b1c8d7ff77ab75c61027b908ffb74552
Reviewed-by: Liang Qi <liang.qi@qt.io>
2019-01-04 09:45:41 +00:00
Vitaly Fanaskov
f7dc6042cb Remove dead code
Task-number: QTBUG-44131
Change-Id: Ic092f2be5855840d6467560159c12f3c5aa36344
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-01-04 09:42:14 +00:00
Liang Qi
03039979b5 Merge remote-tracking branch 'origin/5.12' into dev
Also blacklist tst_QRawFont::unsupportedWritingSystem() and
tst_QGlyphRun::mixedScripts() on windows for now.

 Conflicts:
	qmake/generators/makefile.cpp
	src/corelib/itemmodels/qstringlistmodel.cpp
	src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h
	tests/auto/corelib/itemmodels/qstringlistmodel/tst_qstringlistmodel.cpp
	tests/auto/gui/text/qglyphrun/BLACKLIST
	tests/auto/gui/text/qrawfont/BLACKLIST

Task-number: QTBUG-72836
Change-Id: I10fea1493f0ae1a5708e1e48d0a4d7d6b76258b9
2019-01-04 07:33:14 +01:00
Tor Arne Vestbø
4dc2bc323c macOS: Remove Mojave forward-declarations now that we build with Xcode 10
Change-Id: I8528932f3744fbf3473219b6eeda7c26ac039b67
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-01-03 18:38:18 +00:00
Tor Arne Vestbø
88e34b0a46 CoreText: Fix inaccurate use of pixelSize when dealing with pointSize
Change-Id: If46fa157bc921efd8145823c806b6b04f49233cf
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-01-03 18:38:15 +00:00
Vitaly Fanaskov
d8bbb5ee0e Respect roles of buttons added to QMessageBox
When a button added to QMessageBox has AcceptRole or YesRole, the signal
accepted() will be emitted upon click on the button. If the button has
RejectRole or NoRole, the signal rejected() will be emitted upon click
on the button. If a button has a different role, neither accepted() nor
rejected() will be emitted. This works for both standard and custom
buttons.
The signal finished() with result code will be sent regardless of a
clicked button role.
Also added documentation strings for some methods of private classes in
order to have better tooltips in IDE(s).

Task-number: QTBUG-44131
Change-Id: I521a4e5112eb4cf168f6fbb4c002dbe119aeeb09
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-01-03 18:38:12 +00:00
Albert Astals Cid
9682d217e2 QImage::create fail if given an empty size
Previously valid but empty sizes i.e. QSize(0, 131073)
where accepted, but such sizes make no sense for an image
since they actually contain no pixels

Change-Id: Ie61e33401ad8aaea633646c66fc03f36793e839c
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-01-03 15:07:47 +00:00
Samuel Gaist
1606a8aa1c Doc: fix typo in QAbstractSocket::bind documentation
Fixes: QTBUG-72780
Change-Id: I16d89d29f573dba37ed8e1986ed9677117ca6aad
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2019-01-03 11:38:09 +00:00
Samuel Gaist
7ca39bf7bc Doc: cleanup semaphore example
This patch removes unused signal and variable.

Change-Id: Ia4eaf083493d3d37e3ff22e0380d5a5ee69f91cf
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
2019-01-03 11:37:22 +00:00
Gatis Paeglis
dd988e2074 configure: add XCB GL integration features
This way Qt builders can see if everything has been configured
properly for XCB GL integrations at configure time, instead of
at the end of the build process.

Change-Id: I00740cc2edd7f6ecfcda0ddfb22649d1b4db4aa2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2019-01-03 10:29:17 +00:00
Gatis Paeglis
0decdcb754 configure: add X11 subsection in "Features used by QPA backends"
xcb-xlib is used by XCB and EGLFS_X11.

xlib is used by XCB, EGLFS_X11 and offscreen plugin (not listed
currently under "QPA backends").

egl_x11 is used by XCB GL integration plugin and EGLFS_X11.

Renamed X11 -> XCB under "QPA backends", because that is the
correct QPA name.

Change-Id: I455ac3a41da3ab84453d8de0edc657c3a5e064c9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2019-01-03 10:09:47 +00:00
Gatis Paeglis
7d8fe4d98f configure: make xcb-render a hard dependency for xcb plugin
Its been available by default since at least libxcb 1.5, and in Qt 5.12
we have even increased the minimal required libxcb version to 1.9.

Having configure switches for extensions is a legacy from Qt 4. There
are still few exceptions in Qt5, where the reason is that we have to
support Linux distributions that don't ship recent enough libxcb.

Task-number: QTBUG-30939
Change-Id: I0a02d93b6411119ec018b0cb8fe5c63beeab62ee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-01-03 10:09:40 +00:00
Gatis Paeglis
6899117a59 configure: properly atomize render vs. renderutil
xcb-render is a C interface for X11 extension. xcb-render-util is a
utility library that complements xcb-render by providing convenience
functions and interfaces which make the raw X protocol more usable.

Bumped xcb-render-util version to avoid having include hacks. We were
bundling 8 years old release 0.3.8 (Apr, 2011). 0.3.9 is the latest
release and it was relesed 4,5 years ago (Jun, 2014). All CI machines
have 0.3.9. The only thing that have changed in xcb-render-util sources
since 2011 is that we don't need to have various hacks to include
xcb_renderutil.h in C++ files. Upgrading bundled XCB libs was also
requested in QTBUG-71109.

Task-number: QTBUG-71109
Change-Id: Ib261f7584ad81be95660123b007e2200a3042f4c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2019-01-03 10:09:34 +00:00
Eskil Abrahamsen Blomfeldt
ceddc14af1 Draw ShowTabsAndSpaces symbols with the correct font
We would draw the tab and space symbols without setting the correct
font on the painter first.

[ChangeLog][QtGui][Text] Fixed so ShowTabsAndSpaces will use the
correct font.

Fixes: QTBUG-62540
Change-Id: I3b7d6d317473e7aab722dafe1a128c57a830f634
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2019-01-03 08:48:41 +00:00
Christian Ehrlicher
a21f3431b8 Cleanup Widgets examples - new signal/slot syntax
Cleanup the Widget examples - use the new signal/slot syntax where
possible - tutorials subdirectory

Change-Id: I741589f6616578412ad74f8371e0e3c87df783a2
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
2019-01-03 08:30:04 +00:00
Christian Ehrlicher
8c04aab896 Cleanup Widgets examples - new signal/slot syntax
Cleanup the Widget examples - use the new signal/slot syntax where
possible - layout, statemachine, tools and touch subdirectory

Change-Id: I466b309b643ef7ffc27be7591fa10f4c75cfd3f8
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-01-03 08:29:56 +00:00
Ryan Chu
451ebdff82 Revert "Disable Docker-based test servers on macOS temporarily"
This reverts commit c1fc47b06a.

CI is now running on 18.04 hosts and vmx is enabled on that level.
As the update in QTQAINFRA-2288, the macOS 10.13, openSUSE 42.3
and Ubuntu 18.04 had vmx enabled inside the VM.

Change-Id: I6ec4094ca826418f46f417b3cab89678bb089417
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2019-01-03 03:27:32 +00:00
Oliver Wolff
f9d8762d37 winrt: Remove yet another Windows Phone leftover
Hardware and camera button handling are phone specific APIs we no longer
support in Qt.

Change-Id: Ib11f894a426b8e4b71acf24876437ddab2cea548
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2019-01-02 23:32:34 +00:00
Christian Ehrlicher
7ba16f4c1e QComboBox/WindowVistaStyle: restore focus rect
The focus rect for the QComboBox was removed during the refactoring done
in 5c60e4b8f9.
Readd the functionality in a similar to
QWindowsStyle::drawComplexControl().

Fixes: QTBUG-69239
Change-Id: I74e4060fbe52432318e3c986fc838cf353d99843
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-01-02 21:32:34 +00:00
Nico Vertriest
9636a43abc Doc: Update page Tamil Script Code for Information Interchange
Task-number: QTBUG-56668
Change-Id: I173d73ef5e9b08e865cb75fa03849665fcda652e
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2019-01-02 09:42:59 +00:00
Alejandro Exojo
7f34e8b58c Fix and unit test QPalette::resolve
The function is setting the brushes correctly in the return value, but
without updating the resolve_mask, making it return wrong results in
functions like isBrushSet or the debug operator.

Added a unit test for the member function, since the class is still
mostly untested, and clarified the reference documentation of what the
function is supposed to do.

Change-Id: Iaa820dc44f095e125f9375cb00da5569986803c6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-31 14:30:26 +00:00
Christian Ehrlicher
7ef0b575b3 QtTest: add toString(QModelIndex)
Add toString(QModelIndex) to make debugging itemmodels/views autotests
easier.

[ChangeLog][QtTest] Added QTest::toString(const QModelIndex &idx)

Change-Id: I20ad6b1fb145c00a3239131a3274fdbefc3b3ffd
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-12-31 09:20:40 +00:00
Alejandro Exojo
94daa69699 Remove unused pointers for PressDelayHandler
Change-Id: I7e2fcf828c6027737b176aa566ebd7e48c7953e7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-31 09:15:34 +00:00
Christian Ehrlicher
4c1313197b QbstractItemView: Allow Key_Space for keyboardSearch()
The keyboard search in QAbstractItemView did not handled Key_Space
because this is also an edit trigger. It was also consumed if no edit
was started.
This patch changes this behavior and triggers the keybaord search when
the editing was not started.

Fixes: QTBUG-48505
Change-Id: I58e0d283f863c9b12ac5d2f6171f15522bd7c30a
Reviewed-by: David Faure <david.faure@kdab.com>
2018-12-25 10:15:32 +00:00
Christian Ehrlicher
f568bfce64 QTreeView: fix keyboard navigation when first or last item is disabled
The keyboard navigation did not consider the disabled state when trying
to find the new index under all circumstances. This lead to a
non-working PageUp/Down/Home/End navigation when the first or last item
was disabled or hidden.
Fix it by explicitly checking if the calculated item is hidden/enabled
and skip it in this case.

Fixes: QTBUG-44746
Fixes: QTBUG-34832
Change-Id: Ifa3b64a405e67b792db5db9d186d426fcfe183fb
Reviewed-by: David Faure <david.faure@kdab.com>
2018-12-25 10:15:29 +00:00
Alexander Volkov
f05cc4144e QDialog: Pass transient parent as a parent to native dialogs
Sometimes it's needed to show a native dialog for another process,
for example in xdg-desktop-portal-kde. In this case we have WId
of a parent window which can be used for calling
QWindow::setTransientParent(QWindow::fromWinId(...)).

Pass this transient parent to a native dialog so it could use
it as a transient parent for itself. Rename
QDialogPrivate::parentWindow() for clarity.

Change-Id: I68974ddea35f9366a0ddffe602d9d028f45e26fa
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-24 16:51:14 +00:00
Jeremy Whiting
c8720d6210 Fix typo in fetchmore example documentation
In fetchmore example documentation there's a typo on the first line.
The text should read 'shows how to' but instead reads 'shows how two'

Change-Id: Ifc169581e8fc43315dc01c7d1f267dd45600af82
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-12-24 12:01:03 +00:00
Christian Ehrlicher
844044f37b QTabWidget: properly horizontally align tab icon
When an icon used for a QTabWidget is smaller than the default size, it
was not properly aligned horizontally although it was done for the
vertical alignment.
Therefore also align it horizontally to be consistent.

Fixes: QTBUG-38108
Change-Id: I0e2e3af7ead699f2834aed1d8b67cbe775c897af
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-24 11:59:16 +00:00
Christian Ehrlicher
aece0a1356 QColor: mark light()/dark() as deprecated
QColor::light()/dark() are deprecated since Qt4 times. Therefore
annotate them with Q_DEPRECATED so they can be removed in Qt6.

Change-Id: Ifbfc59d6a070670a43c9b60a23f83cc4ba59bf07
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-12-24 11:58:53 +00:00
Luca Beldi
ff835a5030 Fix QStringListModel::setData to check for actual changes
QStringListModel::setData documentation states that
"The dataChanged() signal is emitted if the item is changed."
This patch actually respects the doc. setData will check that the data
actually changed before sending the dataChanged signal.

[ChangeLog][QtCore][QStringListModel] setData will now emit the
dataChanged() signal only if the string set is different from
the one already contained in the model

Change-Id: I4308a6f3b4851203fb899c5e29a36076e0c32f2f
Reviewed-by: David Faure <david.faure@kdab.com>
2018-12-24 08:07:36 +00:00
Tor Arne Vestbø
3306b16239 macOS: Only do gamma-corrected blending for subpixel-antialiased text
The grayscale font-smoothing doesn't expect to be linearly blended,
as first assumed.

Amended nativetext manual test to better diagnose the native Core
Text behavior. Non-linear blending will result in the magenta
text having a dark outline against the green background.

Change-Id: I24a5f04eb1bd66fb98d621078d80ee9b80800827
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-23 12:00:07 +00:00
Tor Arne Vestbø
5af60d3b37 macOS: Prevent checking for stale SDK without the required SDK name
There's no need to check the SDK at the root exclusive-build Makefile,
we can leave it to the individual build passes where the SDK variable
is available.

Fixes: QTBUG-72449
Change-Id: Ic829babf4c76e6d20812de0b94120199ebfb300c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-23 11:58:48 +00:00
Andy Shaw
f03941e411 Add overload of QSqlDatabase::cloneDatabase to allow cloning cross threads
Since QSqlDatabase::database() cannot be used to access another database
from another thread, then the overload is provided to make it possible
to clone with just the connection name. This will handle the cloning
internally safely then.

Fixes: QTBUG-72545
Change-Id: I861cc5aa2c38c1e3797f6f086594a1228f05bada
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-12-23 11:41:36 +00:00
Liang Qi
37b3098302 Revert "Revert "configure: remove xkbcommon_evdev transition hack""
This reverts commit 9ee6eed572.

Now the qt5 dev baseline have both old and new one. We can remove
the old one.

Change-Id: I9f9495f2ae82f1e23d800b66384301ca0fa8a646
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-12-23 10:46:48 +00:00
Morten Johan Sørvig
f0dd6655e1 Fix QSystemTrayIcon stale pointer access
The child imageCell is a NSView and may be retained by Cocoa,
which means it may outlive the parent QNSStatusItem.

Clear its parent pointer to avoid referencing a stale
pointer.

Task-number: QTBUG-47929
Change-Id: I6078070b8c9f512ecd034fee4e54b1d8282dabdf
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-23 09:23:50 +00:00
Morten Johan Sørvig
fb67ac6368 Modernize QNSImageView implementation
Use Objc properties instead of instance variables.

Change-Id: I4bddf2c9c824467d7c42dd5bb0c3b4aacd6b27be
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-23 09:23:42 +00:00
Tor Arne Vestbø
69f7115c43 macOS: Merge qt_mac_createRoleFonts into only caller
Change-Id: Id6e61a70e4ebe47896dcbc8680d1d6b06c747871
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-22 14:33:33 +00:00
Kai Koehne
8915c9715a Doc: Remove pre-Windows 7 from QCollator documentation
The code path that this refers to was removed already for Qt 5.11 in
commit 53fb2c48ef.

Change-Id: I4a7ae1b89b24c0ab7ceaa43f763c7ef422ca4900
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-22 10:00:49 +00:00
Kai Koehne
b978cdcb26 Make sure -prefix documentation is also valid for top-level build
Fixes: QTBUG-71540
Change-Id: I1c8c66706beaa130f9eb7a6f2ee02a21f98d8afc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2018-12-22 09:59:35 +00:00
Kai Koehne
07e5edf991 Doc: Consistently mark QT_XYZ_CAST_FROM_ASCII with \c
Otherwise it gets linkified, which looks inconsistent. Instead,
use \sa for functions where QT_NO_CAST_FROM_ASCII
or QT_RESTRICTED_CAST_FROM_ASCII is referenced.

Change-Id: Ic3933d8c4c81c963215de7f3aac4d0a11e61cbc2
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-12-22 09:59:25 +00:00
Kai Koehne
28a28af182 QtCore: Unify license headers
Change-Id: Iff4f6da9f0bbf7a0627101f455dd8467681b2783
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-12-22 09:58:09 +00:00
Kai Koehne
f372714e96 Doc: Fix typo in QStyle
Change-Id: Ic979cb66acb3f8824aefb6ad858c0f746ce3e02b
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2018-12-22 09:57:42 +00:00
Thiago Macieira
a7cea16005 MSVC x86: implement add_overflow for quint64
There's no 64-bit ADD instruction, so we make do with ADD+ADC. This is
what Clang generates. ICC uses the two as well, but then performs some
subtractions to find out if it overflowed. GCC for some inexplicable
reason attempts to use SSE2 if that's enabled, otherwise it performs the
subtractions like ICC.

Alternative implementation which generates better code, but violates
strict aliasing:

 uint *low = reinterpret_cast<uint *>(r);
 uint *high = low + 1;
 return _addcarry_u32(_addcarry_u32(0, unsigned(v1), unsigned(v2), low),
                      v1 >> 32, v2 >> 32, high);

Manual testing shows this works. tst_qnumeric passes in debug mode. MSVC
2017 15.9 still miscompiles in release mode (reported to MS as [1]).

[1] https://developercommunity.visualstudio.com/content/problem/409039/-addcarry-u32-wrong-results-with-constant-inputs.html

Change-Id: I61ce366d57bc46c89db5fffd15704d53ebd4af3c
Reviewed-by: Thomas Miller <thomaslmiller91@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-12-21 17:48:56 +00:00
Antonio Larrosa
9ab04795e2 Fix qfloat16 methods definition without declaration when using Q_QDOC
This fixes qtdoc failing to build on i586 because of an assertion in
libclang since Q_QDOC is defined and thus the declaration of the
qfloat16(float) constructor and operator float() are removed, thus
their definitions should be removed too, which is what this patch
does.

Fixes: QTBUG-72725
Done-with: Michal Srb <msrb@suse.com>
Change-Id: I6424873425d46345e09f411f9ce88f2520825da4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
2018-12-21 17:21:34 +00:00
Thiago Macieira
b337d2a88e Fix build with C++20
Fixes: QTBUG-72614
Change-Id: I548dbfddb69b4fd6a0a3fffd1572614a383366a5
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2018-12-21 16:22:59 +00:00