aboutsummaryrefslogtreecommitdiff
path: root/x11/qt4-opengl/files/patch-src__corelib__tools__qiterator.h
diff options
context:
space:
mode:
Diffstat (limited to 'x11/qt4-opengl/files/patch-src__corelib__tools__qiterator.h')
-rw-r--r--x11/qt4-opengl/files/patch-src__corelib__tools__qiterator.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/x11/qt4-opengl/files/patch-src__corelib__tools__qiterator.h b/x11/qt4-opengl/files/patch-src__corelib__tools__qiterator.h
new file mode 100644
index 000000000000..9a2a2ca2daa7
--- /dev/null
+++ b/x11/qt4-opengl/files/patch-src__corelib__tools__qiterator.h
@@ -0,0 +1,38 @@
+commit 5210d47aa66214e3cb16f394d0510a91f770c1b1
+Author: Raphael Kubo da Costa <rakuco@FreeBSD.org>
+Date: Mon Jul 16 23:39:07 2012 -0300
+
+ Only forward-declare some std classes if QT_NO_STL is defined.
+
+ If that is not done, building with clang, libc++ and C++11 support
+ does not work: libc++ defines the iterator tag classes in an inline
+ namespace inside the std namespace, and forward-declaring those
+ classes inside the std namespace itself in qiterator.h causes an
+ ambiguity that clang solves by choosing the incomplete-declared class
+ declared in the enclosing std namespace.
+
+ This is probably the "clang build problem" reported in commit
+ 19e2b4d6eb733d9fd4eb69c0622b699fd08a3203 to qtbase, which cannot be
+ directly cherry-picked without breaking other classes due to QT_NO_STL
+ still being present in Qt 4.
+
+ Change-Id: I26e33915347d3f94ef2e10b68fca6b2099ec9491
+ Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
+
+diff --git a/src/corelib/tools/qiterator.h b/src/corelib/tools/qiterator.h
+index 0747940..b9d8da6 100644
+--- ./src/corelib/tools/qiterator.h
++++ ./src/corelib/tools/qiterator.h
+@@ -46,10 +46,12 @@
+
+ QT_BEGIN_HEADER
+
++#ifdef QT_NO_STL
+ namespace std {
+ struct bidirectional_iterator_tag;
+ struct random_access_iterator_tag;
+ }
++#endif
+
+ QT_BEGIN_NAMESPACE
+