Go to file
Marc Mutz 49057a1eab QVariant: attempt to work around an ICE on linux-arm-gnueabi-g++ (Ubuntu 11.10) with constexpr QSizePolicy
This is the error:

  src/corelib/kernel/qvariant_p.h: In constructor ‘QVariantPrivateSharedEx<T>::QVariantPrivateSharedEx() [with T = QSizePolicy]’:
  src/corelib/kernel/qvariant_p.h:107:61: internal compiler error: in gimplify_init_ctor_eval, at gimplify.c:3560

There are two things fishy in this file:

1. Use of the unnamed namespace in a file that gets included
   in different libraries. While not technically undefined
   behavior, it may become so when used in the implementation,
   which it is.
2. Missing explicit initialization of a member of
   QVariantPrivateSharedEx. This is just a wild guess, because
   the ICE happens in that line. That class itself is quite
   smelly, because the address of an object is taken before
   the lifetime of the object begins. A fix would be to store
   the object in a wrapper class from which QVPSEx inherits
   _first_, but then a cast from QVPSEx to QVariant::PrivateShared
   would require pointer adjustments, and I didn't look through
   all the code to determine whether that would be an issue.
   Having been bitten by this sometime ago:
    https://marcmutz.wordpress.com/private-practice/private-practice-taming-templates/#edit-20111128
   I opted to do these easy changes first to see whether they
   already fix the ICE.

Change-Id: Ic15fd928b3dff2318c425c915b2dab5e54254d71
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-16 03:12:54 +01:00
bin Use the new warning enabling/disabling macros in qtbase 2014-12-03 18:09:17 +01:00
config.tests Add a configure-time check for an IPC support 2015-01-09 10:58:42 +01:00
dist Merge remote-tracking branch 'origin/5.4.0' into 5.4 2014-12-05 11:53:33 +01:00
doc Merge remote-tracking branch 'origin/5.4' into dev 2014-12-18 12:12:58 +01:00
examples Haiku: Make examples compile on Haiku 2015-01-14 05:37:12 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs WinRT: Refactor icon specification usage 2015-01-13 11:29:42 +01:00
qmake remove dead code 2015-01-13 11:47:39 +01:00
src QVariant: attempt to work around an ICE on linux-arm-gnueabi-g++ (Ubuntu 11.10) with constexpr QSizePolicy 2015-01-16 03:12:54 +01:00
tests Update QFileSelector to use QSysInfo better 2015-01-16 03:11:51 +01:00
tools Merge remote-tracking branch 'origin/5.4' into dev 2014-12-18 12:12:58 +01:00
util QUnicodeTables: mark all functions as nothrow 2015-01-10 08:42:55 +01:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Remove qtdemo from gitignore 2014-09-17 12:38:55 +02:00
.qmake.conf Enable -Werror for all of qtbase 2013-09-04 01:50:10 +02:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
configure Add a configure-time check for an IPC support 2015-01-09 10:58:42 +01:00
configure.bat Update license headers and add new license files 2014-09-24 12:26:19 +02:00
header.BSD Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.FDL Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.LGPL Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
header.LGPL3 Android: Don't include Apache code under LGPLv2 license 2014-10-02 05:59:17 +02:00
header.LGPL21 Added header.LGPL21 2014-08-23 07:17:35 +02:00
header.LGPL-ONLY Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
INSTALL Doc: Update links in INSTALL file 2014-01-16 20:37:25 +01:00
LGPL_EXCEPTION.txt Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.LGPLv3 Update license headers and add new license files 2014-09-24 12:26:19 +02:00
LICENSE.LGPLv21 Update license headers and add new license files 2014-09-24 12:26:19 +02:00
LICENSE.PREVIEW.COMMERCIAL Update LICENSE.PREVIEW.COMMERCIAL license 2013-06-03 20:04:26 +02:00
qtbase.pro remove nonsensical claim about contains() 2014-11-13 14:33:16 +01:00
sync.profile ANGLE: upgrade to 2.1~07d49ef5350a 2014-08-05 16:43:22 +02:00