summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/gmock/files/gmock-1.4.0-gcc-4.7.patch')
-rw-r--r--dev-cpp/gmock/files/gmock-1.4.0-gcc-4.7.patch189
1 files changed, 189 insertions, 0 deletions
diff --git a/dev-cpp/gmock/files/gmock-1.4.0-gcc-4.7.patch b/dev-cpp/gmock/files/gmock-1.4.0-gcc-4.7.patch
new file mode 100644
index 00000000000..fa678220f2a
--- /dev/null
+++ b/dev-cpp/gmock/files/gmock-1.4.0-gcc-4.7.patch
@@ -0,0 +1,189 @@
+taken from upstream repo
+
+Index: include/gmock/gmock-generated-function-mockers.h.pump
+===================================================================
+--- include/gmock/gmock-generated-function-mockers.h.pump (revision 227)
++++ include/gmock/gmock-generated-function-mockers.h.pump (revision 228)
+@@ -45,10 +45,6 @@ $var n = 10 $$ The maximum arity we sup
+ #include <gmock/internal/gmock-internal-utils.h>
+
+ namespace testing {
+-
+-template <typename F>
+-class MockSpec;
+-
+ namespace internal {
+
+ template <typename F>
+@@ -89,7 +85,11 @@ $if i >= 1 [[
+ }
+
+ R Invoke($Aas) {
+- return InvokeWith(ArgumentTuple($as));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple($as));
+ }
+ };
+
+Index: include/gmock/gmock-generated-function-mockers.h
+===================================================================
+--- include/gmock/gmock-generated-function-mockers.h (revision 227)
++++ include/gmock/gmock-generated-function-mockers.h (revision 228)
+@@ -42,10 +42,6 @@
+ #include <gmock/internal/gmock-internal-utils.h>
+
+ namespace testing {
+-
+-template <typename F>
+-class MockSpec;
+-
+ namespace internal {
+
+ template <typename F>
+@@ -71,7 +67,11 @@ class FunctionMocker<R()> : public
+ }
+
+ R Invoke() {
+- return InvokeWith(ArgumentTuple());
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple());
+ }
+ };
+
+@@ -88,7 +88,11 @@ class FunctionMocker<R(A1)> : public
+ }
+
+ R Invoke(A1 a1) {
+- return InvokeWith(ArgumentTuple(a1));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1));
+ }
+ };
+
+@@ -105,7 +109,11 @@ class FunctionMocker<R(A1, A2)> : public
+ }
+
+ R Invoke(A1 a1, A2 a2) {
+- return InvokeWith(ArgumentTuple(a1, a2));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2));
+ }
+ };
+
+@@ -123,7 +131,11 @@ class FunctionMocker<R(A1, A2, A3)> : pu
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3));
+ }
+ };
+
+@@ -141,7 +153,11 @@ class FunctionMocker<R(A1, A2, A3, A4)>
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4));
+ }
+ };
+
+@@ -161,7 +177,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5));
+ }
+ };
+
+@@ -182,7 +202,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6));
+ }
+ };
+
+@@ -203,7 +227,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7));
+ }
+ };
+
+@@ -224,7 +252,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8));
+ }
+ };
+
+@@ -246,7 +278,11 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+ }
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9));
+ }
+ };
+
+@@ -270,7 +306,12 @@ class FunctionMocker<R(A1, A2, A3, A4, A
+
+ R Invoke(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9,
+ A10 a10) {
+- return InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10));
++ // Even though gcc and MSVC don't enforce it, 'this->' is required
++ // by the C++ standard [14.6.4] here, as the base class type is
++ // dependent on the template argument (and thus shouldn't be
++ // looked into when resolving InvokeWith).
++ return this->InvokeWith(ArgumentTuple(a1, a2, a3, a4, a5, a6, a7, a8, a9,
++ a10));
+ }
+ };
+