diff options
author | Dan Albert <danalbert@google.com> | 2016-02-24 13:48:45 -0800 |
---|---|---|
committer | Dan Albert <danalbert@google.com> | 2016-02-24 13:51:18 -0800 |
commit | b9de1157289455b0ca26daff519d4a0ddcd1fa13 (patch) | |
tree | 4c56cc0a34b91f17033a40a455f26652304f7b8d /gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda | |
parent | 098157a754787181cfa10e71325832448ddcea98 (diff) | |
download | toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.tar.gz toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.tar.bz2 toolchain_gcc-b9de1157289455b0ca26daff519d4a0ddcd1fa13.zip |
Update 4.8.1 to 4.8.3.
My previous drop was the wrong version. The platform mingw is
currently using 4.8.3, not 4.8.1 (not sure how I got that wrong).
From ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.3/gcc-4.8.3.tar.bz2.
Bug: http://b/26523949
Change-Id: Id85f1bdcbbaf78c7d0b5a69e74c798a08f341c35
Diffstat (limited to 'gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda')
129 files changed, 0 insertions, 2373 deletions
diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-50220.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-50220.C deleted file mode 100644 index 240143cf6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-50220.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/50220 -// { dg-options -std=c++0x } - -template<typename Foo> struct Foobar {}; - -void foobar(const Foobar<void>& obj) -{ - [obj](){}(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-98.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-98.C deleted file mode 100644 index ff1085f30..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-98.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/46159 -// { dg-options -std=c++98 } - -void -f() -{ - int **p = new(int(*[2])); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-__func__.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-__func__.C deleted file mode 100644 index 1cc7bb658..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-__func__.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/44160 -// { dg-options -std=c++0x } -// { dg-do link } - -int main() -{ - const char *p = []() { return __func__; }(); - return p == 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-array.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-array.C deleted file mode 100644 index 2129051ed..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-array.C +++ /dev/null @@ -1,20 +0,0 @@ -// Test that array capture by copy works. -// { dg-options -std=c++0x } -// { dg-do run } - -struct A -{ - int i; - A(int i): i(i) {} - A(const A& a): i(a.i+1) {} -}; - -int main() -{ - A ar[4][3] = { { 10, 20, 30 }, - { 40, 50, 60 }, - { 70, 80, 90 }, - { 100, 110, 120 } }; - int i = [ar] { return ar[1][1]; }().i; - return (i!= 52); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto1.C deleted file mode 100644 index b5ba06637..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-auto1.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/50437 -// { dg-options -std=c++0x } - -template <typename T> -void f() -{ - auto g = [](T t){ return t == 0; }; - g(T()); -} - -int main() -{ - f<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref-neg.C deleted file mode 100644 index 7d1a1bd89..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref-neg.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "-std=c++0x" } -#include <cassert> - -int main() { - int i = 1, j = 2; - const int& ci = i; - [&ci, &j] () -> void { j = ci; } (); - assert(i == 1); - assert(j == 1); - [&ci] () -> void { ci = 0; } (); // { dg-error "" "cannot assign to const int&" } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref.C deleted file mode 100644 index 704c24085..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-const-ref.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } -#include <cassert> - -int main() { - int i = 1, j = 2; - const int& ci = i; - [&ci, &j] () -> void { j = ci; } (); - assert(i == 1); - assert(j == 1); - //[&ci] () -> void { ci = 0; } (); { dg-error: cannot assign to const int& } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-neg.C deleted file mode 100644 index 82cc98423..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-neg.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/50736 -// { dg-options "-std=c++0x -pedantic-errors" } - -int i; -void f(); -typedef int T; - -int main() -{ - [i]{}; // { dg-error "non-automatic" } - [f]{}; // { dg-error "non-variable" } - [T]{}; // { dg-error "non-variable" } -} - -struct A { }; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-redundancy.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-redundancy.C deleted file mode 100644 index 51e55a7aa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-capture-redundancy.C +++ /dev/null @@ -1,12 +0,0 @@ -// FDIS 5.1.2/8 -// { dg-options "-pedantic-errors -std=c++0x" } - -struct S2 { void f(int i); }; -void S2::f(int i) { - [&, i]{ }; // OK - [&, &i]{ }; // { dg-error "" } i preceded by & when & is the default - [=, i]{ }; // { dg-error "" } i not preceded by & when = is the default - [=, this]{ }; // { dg-error "" } this when = is the default - [i, i]{ }; // { dg-error "" } i repeated - [this, this]{ }; // { dg-error "" } i repeated -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-neg.C deleted file mode 100644 index 7e7541ca2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-neg.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options "-std=c++0x" } - -#include <cassert> - -template<typename F> -void call(const F& f) { f(); } - -int main() { - call([] () -> void {}); - call([] () mutable -> void {}); - - int i = -1; - call([&i] () -> void { i = 0; }); - assert(i == 0); - call([i] () -> void { i = 0; }); // { dg-error "" "assignment to non-reference capture in const lambda" } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C deleted file mode 100644 index 5f6f0b3dc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <cassert> - -template<typename F> -void call(const F& f) { f(); } - -int main() { - call([] () -> void {}); - //call([] () mutable -> void {}); // { dg-error: "`f' does not have const `operator()'" } - - int i = -1; - call([&i] () -> void { i = 0; }); - assert(i == 0); - //call([i] () -> void { i = 0; }); // { dg-error: "assignment to non-reference capture in const lambda" } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const2.C deleted file mode 100644 index d2457d649..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const2.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/52026 -// { dg-options "-std=c++11 -O" } -// { dg-do run } - -template<bool B> -int func() { - const int constVal1 = B ? 100 : -100; - const int constVal = constVal1; - return [] { return constVal; }(); -} - -int main() { - if (func<true>() != 100) - __builtin_abort (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv.C deleted file mode 100644 index 5409d5ca3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv.C +++ /dev/null @@ -1,14 +0,0 @@ -// Test for conversion from stateless lambda to function pointer. - -// { dg-options -std=c++0x } -// { dg-final { scan-assembler "weak\[^\n\r\]*_?_ZZ1fvENKUlvE_cvPFvvEEv" { target { ! { *-*-darwin* *-*-mingw* *-*-cygwin *-*-hpux10* } } } } } - -inline void f() -{ - void (*pfn)() = []{}; -} - -int main() -{ - f(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv2.C deleted file mode 100644 index fc19c9969..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv2.C +++ /dev/null @@ -1,12 +0,0 @@ -// Test for conversion from stateless lambda to function pointer. - -// { dg-options -std=c++0x } -// { dg-do run } - -typedef int (*pfn)(int); - -int main() -{ - pfn p = [](int i) { return i-42; }; - return p (42); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv3.C deleted file mode 100644 index e4e7daffd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv3.C +++ /dev/null @@ -1,12 +0,0 @@ -// Conversion to a function pointer uses a generic thunk, which doesn't -// work properly for variadics. Make sure that we can still use the lambda -// normally. - -// { dg-options -std=c++0x } - -void f() -{ - auto l = [](...){}; - void (*p1)(...) = l; // { dg-bogus "sorry" "" { xfail *-*-* } } - l(); // OK -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv4.C deleted file mode 100644 index 6584d28b9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv4.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/43641 -// { dg-options "-std=c++0x" } - -struct B -{ - int i; -}; - -void func() -{ - [](const B& b) -> const int& { return b.i; }; - [](const B& b) { return b; }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv5.C deleted file mode 100644 index 53d8e995e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv5.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/45080 -// { dg-options -std=c++0x } - -typedef void(*pfn)(); - -template<typename=int> -void f() -{ - pfn fn = []{}; -} - -void test() -{ - f(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv6.C deleted file mode 100644 index bd9043723..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv6.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/55015 -// { dg-do link } -// { dg-options -std=c++11 } - -typedef void (*VoidFunc)(); -inline VoidFunc GetFunc() { return [](){}; } -int main() { VoidFunc func = GetFunc(); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv7.C deleted file mode 100644 index 89e4e4bab..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv7.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/55710 -// { dg-do link { target c++11 } } - -template <class T> -struct X { - static void (*code) (); -}; - -template <class T> -void (*X<T>::code) () = []{}; // Line 7 - -struct Y { - void (*code) () = []{} ; // Line 10 - void operator()() { code(); } -}; - -int main () { - X<int>::code(); - Y()(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv8.C deleted file mode 100644 index abe272a8b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv8.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/56447 -// { dg-do compile { target c++11 } } - -template <class T> -void f() -{ - int i; - // This lambda should not have a conversion op, since it captures i - int (*p)() = [=]{ return i; }; // { dg-error "cannot convert" } -} - -int main() -{ - f<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-default-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-default-neg.C deleted file mode 100644 index 1af2a95d8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-default-neg.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=c++0x" } - -int main() { - int i; - const char* s; - [=] () -> void { i; s; i; s; } (); - - [] () -> void { i; } (); // { dg-error "" "`i' is not captured" } - [1] () -> void {} (); // { dg-error "expected identifier" } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-default.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-default.C deleted file mode 100644 index 239a99cbf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-default.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -int main() { - int i; - const char* s; - [=] () -> void { i; s; i; s; } (); - - //[] () -> void { i; } (); // { dg-error: "`i' is not in scope" } - //[1] () -> void {} (); // { dg-error: "expected identifier" } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-neg.C deleted file mode 100644 index d77e57e63..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy-neg.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=c++0x" } - -int main() { - int i; - const char* s; - [i, s] () -> void { i; s; } (); - - [] () -> void { i; } (); // { dg-error "" "`i' is not captured" } - [1] () -> void {} (); // { dg-error "expected identifier" } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy.C deleted file mode 100644 index 7356872e1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -int main() { - int i; - const char* s; - [i, s] () -> void { i; s; } (); - - //[] () -> void { i; } (); // { dg-error: "`i' is not in scope" } - //[1] () -> void {} (); // { dg-error: "expected identifier" } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctor-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctor-neg.C deleted file mode 100644 index 76ed7445f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctor-neg.C +++ /dev/null @@ -1,25 +0,0 @@ -// { dg-options -std=c++0x } - -void f() -{ - int i; - auto lam = [i]{}; // { dg-message "" } - decltype(lam) lam2 = { 1 }; // { dg-error "" "not an aggregate" } - decltype(lam) lam3; // { dg-error "" "deleted default ctor" } - lam3 = lam; // { dg-error "" "deleted assignment op" } -} - -template <class T> -void g(T i) -{ - auto lam = [i]{}; // { dg-message "" } - decltype(lam) lam2 = { 1 }; // { dg-error "" "not an aggregate" } - decltype(lam) lam3; // { dg-error "" "deleted default ctor" } - lam3 = lam; // { dg-error "" "deleted assignment op" } -} - -int main() -{ - f(); - g(1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctors.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctors.C deleted file mode 100644 index e263145b0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctors.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-do run } - -struct A -{ - A() { } - A(A&) { } - A(A&&) { } -}; - -int main() -{ - A a; - auto lam4 = [a]{}; // OK, implicit move ctor - lam4(); - auto lam5 = lam4; // OK, implicit copy ctor - lam5(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-debug.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-debug.C deleted file mode 100644 index 07fc1896c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-debug.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/43502 -// { dg-options "-std=c++0x -fcompare-debug" } - -void g (int n) -{ - int bef ([]{return 0;}()); -} -struct S { - void f (int = []{return 0;}(), int = [] { return 0;}()); -}; -int main () -{ - S ().f (); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C deleted file mode 100644 index f93e78a27..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C +++ /dev/null @@ -1,22 +0,0 @@ -// Testcase for DR 975. - -// { dg-options -std=c++0x } - -bool b; -struct A { int fn1(); const int& fn2(); }; -struct B { int fn1(); long fn2(); }; - -template <class T> int f (T t) { - return [](T t){ - if (b) - return t.fn1(); - else - return t.fn2(); // { dg-error "inconsistent types" } - }(t); -} - -int main() -{ - f(A()); // { dg-bogus "" } int and const int& are compatible - f(B()); // { dg-message "from here" } int and long are not -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C deleted file mode 100644 index 5c63409b6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C +++ /dev/null @@ -1,21 +0,0 @@ -// Test that this is accepted even when pedantic now that it's part -// of the standard. - -// { dg-options "-std=c++0x -pedantic" } - -bool b; -template <class T> -T f (T t) -{ - [=] { return t+1; }; // OK - return [=] { - auto i = t+1; - return i+1; - }(); -} - -int main() -{ - if (f(1) != 3) - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext.C deleted file mode 100644 index 9b5ab7983..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext.C +++ /dev/null @@ -1,27 +0,0 @@ -// Testcase for an extension to allow return type deduction when the lambda -// contains more than just a single return-statement. - -// { dg-options -std=c++0x } -// { dg-do run } - -bool b; -template <class T> -T f (T t) -{ - return [=] { - auto i = t+1; - if (b) - return i+1; - else - return i+1; - }(); -} - -int main() -{ - // Pointless, but well-formed. - [] { return 1; return 2; }(); - - if (f(1) != 3) - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-neg.C deleted file mode 100644 index c932c09db..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-neg.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } - -int main() { - int i = 0; - int& r = [&] () { return i; } (); // { dg-error "" "invalid initialization of non-const reference of type .int&. from a temporary of type .int." } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce.C deleted file mode 100644 index cc5cc5402..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce.C +++ /dev/null @@ -1,29 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } -#include <cassert> - -int main() { - [] {}; - [] {} (); - [] () {}; - [] () {} (); - [] () { return "lambda"; }; - - int i = 1, j = 2; - [&i, j] () { i = j; } (); - assert(i == 2); - assert(j == 2); - - i = [] () { return 3; } (); - assert(i == 3); - - int k = [&] () { return i; } (); - - []{ return; }; - - int array[] = { 1, 2, 3 }; - int* p = [&] () { return array; } (); - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C deleted file mode 100644 index eeb9814a0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/43875 -// { dg-options "-std=c++0x" } - -void f(); -void f(int); - -int main() -{ - auto x1 = []{ return f; }; // { dg-error "return|overloaded" } - auto x2 = []{ return { 1, 2 }; }; // { dg-error "return|list" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C deleted file mode 100644 index 069935823..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=c++0x -pedantic-errors" } - -int main() -{ - [](int a = 1) { return a; }(); // { dg-error "" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg2.C deleted file mode 100644 index f47c5ba27..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg2.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/43886 -// { dg-options -std=c++0x } - -void f2() { - int i = 1; - void g5(int = ([]{ return sizeof i; })()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg3.C deleted file mode 100644 index f02fb29b3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg3.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/55223 -// { dg-options "-std=c++11 -fabi-version=0" } -// { dg-final { scan-assembler "_ZN8functionC1IZN1CIiE4testES_Ed_UliE_EET_" } } - -struct function -{ - template <class U> function(U u) { } -}; - -template<typename T> struct C -{ - static T test(function f = [](int i){return i;}) { } -}; - -int main() -{ - C<int>::test(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg4.C deleted file mode 100644 index 221795459..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg4.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/54764 -// { dg-require-effective-target c++11 } - -template<class T = void> -struct c -{ - int (*f)(int) = [](int i){return i + i;}; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-direct-init.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-direct-init.C deleted file mode 100644 index bbc2a1ca5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-direct-init.C +++ /dev/null @@ -1,14 +0,0 @@ -// Test that capture by copy uses direct-initialization. -// { dg-options "-std=c++0x" } - -struct A -{ - A(); - explicit A(const A&); -}; - -int main() -{ - A a; - [a]{}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh.C deleted file mode 100644 index ea5060d1a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh.C +++ /dev/null @@ -1,35 +0,0 @@ -// Test that we properly clean up if we get an exception in the middle of -// constructing the closure object. -// { dg-options -std=c++0x } - -// This test fails because of PR 41449; it isn't a lambda issue. -// { dg-do run { xfail *-*-* } } - -struct A -{ - A() {} - A(const A&) { throw 1; } -}; - -int bs; -struct B -{ - B() { ++bs; } - B(const B&) { ++bs; } - ~B() { --bs; } -}; - -int main() -{ - { - B b1, b2; - A a; - - try - { - [b1, a, b2]{ }; - } - catch(...) {} - } - return bs; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh2.C deleted file mode 100644 index 0c94b554f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh2.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/47263 -// PR c++/49260 -// { dg-options "-std=c++0x -fno-asynchronous-unwind-tables -fno-dwarf2-cfi-asm" } -// { dg-do run } - -#include <exception> - -int main( void ) -{ - std::set_unexpected( []{ throw 0; } ); - try - { - []() throw( int ) { throw nullptr; }(); - } - catch( int ) - { } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh3.C deleted file mode 100644 index 10dc6e36d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh3.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/56388 -// { dg-require-effective-target c++11 } - -int main() -{ - bool /*const*/ condition = false; - - [&]{ - try{} - catch(...){ - if(condition){} - } - }(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err1.C deleted file mode 100644 index 932ff1bee..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err1.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/51415 -// { dg-do compile { target c++11 } } - -void foo() -{ - int x[1]; - [x]{} = 0; // { dg-error "lambda" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err2.C deleted file mode 100644 index aaa80f470..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err2.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/53158 -// { dg-do compile { target c++11 } } - -int main() -{ - auto a = []() { return true; }; - auto b = []() { return a(); }; // { dg-error "'a' is not captured" } - int c, d; - while (b() && c < d) // { dg-error "could not convert" } - { - } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err3.C deleted file mode 100644 index fec01acb6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-err3.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/51412 -// { dg-do compile { target c++11 } } - -void foo(int); - -template<int> void bar() -{ - foo([]{}...); // { dg-error "<lambda>" } - foo([]{}=0 ...); // { dg-error "<lambda>" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc.C deleted file mode 100644 index f4766691e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc.C +++ /dev/null @@ -1,18 +0,0 @@ -// Test that error messages about creating the closure object refer to -// the lambda-introducer. -// { dg-options -std=c++0x } - -struct A -{ - A(); - A(const A& a) = delete; // { dg-error "declared" } -}; - -int main() -{ - A ar[4][3]; - [ar] { }; // { dg-error "3:" } - - A a; - [a] { }; // { dg-error "3:" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C deleted file mode 100644 index f94d64ec0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-errloc2.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/42399 -// { dg-options "-std=c++0x" } - -struct A { - A(); - A(const A&) = delete; // { dg-error "declared" } -}; - -template <class T> -void f() -{ - T t; - [t] { return 0; }; // { dg-error "use" } -} - -int main() -{ - f<A>(); // { dg-message "required" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-field-names.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-field-names.C deleted file mode 100644 index b292d8898..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-field-names.C +++ /dev/null @@ -1,21 +0,0 @@ -// "For each entity captured by copy, an unnamed non-static data member is -// declared in the closure type" -- test that there isn't a member of the -// closure with the same name as the captured variable. - -// { dg-options -std=c++0x } - -template <class T> -struct A: public T -{ - A(T t): T(t) { } - int f() { return this->i; } // { dg-error "" "no member named i" } -}; - -int main() -{ - int i = 42; - auto lam = [i]{ }; - lam.i = 24; // { dg-error "" "no member named i" } - A<decltype(lam)> a(lam); - return a.f(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-for.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-for.C deleted file mode 100644 index f161da857..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-for.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/50114 -// { dg-options "-std=c++0x -w" } - -int open() -{ - int *x2feed_i = 0; - auto insert_feed = [&](unsigned char venue, int* newfeed) - { - for(int x2feed_i = 1; 0; ) ; - x2feed_i = newfeed; - }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice1.C deleted file mode 100644 index 1ea8f4d7b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice1.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/43790 -// { dg-options "-std=c++0x" } - -struct A -{ - int f(); -}; - -int main() -{ - A a; - auto l = [] () { return a.f(); }; // { dg-error "not captured|return" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C deleted file mode 100644 index 6468f18a0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice2.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/42083 -// { dg-options "-std=c++0x" } - -template<typename F> -decltype(F()) run(F f) // { dg-message "note" } -{ - return f(); -} - -int main() -{ - auto l = []() { return 5; }; // { dg-message "lambda closure type" } - - run(l); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 14 } - // { dg-error "use of deleted function" "candidate explanation" { target *-*-* } 5 } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice3.C deleted file mode 100644 index 8ff36478d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice3.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/47795 -// { dg-options "-std=c++0x" } - -class Klass -{ - unsigned int local; -public: - bool dostuff(); -}; - -bool Klass::dostuff() -{ - auto f = []() -> bool { - if (local & 1) { return true; } // { dg-error "not captured" } - return false; - }; -} - -int main() -{ - Klass c; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice4.C deleted file mode 100644 index 77c773bbd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice4.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/47242 -// { dg-options "-std=c++0x" } - -template < typename > void -bar () -{ - [i]{}; // { dg-error "declared|invalid" } -} - -void -foo () -{ - bar<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice5.C deleted file mode 100644 index 305db812d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice5.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/51227 -// { dg-options "-std=c++0x" } - -template<int> int foo() -{ - [] (void i) { return 0; } (0); // { dg-error "incomplete|invalid|no match" } -} - -void bar() -{ - foo<0>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice6.C deleted file mode 100644 index ddf352766..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice6.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/51464 -// { dg-options "-std=c++0x" } - -template<int = sizeof([])> struct A {}; // { dg-error "lambda" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C deleted file mode 100644 index 946377e55..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/52487 -// { dg-options "-std=c++0x" } - -struct A; // { dg-error "forward declaration" } - -void foo(A& a) -{ - [=](){a;}; // { dg-error "invalid use of incomplete type" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice8.C deleted file mode 100644 index 00078d53b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice8.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/51422 -// { dg-do compile { target c++11 } } - -template<typename> struct A {}; - -void foo() -{ - [i] { A<decltype(i)>(); }; // { dg-error "not declared|invalid" } - [i] { A<decltype(i)>(); }; // { dg-error "invalid" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice9.C deleted file mode 100644 index 0a88bc875..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice9.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/53741 -// { dg-do compile { target c++11 } } - -struct X -{ - template <class T> static void bar() {} - - template <class T> void foo(T p) - { - [&] { bar<T>(); }; - } -}; - -int main() -{ - X x; - x.foo(3); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class-neg.C deleted file mode 100644 index a93857e46..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class-neg.C +++ /dev/null @@ -1,35 +0,0 @@ -// { dg-options "-std=c++0x" } - -#include <cassert> - -class C { - private: - int m_i; - - public: - C() : m_i(-1) { - [] { this; } (); // { dg-error "not captured" } - [this] () -> void { m_i = 0; } (); - assert(m_i == 0); - [this] () -> void { this->m_i = 1; } (); - assert(m_i == 1); - [&] () -> void { m_i = 2; } (); - assert(m_i == 2); - [&] () -> void { this->m_i = 3; } (); - assert(m_i == 3); - [=] () -> void { m_i = 4; } (); // copies 'this' or --copies-m_i--? - assert(m_i == 4); - [=] () -> void { this->m_i = 5; } (); - assert(m_i == 5); - } - -}; - -int main() { - C c; - - [this] () -> void {} (); // { dg-error "use of 'this' in non-member function" } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class.C deleted file mode 100644 index 33f4301e4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-in-class.C +++ /dev/null @@ -1,36 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <cassert> - -class C { - private: - int m_i; - - public: - C() : m_i(-1) { - //[] { this; } (); - [this] () -> void { m_i = 0; } (); - assert(m_i == 0); - [this] () -> void { this->m_i = 1; } (); - assert(m_i == 1); - [&] () -> void { m_i = 2; } (); - assert(m_i == 2); - [&] () -> void { this->m_i = 3; } (); - assert(m_i == 3); - [=] () -> void { m_i = 4; } (); // copies 'this' or --copies-m_i--? - assert(m_i == 4); - [=] () -> void { this->m_i = 5; } (); - assert(m_i == 5); - } - -}; - -int main() { - C c; - - //[this] () -> void {} (); // { dg-error: "cannot capture `this' outside of class method" } - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-init.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-init.C deleted file mode 100644 index 03c94e959..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-init.C +++ /dev/null @@ -1,8 +0,0 @@ -// Test for the explicit initializer extension -// { dg-options "-std=c++0x" } - -int main() -{ - int j = [i = 2]{sizeof(i); return i;}(); - return (j != 2); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist1.C deleted file mode 100644 index 078ebaee1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist1.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/50863 -// { dg-options -std=gnu++0x } - -struct T { - template<typename F> - T(F) { } -}; - -int main() -{ - T t{ []{ } }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist2.C deleted file mode 100644 index daaa33938..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist2.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/54947 -// { dg-options -std=gnu++11 } - -struct X -{ - template<typename L> - X(L) - { } -}; - -template<typename A> - void - test() - { - int i = 0; - - A a_ok_1( [=] { return i; } ); // OK - A a_ok_2( [i] { return i; } ); // OK - - A a_err_1{ [i] { return i; } }; // error - A a_err_2{ [=] { return i; } }; // error - } - -int main() -{ - test<X>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist3.C deleted file mode 100644 index f7b82efe9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-initlist3.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/56567 -// { dg-require-effective-target c++11 } - -#include <initializer_list> - -int main() -{ - []{ return { 1, 2 }; }(); // { dg-error "initializer.list" } -} - -// { dg-prune-output "return-statement with a value" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-intname.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-intname.C deleted file mode 100644 index 4c268c678..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-intname.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/54420 - -class __lambda -{ - virtual bool is_sub (); -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-lookup-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-lookup-neg.C deleted file mode 100644 index e07e892a1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-lookup-neg.C +++ /dev/null @@ -1,7 +0,0 @@ -// Test that we don't crash on a failed lookup. -// { dg-options -std=c++0x } - -int main() -{ - [i]{}; // { dg-error "not declared" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle.C deleted file mode 100644 index 5c9b483d3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle.C +++ /dev/null @@ -1,103 +0,0 @@ -// Test lambda mangling -// { dg-require-weak "" } -// { dg-options "-std=c++0x -fno-inline" } - -template<typename F> int algo(F fn) { return fn(); } -inline void g(int n) { - int bef(int i = []{ return 1; }()); - // Default arguments of block-extern function declarations - // remain in the context of the encloding function body. - // The closure type is encoded as Z1giEUlvE_. - // The call operator of that type is _ZZ1giENKUlvE_clEv. - -// { dg-final { scan-assembler "_ZZ1giENKUlvE_clEv" } } -// { dg-final { scan-assembler "weak\[^\n\r\]*_?_ZZ1giENKUlvE_clEv" { target { ! { *-*-darwin* *-*-mingw* *-*-cygwin } } } } } - - algo([=]{return n+bef();}); - // The captured entities do not participate in <lambda-sig> - // and so this closure type has the same <lambda-sig> as - // the previous one. It encoding is therefore Z1giEUlvE0_ - // and the call operator is _ZZ1giENKUlvE0_clEv. The - // instance of "algo" being called is then - // _Z4algoIZ1giEUlvE0_EiT_. - -// { dg-final { scan-assembler "_Z4algoIZ1giEUlvE0_EiT_" } } -// { dg-final { scan-assembler "_ZZ1giENKUlvE0_clEv" } } - - int i = []{return 1;}(); - -} - -struct S { - void f(int = - // Type: ZN1S1fEiiEd0_UlvE_ - // Operator: _ZZN1S1fEiiEd0_NKUlvE_clEv -// { dg-final { scan-assembler "_ZZN1S1fEiiEd0_NKUlvE_clEv" } } -// { dg-final { scan-assembler "weak\[^\n\r\]*_?_ZZN1S1fEiiEd0_NKUlvE_clEv" { target { ! { *-*-darwin* *-*-mingw* *-*-cygwin } } } } } - []{return 1;}() - // Type: ZN1S1fEiiEd0_UlvE0_ - // Operator: _ZZN1S1fEiiEd0_NKUlvE0_clEv -// { dg-final { scan-assembler "_ZZN1S1fEiiEd0_NKUlvE0_clEv" } } - + []{return 2;}(), - int = - // Type: ZN1S1fEiiEd_UlvE_ - // Operator: _ZZN1S1fEiiEd_NKUlvE_clEv -// { dg-final { scan-assembler "_ZZN1S1fEiiEd_NKUlvE_clEv" } } - []{return 3;}()); -}; - -template<typename T> struct R { - static int x; -}; -template<typename T> int R<T>::x = []{return 1;}(); -template int R<int>::x; -// Type of lambda in intializer of R<int>::x: N1RIiE1xMUlvE_E -// Corresponding operator(): _ZNK1RIiE1xMUlvE_clEv -// { dg-final { scan-assembler "_ZNK1RIiE1xMUlvE_clEv" } } -// { dg-final { scan-assembler "weak\[^\n\r\]*_?_ZNK1RIiE1xMUlvE_clEv" { target { ! { *-*-mingw* *-*-cygwin } } } } } - -void bar() -{ - // lambdas in non-vague linkage functions have internal linkage. - // { dg-final { scan-assembler-not "weak\[^\n\r\]*bar\[^\n\r\]*Ul" } } - []{}(); -} - -// lambdas used in non-template, non-class body initializers are internal. -// { dg-final { scan-assembler-not "weak\[^\n\r\]*_ZNKUlv" } } -// { dg-final { scan-assembler-not "weak\[^\n\r\]*variable" } } -int variable = []{return 1;}(); - -// And a template instantiated with such a lambda is also internal. -// { dg-final { scan-assembler-not "weak\[^\n\r\]*algoIUl" } } -int var2 = algo([]{return 1;}); - -// As are lambdas used in non-class-body default arguments. -// { dg-final { scan-assembler-not "weak\[^\n\r\]*function" } } -void function (int i = []{return 1;}()+[]{return 1;}()); - -struct Foo -{ - static int Int; - void Bar(int); -}; - -int Foo::Int = []{return 1;}(); -// Even default arguments for member functions that appear outside the -// class body are internal. -// { dg-final { scan-assembler-not "weak\[^\n\r\]*Foo" } } -void Foo::Bar(int i = []{return 1;}()) {} - -// Even default arguments for function templates. -// { dg-final { scan-assembler-not "weak\[^\n\r\]*fn2\[^\n\r\]*Ulv" } } -template <class T> -void fn2 (T t = []{return 1;}()) {} - -int main() -{ - g(42); - S().f(); - function(); - Foo().Bar(); - fn2<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle2.C deleted file mode 100644 index 4b7d15ad9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle2.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/49276 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <int N> -struct F -{ - template <typename U> F (U); -}; - -struct S -{ - void foo (F <0> x = [] {}) {} -}; - -int -main () -{ - S s; - s.foo (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle3.C deleted file mode 100644 index 06913a1c1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle3.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/51818 -// { dg-options -std=c++0x } -// { dg-final { scan-assembler "_ZN1AC1IN3foo3barMUlvE_EEET_" } } - -struct A -{ - template <class T> A(T) { } -}; - -struct foo -{ - A bar = []{}; -}; - -foo f; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle4.C deleted file mode 100644 index 0d37637fe..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mangle4.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/54538 -// { dg-do compile { target c++11 } } - -template <class T> -struct A -{ - // { dg-final { scan-assembler "_ZNK1AIcE1pMUlvE_cvPFvvEEv" } } - // { dg-final { scan-assembler "_ZNK1AIiE1pMUlvE_cvPFvvEEv" } } - void (*p)() = []{}; -}; - -A<int> a1; -A<char> a2; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mixed.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mixed.C deleted file mode 100644 index ed0565fa9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mixed.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } -#include <cassert> - -int main() { - int i = 1, j = 2; - [&i, j] () mutable -> void { i = 0; j = 0; } (); - assert(i == 0); - assert(j == 2); - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable.C deleted file mode 100644 index 73a4d1bac..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } -#include <cassert> - -int main() { - int i = 1; - const char* s1 = "hello"; - const char* s2 = s1; - [i, s2] () mutable -> void { i = 2; s2 = "world"; } (); - //[i, s2] () -> void { i = 2; s2 = "world"; } (); // { dg-error: "assignment of data-member in read-only structure" } - assert(i == 1); - assert(s1 == s2); - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable2.C deleted file mode 100644 index c54ff5c84..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-mutable2.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/55532 -// { dg-do compile { target c++11 } } - -struct Foo { - void doit() { - } -}; - -template<typename T> -void oops(Foo &foo, const T &) { - auto fun = [&] () mutable { - foo.doit(); - }; - auto fun2 = [=]() { - fun(); // { dg-error "" } - }; - fun2(); -} - -int main() { - Foo foo; - oops(foo, 1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested.C deleted file mode 100644 index feb0cde59..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested.C +++ /dev/null @@ -1,63 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <cassert> - -struct A { - int i; - A(): i(42) { } - int f() { - return [this]{ - return [=]{ return i; }(); - }(); - } -}; - -int main() { - int i = 1; - - [] (int& i) -> void { - [&] () -> void { - i = 2; - } (); - } (i); - - assert(i == 2); - - [&] () -> void { - [&i] () -> void { - i = 3; - } (); - } (); - - assert(i == 3); - - [&] () -> void { - [&] () -> void { - i = 4; - } (); - } (); - - assert(i == 4); - i = 4; - - [&] () -> void { - [=] () mutable -> void { - i = 5; - } (); - } (); - - assert(i == 4); - - [=] () mutable -> void { - [&] () -> void { - i = 6; - } (); - } (); - - assert(i == 4); - - assert (A().f() == 42); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested2.C deleted file mode 100644 index b78874855..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested2.C +++ /dev/null @@ -1,31 +0,0 @@ -// Testcase from N2998 -// { dg-options -std=c++0x } - -void f1(int i) { - int const N = 20; - auto m1 = [=]{ - int const M = 30; - auto m2 = [i]{ - int x[N][M]; // OK: N and M are not "used" - x[0][0] = i; // OK: i is explicitly captured by m2 - // and implicitly captured by m1 - }; - }; - struct s1 { - int f; - int work(int n) { - int m = n*n; - int j = 40; - auto m3 = [this,m]{ - /*auto m4=*/[&,j]{ // { dg-error "j. is not captured" } - int x = n; // { dg-error "n. is not captured" } - x += m; // OK: m implicitly captured by m4 - // and explicitly captured by m3 - x += i; // { dg-error "i. is not captured" } - x += f; // OK: this captured implicitly by m4 - // and explicitly by m3 - }; - }; - } - }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested3.C deleted file mode 100644 index 2cc6f9640..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested3.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/41896 -// { dg-options "-std=c++0x" } - -void nested_lambda() -{ - float val; - - [val]() - { - [val](){}; - }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested4.C deleted file mode 100644 index a5bd1a2f4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested4.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/47687 -// { dg-options -std=c++0x } - -template <class T> struct A { }; - -auto inl = []{ return []{}; }(); -typedef decltype(inl) inlt; - -A<inlt> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-non-const.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-non-const.C deleted file mode 100644 index b6489de4b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-non-const.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <cassert> - -template<typename F> -void call(F f) { f(); } - -int main() { - call([] () -> void {}); - call([] () mutable -> void {}); - - int i = -1; - call([i] () mutable -> void { i = 0; }); - assert(i == -1); - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nop.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nop.C deleted file mode 100644 index 74149b231..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nop.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } -#include <cassert> - -int main() { - int i = 1, j = 2; - [i, j] () -> void {} (); - assert(i == 1); - assert(j == 2); - [&i, &j] () -> void {} (); - assert(i == 1); - assert(j == 2); - [] (int x) -> void {} (1); - [] (int& x) -> void {} (i); - [] (int x, int y) -> void {} (i, j); - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ns-scope.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ns-scope.C deleted file mode 100644 index cde0c2e53..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ns-scope.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-do run } - -auto f = [](int i) { return i+1; }; - -int g(int i = [] { return 237; }()) -{ - return i; -} - -int main() -{ - if (f(41) != 42) - return 1; - if (g() != 237) - return 2; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi1.C deleted file mode 100644 index 94dc254fd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi1.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/56464 -// { dg-do run { target c++11 } } - -struct bug { bug*a = [&]{ return [=]{return this;}(); }(); }; -int main() -{ - bug b; - if (b.a != &b) - __builtin_abort (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi2.C deleted file mode 100644 index 73106d78b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi2.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/56565 -// { dg-do compile { target c++11 } } - -struct bug { int a; int *b = [&]{ return &a; }(); }; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi3.C deleted file mode 100644 index da7e0bfed..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi3.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/55972 -// { dg-do compile { target c++11 } } - -class C -{ - void f(); - int j = 10; - int i = [this]() { return this->j; }(); -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nullptr.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nullptr.C deleted file mode 100644 index 1aadbb490..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nullptr.C +++ /dev/null @@ -1,47 +0,0 @@ -// PR c++/54170 -// { dg-do run { target c++11 } } - -#include <cassert> - -struct A; -typedef A* ptr; -typedef int (A::*pmf) (int); -typedef int (A::*pdm); - -int total; - -void add(int n) -{ - total += n; -} - -template <typename RType, typename Callable> -RType Call(Callable native_func, int arg) -{ - return native_func(arg); -} - -template <typename RType> -RType do_test(int delta) -{ - return Call<RType>([=](int delta) { add(delta); return nullptr; }, delta); -} - -template <typename RType> -void test() -{ - total = 0; - assert (!do_test<RType>(5)); - assert (total == 5); - assert (!do_test<RType>(20)); - assert (total == 25); - assert (!do_test<RType>(-256)); - assert (total == -231); -} - -int main() -{ - test<ptr>(); - test<pdm>(); - test<pmf>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-pass.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-pass.C deleted file mode 100644 index 9dd64484a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-pass.C +++ /dev/null @@ -1,27 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <cassert> -#include <algorithm> - -template <typename F, typename A1> -void call(F f, const A1& arg1) { - f(arg1); -} - -int main() { - int i = 1; - call( - [&i] (int j) -> void { i = j; }, - 2 - ); - assert(i == 2); - - int A[] = {1, 2, 3, 4}; - int sum = 0; - std::for_each(A, A+4, [&sum] (int n) -> void { sum += n; }); - assert(sum == 10); - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-qualified.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-qualified.C deleted file mode 100644 index ef041c2bb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-qualified.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/50089 -// { dg-options -std=c++0x } - -struct TestBase -{ - void foo() {} -}; - -struct Test : TestBase -{ - void foo() - { - [this]{ - /*this->*/TestBase::foo(); // ICE without this-> - }(); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-recursive.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-recursive.C deleted file mode 100644 index 1a12eab31..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-recursive.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -//#include <iostream> -#include <functional> -#include <cassert> - -int main() { - - std::function<int(int)> fib = [&fib] (int n) -> int { - //std::cerr << "fib(" << n << ")\n"; - if (n <= 2) return 1; - else return fib(n-1) + fib(n-2); - }; - - assert(fib(5) == 5); - assert(fib(10) == 55); - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref-default.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref-default.C deleted file mode 100644 index 40376f43d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref-default.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <cassert> - -int main() { - int i = 1; - float j = 2.0; - [&] () -> void { i = 3; j = 4.0; } (); - assert(i == 3); - assert(j == 4.0); - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref.C deleted file mode 100644 index a5ee7b4c3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <cassert> - -int main() { - int i = 1; - float j = 2.0; - [&i, &j] () -> void { i = 3; j = 4.0; } (); - assert(i == 3); - assert(j == 4.0); - - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref2.C deleted file mode 100644 index 15f1d9034..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref2.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/49598 -// { dg-options -std=c++0x } -// { dg-do run } - -int -main() -{ - int i = 10; - int& ir = i; - - if ([=]{ return ir; }() != 10) - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-sfinae1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-sfinae1.C deleted file mode 100644 index 973f8a780..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-sfinae1.C +++ /dev/null @@ -1,55 +0,0 @@ -// PR c++/56039 -// { dg-do compile { target c++11 } } - -template <bool> struct BoolSink { typedef void type; }; - -template <typename T, typename U> -struct AddRvalueReferenceImpl { typedef T type; }; - -template <typename T> -struct AddRvalueReferenceImpl<T, typename BoolSink<false && - [] { - extern T &&tref; - }>::type> { // { dg-error "lambda" } - typedef T &&type; -}; - -template <typename T> -struct AddRvalueReference : AddRvalueReferenceImpl<T, void> { }; - -namespace ImplHelpers { - template <typename T> - typename AddRvalueReference<T>::type create(void) { } -} - -template <typename T, typename U, typename ...Args> -struct IsConstructibleImpl { enum { value = 0 }; }; - -template <typename T, typename ...Args> -struct IsConstructibleImpl<T, typename BoolSink<false && - [] { - T t( ::ImplHelpers::create<Args>() ...); - }>::type, Args ...> { // { dg-error "lambda" } - enum { value = 1 }; -}; - -template <typename T, typename ...Args> -struct IsConstructible : IsConstructibleImpl<T, void, Args ...> { }; - -struct DestroyMe { - ~DestroyMe() = delete; -}; - -static_assert(+IsConstructible<int>::value, "error"); -static_assert(!IsConstructible<void>::value, "error"); -static_assert(+IsConstructible<int [1]>::value, "error"); -static_assert(!IsConstructible<DestroyMe>::value, "error"); -static_assert(!IsConstructible<int *, char *>::value, "error"); - -static_assert(+IsConstructible<int &&, int>::value, "error"); -static_assert(!IsConstructible<int &&, int &>::value, "error"); -static_assert(+IsConstructible<int &&, int &&>::value, "error"); - -// { dg-prune-output "expected" } -// { dg-prune-output "does not name a class" } -// { dg-prune-output "static assertion" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-std-function.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-std-function.C deleted file mode 100644 index 26c09fdb1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-std-function.C +++ /dev/null @@ -1,22 +0,0 @@ -// Test using std::function wrapper. -// { dg-do run } -// { dg-options -std=c++0x } - -#include <functional> - -typedef std::function<int()> FN; - -template<typename T> -FN f(T fn) -{ - return [fn]{return fn(2);}; -} - -int main() -{ - auto fn = f([](int i){return i*21;}); - - if (fn() != 42) - return 1; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch.C deleted file mode 100644 index c3067713c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch.C +++ /dev/null @@ -1,26 +0,0 @@ -// PR c++/49867 -// { dg-options -std=c++0x } - -int -main () -{ - void (*l)(); - while (true) - { - switch (3) - { - struct A { - void f() - { - case 4: // { dg-error "case" } - break; // { dg-error "break" } - } - }; - l = []() - { - case 3: // { dg-error "case" } - break; // { dg-error "break" } - }; - } - } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C deleted file mode 100644 index b3b749c2a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/46124 -// { dg-options -std=c++0x } - -void foo() { [] () -> void (); } // { dg-error "returning a function" "returning" } -// { dg-error "expected .\{" "expected" { target *-*-* } 4 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template.C deleted file mode 100644 index b4db3b881..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template.C +++ /dev/null @@ -1,41 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-do run } - -extern "C" void abort(); - -template <class T> -auto apply (T t) -> decltype (t()) -{ - return t(); -} - -template <class T> -T f(T t) -{ - T t2 = t; - if (t != [=]()->T { return t; }()) - abort (); - if (t != [=] { return t; }()) - abort (); - if (t != [=] { return t2; }()) - abort (); - if (t != [&] { return t; }()) - abort (); - if (t != apply([=]{return t;})) - abort (); - - int i; - [&] (int a) { return a+i+t; } (0); - [&] (int a) -> decltype(a) { return a+i+t; } (0); - [&] (int a) -> decltype(i) { return a+i+t; } (0); - [&] (int a) -> decltype(t) { return a+i+t; } (0); - [&] (int a) -> decltype(a+i) { return a+i+t; } (0); - [&] (int a) -> decltype(a+t) { return a+i+t; } (0); - [&] (int a) -> decltype(i+t) { return a+i+t; } (0); - [&] (int a) -> decltype(a+i+t) { return a+i+t; } (0); -} - -int main() -{ - f(0xbeef); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template10.C deleted file mode 100644 index 4a8046287..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template10.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/50276 -// { dg-options "-std=c++11 -Wuninitialized" } -// { dg-do run } - -template<typename T> -unsigned testfun(const T& func) -{ - return func(); -} - -template<int i> -unsigned test() -{ - if (unsigned value = testfun( [] () { return 0; })) - return value; - return i; -} - -int main() -{ - if (test<42>() != 42) - __builtin_abort (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C deleted file mode 100644 index 12ffde724..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/47049 -// { dg-options -std=c++0x } - -enum { E = 0, F = 1 }; -template <int N, int M = ((N == 1) ? F : E)> class S {}; -template <int N> -struct T -{ - static void - foo (S<N> *p) - { - S<N> u; - [&u] ()->bool {} (); - } -}; - -int main() -{ - T<0>().foo(0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template3.C deleted file mode 100644 index fd6f1d319..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template3.C +++ /dev/null @@ -1,33 +0,0 @@ -// PR c++/49554 -// { dg-options -std=c++0x } - -template<typename T> - struct base - { - struct iterator { }; - - iterator begin(); - }; - -template<typename T> -class flist : public base<T> -{ - typedef base<T> Base; - - typedef typename Base::iterator Base_iterator; -public: - - void - resize() - { - Base_iterator b = Base::begin(); - - [b](int i) { return i; }; - } -}; - -void test01() -{ - flist<int> fl; - fl.resize(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template4.C deleted file mode 100644 index a65727a1d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template4.C +++ /dev/null @@ -1,42 +0,0 @@ -// PR c++/51459 -// { dg-do run { target c++11 } } - -struct func { - virtual ~func() { } - virtual void operator()() const = 0; - virtual func* clone() const = 0; -}; - -template<typename T> -struct funcimpl : func { - explicit funcimpl(T t) : t(t) { } - void operator()() const { t(); } - func* clone() const { return new funcimpl(*this); } - T t; -}; - -struct function -{ - func* p; - - template<typename T> - function(T t) : p(new funcimpl<T>(t)) { } - - ~function() { delete p; } - - function(const function& f) : p(f.p->clone()) { } - - function& operator=(const function& ) = delete; - - void operator()() const { (*p)(); } -}; - -template <typename F> -function animate(F f) { return [=]{ f(); }; } - -int main() -{ - function linear1 = []{}; - function av(animate(linear1)); - av(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template5.C deleted file mode 100644 index b91b89ff3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template5.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/53137 -// { dg-do compile { target c++11 } } - -struct A -{ - template <typename T> void f(); - - template <typename T> void g() - { - [this]{ f<T>(); }(); - } - - void h() - { - g<int>(); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template6.C deleted file mode 100644 index 5e8561946..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template6.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/53821 -// { dg-final { scan-assembler-not "_ZZ1fIvEvvENKUlvE_cvPFvvEEv" } } -// { dg-do compile { target c++11 } } - -template <class T> void f() -{ - auto g = []{}; - g(); -} - -int main() -{ - f<void>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template7.C deleted file mode 100644 index 5b098d0df..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template7.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/53783 -// { dg-do compile { target c++11 } } - -template <class T> void foo() { [] { [] {}; }; } -int main() { foo<void>(); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template8.C deleted file mode 100644 index 720941dbc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template8.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/55680 -// { dg-do compile { target c++11 } } - -template <class T> struct X { - static void (* code ) (); -}; -template <> void (* X<int>::code ) () = [](){}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template9.C deleted file mode 100644 index c1d010ba1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template9.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/54276 -// { dg-do link { target c++11 } } - -template <typename T> -void foo(T) -{ - static int x = 1; - auto f = [] { return x + 1; }; - f(); -} - -int main() -{ - foo(4); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this.C deleted file mode 100644 index ed2747654..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this.C +++ /dev/null @@ -1,13 +0,0 @@ -// Test that implicit 'this' capture works, but that it's still an rvalue. -// { dg-options -std=c++0x } - -struct A -{ - int i; - void f() - { - [=] { i = 0; }; - [&] { i = 0; }; - [=] { this = 0; }; // { dg-error "lvalue" } - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this10.C deleted file mode 100644 index b4b8e7201..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this10.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/54383 -// { dg-do compile { target c++11 } } - -auto foo = [&](int a) { return a > this->b; }; // { dg-error "this" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this11.C deleted file mode 100644 index 261829566..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this11.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/51494, c++/56222 -// Uses of static members and creating pointers to members aren't odr-uses -// of 'this'. -// { dg-do compile { target c++11 } } - -struct A -{ - static void f() {} - static int i; - int j; - void f(int); - - void foo() - { - [] () { - ++i; - f(); - &A::j; - (void(*)())&A::f; - }; - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this12.C deleted file mode 100644 index ef573b19e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this12.C +++ /dev/null @@ -1,13 +0,0 @@ -// Uses of 'this' in unevaluated context are not odr-uses. -// { dg-do compile { target c++11 } } - -struct A -{ - int f() {} - int i; - - void foo() - { - [] () { sizeof(i); sizeof(f()); }; - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this13.C deleted file mode 100644 index 090d0a13e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this13.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/52374 -// { dg-do compile { target c++11 } } - -struct B -{ - int get() const { return 42; } -}; - -template<typename X> -struct D - : public X -{ - int get() const { return [this]() -> int { return X::get(); }(); } -}; - -int main() -{ - D<B> d; - d.get(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this14.C deleted file mode 100644 index 9834bfdb3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this14.C +++ /dev/null @@ -1,49 +0,0 @@ -// PR c++/52014 -// { dg-require-effective-target c++11 } - -template <class Iterator, class Func> -void for_each(const Iterator first, const Iterator last, Func func) -{ - for (Iterator it = first; it != last; ++it) { - func(*it); - } -} - -template <class T> -struct helper -{ - typedef typename T::size_type type; -}; - -template <class T> -struct helper<T&> -{ - typedef typename T::size_type type; -}; - -template <class T> -struct helper<T*> -{ - typedef typename T::size_type type; -}; - -struct bar -{ - struct foo - { - typedef int size_type; - } foo_; - - void test() - { - int arr[] = { 1, 2, 3 }; - for_each(arr, arr + 3, [&](helper<foo>::type i) { - for_each(arr, arr + 3, [&](helper<decltype(foo_)>::type j) { }); - }); - } -}; - -int main() -{ - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this15.C deleted file mode 100644 index d44bec949..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this15.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/56692 -// { dg-require-effective-target c++11 } - -struct Class { - void f () { } - static void f (int) { } -}; - -int main () -{ - []{ Class::f(0); }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this16.C deleted file mode 100644 index 736d5f50e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this16.C +++ /dev/null @@ -1,28 +0,0 @@ -// PR c++/56699 -// { dg-require-effective-target c++11 } - -struct A -{ - int a; -}; - -struct T -{ - int x; - - T() : x([]{ - sizeof(::A::a); - return 0; - }()) - {} -}; - -struct B -{ - int a; -}; - -void f() -{ - []{sizeof(B::a);}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C deleted file mode 100644 index 04fe474c7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this2.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/43856 -// Test for implicit 'this' capture via rewriting. -// { dg-options "-std=c++0x" } - -struct S1 { - int operator()(int); - int i; - void g(); - void f() { - [=]() { - i; - g(); - S1::g(); - operator()(42); - }; - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this3.C deleted file mode 100644 index de0d357f3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this3.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/45520 -// { dg-options -std=c++0x } - -struct M { - int i; -}; - -struct S { - M m; - - void f() { - auto lambda=[&](decltype(m.i) & i) { }; - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this4.C deleted file mode 100644 index 29cd2a97b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this4.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/48523 -// { dg-options -std=c++0x } - -template<typename> -struct X -{ - bool b; - - void f() - { - [this]{ return b; }; - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this5.C deleted file mode 100644 index 897464164..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this5.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/53619 -// { dg-do run { target c++11 } } - -struct C { - int x; -}; -struct B { - int q; -}; -struct A : public B , C { - void foo(); -}; - -void A::foo() { - auto k = [this]() {return (void *)(&x);}; - if (k() != (void*)&x) - __builtin_abort(); -} - -int main(int l, char **) { - A a; a.foo(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this6.C deleted file mode 100644 index acf4eaa7f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this6.C +++ /dev/null @@ -1,32 +0,0 @@ -// PR c++/53137 -// { dg-options -std=c++11 } - -template <typename STORE> -void getParent(STORE& tStore) -{ -} - -struct Store -{ - template <typename CheckParentFunc> - void updateChildCommon(CheckParentFunc c) - { - c(); - } - - template <typename T> - int& getStore(); - - template <typename T> - void updateChild(const T& obj) - { - updateChildCommon([this] () { getParent(getStore<T>()); }); - } - - void update(int obj); -}; - -void Store::update(int obj) -{ - updateChild(obj); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this7.C deleted file mode 100644 index 6e25c331b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this7.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/54122 -// { dg-options -std=c++11 } - -enum E { F }; - -template <typename A> -struct C -{ - E e; - void f () { auto l = [&](void)->void { if (e == F) return; }; } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this8.C deleted file mode 100644 index d7c5d2c05..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this8.C +++ /dev/null @@ -1,37 +0,0 @@ -// PR c++/56135 -// { dg-do run { target c++11 } } - -#include <functional> - -struct test { - template<typename T> - std::function<void()> broken(int x) { - return [=] { +x; print<T>(); }; - } - - std::function<void()> works0() { - return [=] { print<int>(); }; - } - - template<typename T> - std::function<void()> works1() { - return [=] { print<int>(); }; - } - - template<typename T> - std::function<void()> works2() { - return [=] { this->print<T>(); }; - } - - template<typename T> - void print() { if (this == 0) __builtin_abort (); } -}; - -int main(void) { - test().broken<int>(1)(); - test().works0()(); - test().works1<int>()(); - test().works2<int>()(); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this9.C deleted file mode 100644 index 07ddd0863..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this9.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/54277 -// { dg-do compile { target c++11 } } - -struct Used -{ - void foo() { } -}; - -template <typename> -struct S -{ - Used x; - - void bar() - { - auto f = [this] { x.foo(); }; - f(); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-type.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-type.C deleted file mode 100644 index 3b2a2a76a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-type.C +++ /dev/null @@ -1,74 +0,0 @@ -// Every id-expression that is a use (_basic.def.odr_ 3.2) of an entity -// captured by copy is transformed into an access to the corresponding -// unnamed data member of the closure type. -//... -// Every occurrence of decltype((x)) where x is a possibly parenthesized -// id-expression that names an entity of automatic storage duration is -// treated as if x were transformed into an access to a corresponding data -// member of the closure type that would have been declared if x were a use -// of the denoted entity. - -// So, other appearances of 'x' within decltype do not refer to the closure -// member, because they are not "use"s in the sense of 3.2. - -// { dg-options -std=c++0x } - -template<class T, class U> -struct same_type; -template <class T> -struct same_type<T,T> { }; - -int main() -{ - int i; - [=] { - same_type<decltype(i),int>(); - same_type<decltype((i)),int const&>(); - i+1; - same_type<decltype((i)),int const&>(); - same_type<decltype(i),int>(); - }; - [=] { - same_type<decltype(i),int>(); - same_type<decltype((i)),int const&>(); - same_type<decltype(i),int>(); - }; - [=] () mutable { - same_type<decltype(i),int>(); - same_type<decltype((i)),int &>(); - same_type<decltype(i),int>(); - }; - [&] { - same_type<decltype(i),int>(); - same_type<decltype((i)),int &>(); - same_type<decltype(i),int>(); - }; - [i] { - same_type<decltype(i),int>(); - same_type<decltype((i)),int const&>(); - }; - [&,i] { - same_type<decltype(i),int>(); - same_type<decltype((i)),int const&>(); - }; - [i] () mutable { - same_type<decltype(i),int>(); - same_type<decltype((i)),int &>(); - }; - [&,i] () mutable { - same_type<decltype(i),int>(); - same_type<decltype((i)),int &>(); - }; - [&i] { - same_type<decltype(i),int>(); - same_type<decltype((i)),int &>(); - }; - [=,&i] { - same_type<decltype(i),int>(); - same_type<decltype((i)),int &>(); - }; - [] { - same_type<decltype(i),int>(); - same_type<decltype((i)),int const&>(); // { dg-error "" "not captured" } - }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-typedef.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-typedef.C deleted file mode 100644 index e1d1b5041..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-typedef.C +++ /dev/null @@ -1,26 +0,0 @@ -// PR c++/54975 -// { dg-do compile { target c++11 } } - -template<typename T> -struct identity -{ - typedef T type; -}; - -template<typename T> -void f() -{ - typedef typename T::type A; - int i = 42; - int const &cri = i; - int volatile &vri = i; - [&]() { - A const &x = cri; // Problem here - A volatile &y = vri; // Likewise - }; -} - -int main() -{ - f<identity<int> >(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C deleted file mode 100644 index 33ba7b0a4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-uneval.C +++ /dev/null @@ -1,7 +0,0 @@ -// 5.1.2/2: A lambda-expression shall not appear in an unevaluated operand. -// { dg-options "-std=c++0x" } - -template <class T> -struct A { }; -A<decltype([]{ return 1; }())> a; // { dg-error "lambda.*unevaluated context" } - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-use.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-use.C deleted file mode 100644 index b1d6c300c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-use.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -int main(int argc, char** argv) -{ - int i; - int &ir = i; - const int ci = 0; - const int &cir = ci; - - [] { sizeof (argc); sizeof (i); sizeof (ir); sizeof (ci); sizeof (cir); }; - [] { int ia[ci]; }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-use2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-use2.C deleted file mode 100644 index 695a0b432..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-use2.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/50224 -// { dg-options "-std=c++0x -Wunused-parameter" } - -struct T; - -void m(T& t) // ERROR here -{ - [&]{ - t; // ``t`` is referenced here - }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic1.C deleted file mode 100644 index f17b33618..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic1.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/49672 -// { dg-options -std=c++0x } - -template<typename ... Args> -static void foo() -{ - [](Args..., int x) { - x; - }; -} - -int main() -{ - foo(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn1.C deleted file mode 100644 index b384d5cff..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn1.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/41920 -// { dg-options "-std=c++0x -Wall -Wextra" } - -int foo(int i) -{ - auto bar = [=](){ return i; }; - return bar(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn2.C deleted file mode 100644 index ce5e7c450..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn2.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/42370 -// { dg-options "-std=c++0x -Wall" } - -void foo() -{ - []{ return 0; }(); -} // { dg-bogus "no return statement" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn3.C deleted file mode 100644 index 77f35bc46..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn3.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/49482 -// { dg-options "-std=c++0x -Wunused-but-set-parameter" } - -template<class T> -void f() { - []( bool b ){ return b; }; -} - -int main() -{ - f<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C deleted file mode 100644 index 2afeccfc0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/52845 -// { dg-options "-std=c++11 -Wall" } - -void f() -{ - [](){}; -} |