From 087f279fff143f7db01179b21cf873539319bfdc Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 11 Jun 2012 16:15:39 +0200 Subject: [PATCH] Don't use gcc extension for QByteArrayLiteral neither This extension doesn't work for e.g. default arguments in function declarations. Change-Id: I32b7afa6e01b6af55fb2409179b4fd94cb04cd8d Reviewed-by: Olivier Goffart Reviewed-by: Thiago Macieira --- src/corelib/tools/qbytearray.h | 16 ---------------- .../corelib/tools/qbytearray/tst_qbytearray.cpp | 2 +- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/src/corelib/tools/qbytearray.h b/src/corelib/tools/qbytearray.h index 1e2a93d9f0..489f5f2fb3 100644 --- a/src/corelib/tools/qbytearray.h +++ b/src/corelib/tools/qbytearray.h @@ -161,22 +161,6 @@ struct QByteArrayDataPtr }()) \ /**/ -#elif defined(Q_CC_GNU) -// We need to create a QByteArrayData in the .rodata section of memory -// and the only way to do that is to create a "static const" variable. -// To do that, we need the __extension__ {( )} trick which only GCC supports - -# define QByteArrayLiteral(str) \ - QByteArray(__extension__ ({ \ - enum { Size = sizeof(str) - 1 }; \ - static const QStaticByteArrayData qbytearray_literal = { \ - Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER(Size), \ - str }; \ - QByteArrayDataPtr holder = { qbytearray_literal.data_ptr() }; \ - holder; \ - })) \ - /**/ - #endif #ifndef QByteArrayLiteral diff --git a/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp b/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp index 9bb3506133..aa17a499a1 100644 --- a/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp +++ b/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp @@ -1880,7 +1880,7 @@ void tst_QByteArray::movablity() void tst_QByteArray::literals() { -#if defined(Q_COMPILER_LAMBDA) || defined(Q_CC_GNU) +#if defined(Q_COMPILER_LAMBDA) QByteArray str(QByteArrayLiteral("abcd")); QVERIFY(str.length() == 4);