summaryrefslogtreecommitdiffstats
path: root/src/corelib/global/qcompilerdetection.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-10-131-0/+3
|\ | | | | | | | | | | | | | | | | Conflicts: src/network/socket/qabstractsocket.cpp src/plugins/platforms/winrt/qwinrtscreen.cpp src/sql/drivers/mysql/qsql_mysql.cpp Change-Id: Ifb73623d09f53340ee5e10283f1f86b580998902
| * ICC on Windows: Disable ref-qualified member functions in MSVC <= 2013Thiago Macieira2015-09-231-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | Like MSVC, ICC on Windows in debug mode always makes calls to dllexported functions instead of inlining them. Since MSVC 2013 doesn't know about ref-qualification of member functions, this creates an incompatibility between DLL creation and DLL use. Task-number: QTBUG-48349 Change-Id: I42e7ef1a481840699a8dffff14053b594810fb42 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Remove QT_WARNING_DISABLE_GCC for ClangThiago Macieira2015-09-251-1/+1
|/ | | | | | | | There's QT_WARNING_DISABLE_CLANG for when a warning applies to a Clang build. Change-Id: I42e7ef1a481840699a8dffff1406ac36b6a6eac3 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Disable #pragma diagnostic [push|pop] for gcc 4.5Kai Koehne2015-08-031-1/+1
| | | | | | | | | | | | | | | | | Fix warnings like qalgorithms.h:40:16: warning: expected [error|warning|ignored] after `#pragma GCC diagnostic` As the comment below also indicates, #pragma GCC diagnostic [push|pop] is only supported from gcc 4.6 upwards. See also the GCC 4.6 changelog: https://gcc.gnu.org/gcc-4.6/changes.html [ChangeLog][Compiler specific Changes] GCC: Fixed a regression introduced Qt 5.5.0 that generated lots of compiler warnings in Qt public headers when using the (deprecated) version 4.5 of GCC. Change-Id: I425388b61cd5fbf464a0f7dd46ce403d35c532a4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Also disable constexpr support in ICC with MSVC before MSVC2015Thiago Macieira2015-07-181-0/+3
| | | | | | | | | | Because the MS standard library headers won't have the necessary constexpr markings, some types that should be literal (like std::atomic) aren't and some functions that should be constexpr (like std::numeric_limits:max()) aren't. Change-Id: Ib306f8f647014b399b87ffff13f1c74093b11af1 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Set Q_CC_INTEL to the ICC version when in MSVC compat modeThiago Macieira2015-07-161-1/+1
| | | | | | | | Commit ffcad3244ff6e2429da1bf985d6d1116c251c2ec did that for the GCC- compat mode, but I forgot the MSVC one. Change-Id: Ib1d49f003062638b4e27e5ead4554e25f539c373 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Improve ICC compatibility with older MSVC versions (up to 2010)Thiago Macieira2015-07-161-0/+10
| | | | | | | | | | | | | | | | | | | | | Like on OS X and Linux, ICC uses the native compiler's standard library headers, so the C++11 features that depend on headers need special attention. * <initializer_list> is missing with MSVC 2012. It is present on 2010 for some reason and it appears to work * ICC disables Unicode string support prior to MSVC 2015, probably because MSVC Standard Library headers have a typedef for char16_t std::nullptr and std::move should have come with MSVC 2010, but I'm not keeping compatibility with MSVC 2008. It's been deprecated since ICC 14.0 (Composer XE 2013 SP1, released in 2013) and support was removed in 15.0 (Composer XE 2015, released in 2014). ICC hasn't supported MSVC 2005 since ICC 13.0 (Composer XE 2013). Task-number: QTBUG-47119 Change-Id: Ib306f8f647014b399b87ffff13f139174aeeafff Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Disable thread-safe statics for MSVC 2015: they're brokenThiago Macieira2015-07-161-1/+2
| | | | | | | | | | | | An object that throws in its constructor cannot be reentered. This violates both C++11 and C++98. It's also a regression from MSVC 2013. The unit test is renamed to indicate what it really does, as opposed to a misleading name that was probably a "thinko" on my part. Task-number: QTBUG-47224 Change-Id: Ib306f8f647014b399b87ffff13f132436d0578ef Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Apple's 3.6.0svn based clang doesn't support -Winconsistent-missing-overrideGabriel de Dietrich2015-06-281-1/+1
| | | | | | | | | | That's the version Apple ships with Xcode 6.3.2. We set the threshold to Xcode 7, whose clang version supports the "missing override" warning. Change-Id: Ibcab8a45306120bdcd02ca5b0bb0d1c638cea177 Task-number: QTBUG-46833 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Merge remote-tracking branch 'origin/5.5.0' into 5.5Liang Qi2015-06-271-2/+4
|\ | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qcocoafiledialoghelper.h Manually fixed src/testlib/qtestcase.cpp to return the right type. Change-Id: Id1634dbe3d73fefe9431b9f5378846cb187624e4
| * Detect and set Xcode 6.3 clang versionGabriel de Dietrich2015-06-221-1/+3
| | | | | | | | | | | | | | | | | | | | This becomes necessary to avoid compilation errors with Xcode 7 and clang 7.0.0. (Note that its version information doesn't state which LLVM version it's based on, though we suspect it could be 3.7.0svn.) Change-Id: I2bfc7f2b73ca7a61798b123cc2715037028f0e5f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Compile on 10.7: Disable constexpr supportMorten Johan Sørvig2015-06-101-1/+1
| | | | | | | | | | | | | | | | | | Apple Clang 3.2 is known bad with broken or partial support. Which version is the first good version is unknown. Change-Id: I1b938281680dde5acbe0e08979444b6055a1cc4e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Disable C++11 thread_local with ICC on OS XThiago Macieira2015-06-221-1/+4
|/ | | | | | | | | | | It appears the ABI is lacking support for this at this point in time, even though __thread works. ICC 15 works, probably by making it an alias to __thread, but neither ICC 16 beta nor Clang work with thread_local. Intel-bug: DPD200371699 Intel-ID: 6000107242 Change-Id: I049a653beeb5454c9539ffff13e639bdb83b8843 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-151-2/+2
|\ | | | | | | Change-Id: I004854a25ebbf12b1fda88900162fe7878716c58
| * Doc: Fix using Apple-related terminology in Qt CoreAlexander Volkov2015-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | Use the name "OS X" instead of "Mac OS X", "Mac OS" and "OSX", and mention iOS. Replace "Carbon Preferences API" by "CFPreferences API" in the QSettings documentation. Change-Id: Ia7f9fb874276c7c445a1649df521b96ff43daa0c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Fix BlackBerry build.Sérgio Martins2015-04-041-0/+3
| | | | | | | | | | | | | | | | BlackBerry SDK uses gcc 4.6 which supports nullptr, but by default it uses the dinkum C++ library, which doesn't support nullptr_t. Change-Id: Ifa95029a9bfa4dc2fc064db5d7a67012e95ac0e2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Make Q_ASSERT_X also check its argument for validityThiago Macieira2015-03-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | Commit ebef2ad1360c80ad62de5f4a1c4e7e4051725c1c did it for Q_ASSERT, but I somehow forgot to do it for Q_ASSERT_X. Do it now. This includes the fix from 9a3d7adaad367417aaa2e1ee1f996185a881a4b5 to silence a Clang warning. Change-Id: Iee8cbc07c4434ce9b560ffff13ca066a5b5ab5d4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-241-1/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/xml/htmlinfo/simpleexample.html examples/xml/rsslisting/rsslisting.cpp qmake/generators/win32/msbuild_objectmodel.cpp src/3rdparty/harfbuzz-ng/src/hb-private.hh src/corelib/global/qlogging.cpp src/corelib/io/qstorageinfo_unix.cpp src/corelib/thread/qwaitcondition_unix.cpp src/gui/kernel/qguiapplication.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp src/testlib/doc/src/qt-webpages.qdoc tests/auto/other/qaccessibility/tst_qaccessibility.cpp Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
| * Merge remote-tracking branch 'origin/5.4.1' into 5.4Frederik Gladhorn2015-02-101-1/+4
| |\ | | | | | | | | | Change-Id: I9d668a655b548feab43e9d4b03e2437bdff76437
| | * Correct the version of ICC that has the constexpr bug fixedThiago Macieira2015-01-291-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | 01fc82e3574614762d2ce061dd45ce4995c79e7f updated the code for ICC 15, but it needs to be 15.0.1 Change-Id: Iba8d819ab9174d9dac07ffff13bbc26b9be46d53 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | | Merge dev into 5.5Oswald Buddenhagen2015-02-231-0/+5
|\ \ \ | | | | | | | | | | | | Change-Id: Id6dbbbfc542c214fe695c6795c6aaf23aedc1cd1
| * | | Disable constexpr support for QNXSean Harmer2015-02-201-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even though the compiler on QNX supports C++11, the stdlib it ships with is missing constexpr on many important functions. This is required to make qtbase compile on QNX 6.6. Change-Id: I59a4263483b1d94b9d2dceb947876e445f9662af Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | | | Use Clang 3.6's __builtin_assume in Q_ASSUMEThiago Macieira2015-02-171-1/+5
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's more efficient than the current implementation. Example: int f(int i) { Q_ASSUME(i < 8); return i < 8; } Before: cmpl $8, %edi setl %al movzbl %al, %eax retq After: movl $1, %eax retq Change-Id: I1a800c709d3543699131ffff13c1c50713a8da2c Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | QNX: fix compiler detection.Rafael Roquetto2015-02-121-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Short version: fix build on QNX 6.5.0. C++11 has been included on QNX 6.6.0's libcpp (Dinkum C++11 libs), while continuing to be unsupported by the older QNX 6.5.0 toolchain. This patch updates the mechanism for detecting the QNX's libcpp that is being used during compile time, and also updates the list of C++11 features to be disabled when QNX C++11 support is not present by adding Q_COMPILER_UNICODE_STRINGS and Q_COMPILER_NOEXCEPT to it. Change-Id: Iddb3626206a0d97d7103c1ff17ba0ae953e9a4b9 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-01-211-0/+6
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/global.pri src/corelib/global/qcompilerdetection.h src/corelib/global/qglobal.h src/corelib/tools/qdatetime.cpp src/plugins/platforms/xcb/qxcbscreen.h src/plugins/platforms/xcb/qxcbwindow.h src/widgets/dialogs/qcolordialog.cpp src/widgets/dialogs/qcolordialog_p.h tools/configure/configureapp.cpp Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
| * | Move enabling of C++11 Unicode Strings with ICC from 12.1 to 14.0Thiago Macieira2015-01-171-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | The support in 12.1 and 13.x appears to be incomplete. Move it to the official supported version https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler Note: this commit will cause a conflict in 5.5 against 99357e32a0e29c73ed721d6d31da66635e6586ca Task-number: QTBUG-43864 Change-Id: Ic5d393bfd36e48a193fcffff13b9a07106e96795 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Give ICC-as-Clang a Q_CC_CLANG version number tooThiago Macieira2015-01-061-0/+4
| | | | | | | | | | | | | | Give it version number 3.5 for current compatibility. Change-Id: Ia023d29b3b3946f8642a0550279ae63cbb803fc5 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
| * Re-enable constexpr for ICC 15Thiago Macieira2015-01-061-0/+1
| | | | | | | | | | | | | | | | | | The bug noted in d88e4edcd548e5bb024e75016c5a3449d103bd8d appears to be resolved. Change-Id: Id20906ff83f74bd16267d44bf447626b81187e71 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Remove Q_C_CALLBACKSThiago Macieira2015-01-171-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useless. The C++ language does require callbacks passed to C functions to also be extern "C". That's what this macro was doing. But #ifdef'ing for the macro only made the code uglier. Just let the extern "C" be there for all compilers. PS: C++ classes can't be extern "C"... Change-Id: Ic5d393bfd36e48a193fcffff13b9c9b3923443dd Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Fix detection of C++11 Unicode strings with icl.exeThiago Macieira2014-12-201-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | Even though the compiler supports it, the MSVC headers might do something wrong and make compilation fail later due to attempting to overload unsigned short with char16_t. The _CHAR16_T definition comes from <cstddef>, so include that instead of <stddef.h> in C++ mode. Change-Id: Ifaeb1c92bde2db4ed4129507462391904afd6510 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Unbreak the build with the Intel compiler on WindowsThiago Macieira2014-12-201-1/+11
| | | | | | | | | | | | | | | | icl.exe behaves like cl.exe (MSVC), so we should use the MSVC-style of __pragma instead of _Pragma. Change-Id: Ieee740c430589c3bb1b964138f8bf7f58b8d2892 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Remove Q_NO_USING_KEYWORDThiago Macieira2014-12-201-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's a lot of code now requiring it. Any compiler that doesn't support the keyword is too old for Qt now. The last time anyone asked about this macro was for QTBUG-27393 and we don't know which compiler that was. As a necessity, this patch contains a reversal of a0c3a57aed5cde37017733e7cf5e41cc6a1174aa [ChangeLog][Compiler Specific Changes] Qt 5.5 now unconditionally uses the "using" keyword. Compilers that do not support this keyword are deprecated and will not be able to build Qt. Previous versions of Qt may or may not compile, as no testing was done to ensure it worked. Change-Id: Ief042f34aba555a095d1f342a0ee7ee9feadf42d Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-181-6/+6
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/platformsupport/platformcompositor/qopenglcompositor.cpp src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I5422868500be695584a496dbbbc719d146bc572d
| * Fix the Apple build version numbers for ClangThiago Macieira2014-12-121-6/+6
| | | | | | | | | | | | | | | | A bunch of zeroes were missing. And not to the left. Task-number: QTBUG-43279 Change-Id: I1a710cf572099547b2ade7b2574a7e0a61649758 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | Add the C++11 features supported by Visual Studio 2015Thiago Macieira2014-12-131-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tested with the November 2014 Preview. There are three C++11 features that aren't supported as of MSVC2015: - attributes - constexpr - uniform initialization Microsoft recognizes that constexpr support in this compiler is partial, so we don't enable it yet. Attributes are not implemented at all. As for uniform initialization, Microsoft's feature list says initalizer_list is supported, but we still see compile errors trying to initialize arrays in constructor initialization lists. Change-Id: Id686ccb6b4b2ecd63f16d308552174db1f05f2c5 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Add macros for enabling/disabling warningsThiago Macieira2014-12-031-1/+45
| | | | | | | | | | | | | | | | | | | | This allows us to avoid the ugly #if for compiler versions. We might still need for when a warning only occurs in one compiler version, but otherwise the code will be much cleaner. Change-Id: Ibc941d898b3dad2e3d87c11378f29139c31f0fff Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-241-19/+47
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice.cpp src/plugins/bearer/linux_common/qofonoservice_linux.cpp src/plugins/bearer/linux_common/qofonoservice_linux_p.h src/plugins/platforms/android/qandroidplatformtheme.cpp src/tools/bootstrap/bootstrap.pro src/widgets/styles/qmacstyle_mac.mm Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
| * Define the Intel compiler and Microsoft C++ versions in the Q_CC_ macrosThiago Macieira2014-11-051-3/+3
| | | | | | | | | | | | | | | | | | This is for completeness, since we've done the same for Q_CC_GNU and Q_CC_CLANG. We won't really use the macros like this because both __INTEL_COMPILER and _MSC_VER are readily usable. Change-Id: I669c60166fa4839d43f84f339e6896321d62817f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * Store the GCC version number in Q_CC_GNUThiago Macieira2014-11-051-12/+12
| | | | | | | | | | | | | | | | | | | | | | The sequence of (__GNUC__ * 100 + __GNUC_MINOR__) was used in quite a few places. Simplify it to make the code more readable. This follows the change done for Clang, which was quite necessary since Apple's version of Clang has different build numbers. Change-Id: I886271a5a5f21ae59485ecf8d140527723345a46 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * Define Q_CC_CLANG to be the version of upstream Clang that's in useTor Arne Vestbø2014-11-051-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | We map the Apple Clang versions to upstream, so that we have one define to compare against. Fixes build break on iOS due to qbasicatomic.h not defining QT_BASIC_ATOMIC_HAS_CONSTRUCTORS on Apple Clang versions, which is needed after 1e9db9f5e18123f2e686c10b Change-Id: I17493c0187c20abc5d22e71944d62bfd16afbad2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Enable C++11 atomics with ClangThiago Macieira2014-10-311-1/+3
| | | | | | | | | | | | | | | | I don't know why it was an #if 0. The __has_feature has been there for a while. But, just to be sure, we check the presence of the header too. Change-Id: I36e34c9e8fd4ce55c98966d2fad246b77eb16597 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
| * Fix compilation of <atomic> with ICC and libc++Thiago Macieira2014-10-311-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | The libc++ header does this: #if !__has_feature(cxx_atomic) #error <atomic> is not implemented So we can't enable the feature until the compiler reports true for that test. Change-Id: I96f1c7eea8b93d93bd721fe5a85fa987339d091f Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Add Q_DECL_RELAXED_CONSTEXPR macroOlivier Goffart2014-10-241-1/+10
|/ | | | | | | | | Expands to constexpr if C++14 relaxed constepxr are supported by the compiler [ChangeLog][QtCore] Added Q_DECL_RELAXED_CONSTEXPR for the corresponding C++14 feature Change-Id: Id6b56b3a17da2ff838c80795e528e1247dc13f63 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Gcc 4.5.* build fix.Tomasz Olszak2014-10-101-2/+5
| | | | | | | | | | | | | | | Q_COMPILER_DEFAULT_MEMBERS and Q_COMPILER_DELETE_MEMBERS are now set starting from gcc 4.6. Pre-4.6 compilers implement a non-final snapshot of N2346, hence default and delete functions are supported only if they are public. Starting from 4.6, GCC handles final version - the access modifier is not relevant. Compiler error: qsharedpointer_impl.h:717:31: error: 'QEnableSharedFromThis<T>::QEnableSharedFromThis()' declared with non-public access cannot be defaulted in the class body Change-Id: If1d3d4696f91912a09ca72bd4aa1fb07f491a0cb Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Do not use Q_COMPILER_CLASS_ENUM for gcc 4.4hjk2014-09-291-1/+1
| | | | | | | | | | | | | It breaks the compiler self-test: tst_compiler.cpp:754: error: no matching function for call to ‘qCompare(tst_Compiler::cxx11_class_enum()::X&, tst_Compiler::cxx11_class_enum()::X, const char [2], const char [13], const char [17], int)’ We not should assume it is safe to use, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064 and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37946. Change-Id: I72c9c56e3e4f62bdfdfa133b6b0a2e610b5331c8 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-18/+10
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Bump Q_COMPILER_INITIALIZER_LISTS to GCC 4.5Adam Majer2014-09-061-1/+3
| | | | | | | | | | | | | | | | | | | | | | While GCC 4.4 has the required header, it is missing important typedefs requiring use of pointers instead. This is acceptable if only used in one or two places, but a quick search through the source code lists quite a few usages of const_iterator typedef. $ git grep -c initializer_list\<.\*\>::const_iterator src/corelib/global/qflags.h:2 src/corelib/json/qjsonarray.h:1 src/corelib/json/qjsonobject.h:1 src/corelib/tools/qhash.h:2 src/corelib/tools/qmap.h:2 src/corelib/tools/qset.h:1 The lesser-evil is to bump Q_COMPILER_INITIALIZER_LISTS to version GCC 4.5 and retain usage of required (by standard) initializer_list typedefs. Change-Id: I38d6fa0ef3dc7d958587b406d33e3e3a7378c026 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove the last remnants of iWMMXt in QtThiago Macieira2014-08-051-1/+0
| | | | | | | | This code hasn't been tested for at least 4 years. It's not maintained and probably doesn't work. Change-Id: I4b9a5179e34111b400914f91caa6b741b69771bb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Add a few missing Neon constructsThiago Macieira2014-08-051-0/+1
| | | | | | | | | | | The #undef in qcompilerdetection.h was missing. And apparently we can detect Neon since Windows Mobile 6 too. Change-Id: I38a5f71b2704a29a706183e39f43db3a78a729db Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>