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 | |
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')
1365 files changed, 0 insertions, 40621 deletions
diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/Wliteral-suffix.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/Wliteral-suffix.C deleted file mode 100644 index 39a835356..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/Wliteral-suffix.C +++ /dev/null @@ -1,29 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// Make sure -Wliteral-suffix is enabled by default and -// triggers as expected. - -#define BAR "bar" -#define PLUS_ONE + 1 - -#include <cstdint> -#include <cassert> - - -void -test() -{ - char c = '3'PLUS_ONE; // { dg-warning "invalid suffix on literal" } - char s[] = "foo"BAR; // { dg-warning "invalid suffix on literal" } - - assert(c == '4'); - assert(s[3] != '\0'); - assert(s[3] == 'b'); -} - -int -main() -{ - test(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/Wzero-as-null-pointer-constant-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/Wzero-as-null-pointer-constant-1.C deleted file mode 100644 index aad273792..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/Wzero-as-null-pointer-constant-1.C +++ /dev/null @@ -1,161 +0,0 @@ -// { dg-options "-std=c++0x -Wzero-as-null-pointer-constant" } - -struct A; - -typedef int (A::*pointmemfun) (int); -typedef int (A::*pointdmem); -typedef int (*pointfun) (int); - -pointmemfun pmfs; -pointdmem pdms; -pointfun pfs; -int* ps; - -void f() -{ - pointmemfun pmf(0); // { dg-warning "zero as null pointer" } - pointdmem pdm(0); // { dg-warning "zero as null pointer" } - pointfun pf(0); // { dg-warning "zero as null pointer" } - int* p(0); // { dg-warning "zero as null pointer" } - - pointmemfun pmfn(nullptr); - pointdmem pdmn(nullptr); - pointfun pfn(nullptr); - int* pn(nullptr); - - pmf = 0; // { dg-warning "zero as null pointer" } - - pdm = 0; // { dg-warning "zero as null pointer" } - - pf = 0; // { dg-warning "zero as null pointer" } - - p = 0; // { dg-warning "zero as null pointer" } - - pmf = nullptr; - - pdm = nullptr; - - pf = nullptr; - - p = nullptr; - - if (pmf) - ; - - if (pdm) - ; - - if (pf) - ; - - if (p) - ; - - if (!pmf) - ; - - if (!pdm) - ; - - if (!pf) - ; - - if (!p) - ; - - if (pmf == 0) // { dg-warning "zero as null pointer" } - ; - - if (pdm == 0) // { dg-warning "zero as null pointer" } - ; - - if (pf == 0) // { dg-warning "zero as null pointer" } - ; - - if (p == 0) // { dg-warning "zero as null pointer" } - ; - - if (0 == pmf) // { dg-warning "zero as null pointer" } - ; - - if (0 == pdm) // { dg-warning "zero as null pointer" } - ; - - if (0 == pf) // { dg-warning "zero as null pointer" } - ; - - if (0 == p) // { dg-warning "zero as null pointer" } - ; - - if (pmf != 0) // { dg-warning "zero as null pointer" } - ; - - if (pdm != 0) // { dg-warning "zero as null pointer" } - ; - - if (pf != 0) // { dg-warning "zero as null pointer" } - ; - - if (p != 0) // { dg-warning "zero as null pointer" } - ; - - if (0 != pmf) // { dg-warning "zero as null pointer" } - ; - - if (0 != pdm) // { dg-warning "zero as null pointer" } - ; - - if (0 != pf) // { dg-warning "zero as null pointer" } - ; - - if (0 != p) // { dg-warning "zero as null pointer" } - ; - - if (pmf == nullptr) - ; - - if (pdm == nullptr) - ; - - if (pf == nullptr) - ; - - if (p == nullptr) - ; - - if (nullptr == pmf) - ; - - if (nullptr == pdm) - ; - - if (nullptr == pf) - ; - - if (nullptr == p) - ; - - if (pmf != nullptr) - ; - - if (pdm != nullptr) - ; - - if (pf != nullptr) - ; - - if (p != nullptr) - ; - - if (nullptr != pmf) - ; - - if (nullptr != pdm) - ; - - if (nullptr != pf) - ; - - if (nullptr != p) - ; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/Wzero-as-null-pointer-constant-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/Wzero-as-null-pointer-constant-2.C deleted file mode 100644 index eea2c2fcf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/Wzero-as-null-pointer-constant-2.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/56373 -// { dg-options "-std=c++11 -Wzero-as-null-pointer-constant" } - -struct shared_ptr -{ - shared_ptr(decltype(nullptr)); -}; - -void f() -{ - shared_ptr a = 0; // { dg-warning "zero as null pointer" } - shared_ptr b(0); // { dg-warning "zero as null pointer" } - shared_ptr c{0}; // { dg-warning "zero as null pointer" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/__func__.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/__func__.C deleted file mode 100644 index 1ac906515..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/__func__.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=c++0x -pedantic" } - -const char* foo() -{ - return __func__; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/access01.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/access01.C deleted file mode 100644 index 43e5e8637..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/access01.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/49042 -// { dg-options -std=c++0x } - -template <class T> -class A -{ - T p; -public: - template <class U> auto f() -> decltype(+p) { } -}; - -int main() -{ - A<int>().f<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-0.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-0.C deleted file mode 100644 index c5760cfe5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-0.C +++ /dev/null @@ -1,37 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<template<class> class TT> struct X { }; -template<class> struct Y { }; -template<class T> using Z = Y<T>; - -void f(X<Y>); -void g(X<Z>); - -void -foo() -{ - // Below x and y don't have the same type, because Y and Z don't - // designate the same template ... - X<Y> y; - X<Z> z; - - // ... So these must fail to compile. - f(z); // { dg-error "" } - g(y); // { dg-error "" } -} - -template<class> struct A0 {}; -template<class T> using AA0 = A0<T>; -template<class T> using AAA0 = AA0<T>; - -void f0(A0<int>); -void -g0() -{ - AA0<int> a; - AAA0<int> b; - f0(a); - f0(b); -} - - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-1.C deleted file mode 100644 index cbba90fa1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-1.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=c++0x" } - -// These also represent tests for printing alias declarations and -// their instantiations. - -template<class T, class U> struct A0 {}; -template<class T, class U> using AA0 = A0<T, U>; -template<class T> struct AA0<int, T> {}; // { dg-error "specialization" } - -template <class U> using Ptr = U*; -template<class U> struct Ptr<U*> {}; // { dg-error "specialization" } - -struct A { - using A = int;//{ dg-error "nested|has|same name as|class|in which|declared" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-10.C deleted file mode 100644 index 733e791c2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-10.C +++ /dev/null @@ -1,26 +0,0 @@ -// { dg-options "-std=c++0x" } - -template <class T> using Ptr = T*; -Ptr<unsigned>; // { dg-error "does not declare anything" } -Ptr<char><int>; // { dg-error "not a template|does not declare anything" } -template class Ptr<int>;//{ dg-error "alias template specialization\[^\n\r\]*after\[^\n\r\]*class" } - -template <class T> using Arg = T; -struct A {}; -template class Arg<A>;// { dg-error "alias templ\[^\n\r\]*specialization\[^\n\r\]*Arg<A>\[^\n\r\]*after\[^\n\r\]*class" } - -template <template <class> class TT, class T> using Instantiate = TT<T>; -template <class> struct Vector {}; - -// The below is not OK, because of [dcl.type.elab]: -// -// If the identifier resolves to a typedef-name or the -// simple-template-id resolves to an alias template -// specialization, the elaborated-type-specifier is ill-formed. -// -template class Instantiate<Vector, int>;//{ dg-error "alias template specialization\[^\n\r\]*after\[^\n\r\]*class" } - -template <class T> struct S {}; -template<class T> using SFor = S<T>; -// Likewise, this is not OK. -template class SFor<int>; //{ dg-error "alias template specialization\[^\n\r\]*after\[^\n\r\]*class" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-11.C deleted file mode 100644 index 43ef7ba45..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-11.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=c++0x" } - -namespace N -{ - template <class T> using U = T*; -}; - -void f(N::U<int>) { blah; } // { dg-error "void f(N::U<int>)|not declared" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-12.C deleted file mode 100644 index 11c26865d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-12.C +++ /dev/null @@ -1,4 +0,0 @@ -// Origin: PR c++/51027 -// { dg-options "-std=c++0x" } - -using INT = int // { dg-error "expected|;|at end of input" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-13.C deleted file mode 100644 index 8555154c6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-13.C +++ /dev/null @@ -1,24 +0,0 @@ -// Origin PR c++/51191 -// { dg-options "-std=c++0x" } - -template< class T > -class ClassTemplate {}; - -template< class T > -struct Metafunction { - typedef T type; -}; - -template< class T > -using TemplateAlias = ClassTemplate< typename Metafunction<T>::type >; - -using Alias = TemplateAlias<int>; - -template< class T > -void f( TemplateAlias<T> ); - -int main() -{ - Alias x; - f( x ); // { dg-error "no matching function for call to|f" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-14.C deleted file mode 100644 index 1a998022a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-14.C +++ /dev/null @@ -1,14 +0,0 @@ -// Origin: PR c++/51145 -// { dg-options "-std=c++0x" } - -struct A {}; - -template<class> -using X = A; - -struct X<int>* px; // { dg-error "using\[^\n\r\]*alias\[^\n\r\]*specialization\[^\n\r\]*X<int>\[^\n\r\]*after\[^\n\r\]*struct|invalid type in declaration before\[^\n\r\]*;" } - -template<int> -using Y = A; - -struct Y<0>* py;// { dg-error "alias\[^\n\r\]*specialization\[^\n\r\]*Y<0>\[^\n\r\]*after\[^\n\r\]*struct|invalid type in declaration before\[^\n\r\]*;" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C deleted file mode 100644 index b23e4029f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C +++ /dev/null @@ -1,17 +0,0 @@ -// Origin PR c++/51194 -// { dg-options "-std=c++0x" } - -template<class U, class V> //#1 -struct foo {}; - -template<class U, class V=char> -struct P {}; - -template<template<class... U> class... TT> -struct bar { - template<class... Args> - using mem = P<TT<Args...>...>;//#2 -}; - -bar<foo>::mem<int, char> b;//#3 - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-16.C deleted file mode 100644 index ce6ad0a62..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-16.C +++ /dev/null @@ -1,28 +0,0 @@ -// Origin PR c++/51143 -// { dg-options "-std=c++11" } - -using A0 = struct B0 { void f() {} }; - -template<int N> -using A1 = - struct B1 { // { dg-error "types may not be defined in alias template" } - static auto constexpr value = N; - }; - -A1<0> a1; - -template<class T> -using A2 = - struct B2 { // { dg-error "types may not be defined in alias template" } - void f(T){} - }; - -A2<bool> a2; - -template<class T> -using A3 = - enum B3 {b = 0;}; //{ dg-error "types may not be defined in alias template" } - -A3<int> a3; // { dg-error "'A3' does not name a type" } - -int main() { } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-17.C deleted file mode 100644 index 41b1c950f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-17.C +++ /dev/null @@ -1,21 +0,0 @@ -// Origin PR c++/51289 -// { dg-options "-std=c++11" } - -template<typename a, template <typename, typename> class b> -struct foo { - template <typename t> - using type = b<a, t>; - template <typename t> - b<a, t> funca() {} - - template <typename t> - type<t> funcb() {} -}; - -// This is an additional test, to emit an error message when using -// unexpanded parameter packs in an alias declaration. -template <class ... T> -struct S {}; - -template<class ... T> -using A = S<T>; // { dg-error "parameter packs not expanded" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-18.C deleted file mode 100644 index ba6556131..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-18.C +++ /dev/null @@ -1,9 +0,0 @@ -// Origin: PR c++/51541 -// { dg-options -std=c++11 } - -template<typename Z> using ::T = void(int n); // { dg-error "" } -template<typename Z> using operator int = void(int n); // { dg-error "" } -template<typename Z> using typename U = void; // { dg-error "" } -template<typename Z> using typename ::V = void(int n); // { dg-error "" } -template<typename Z> using typename ::operator bool = void(int n); // { dg-error "" } -using foo __attribute__((aligned(4)) = int; // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-19.C deleted file mode 100644 index b101cb3b7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-19.C +++ /dev/null @@ -1,31 +0,0 @@ -// PR c++/53567 -// { dg-do compile { target c++11 } } - -template <unsigned int, bool> struct IntegerType { typedef unsigned type; }; - -template <class EnumT> -using UnderlyingEnumType = typename IntegerType<sizeof(EnumT), (EnumT(-1) > EnumT(0))>::type; - -template <class EnumT, class UnderlyingT = UnderlyingEnumType<EnumT>> -struct EnumMask -{ - constexpr EnumMask(EnumT val) : m_val(val) {} - operator EnumT() { return m_val; } - - EnumT m_val; -}; - -enum class A : unsigned { x }; - -template <class EnumT> -EnumMask<EnumT> operator ~(EnumT lhs) -{ - return EnumT(~unsigned(lhs) & unsigned(EnumT::maskAll)); // { dg-error "not a member" } - -} - -int main() -{ - ~A::x; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-2.C deleted file mode 100644 index 6b5b42f7f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-2.C +++ /dev/null @@ -1,33 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<class T> struct S0 {}; -template<class T> using AS0 = S0<T>; - -template<template<class> class TT> -void f(TT<int>); - -template class AS0<char>; // { dg-error "alias templ\[^\n\r\]*specialization\[^\n\r\]*after\[^\n\r\]*class" } - -void -foo() -{ - AS0<int> a; - f(a); -} - -template<class T, class U> struct Vector{}; -template<class T> struct Alloc {}; - -template<class T> using Vec = Vector<T, Alloc<T> >; - -template<class T> void g(Vector<T, Alloc<T> >); - -template<template<class T> class TT> void h(TT<int>); // { dg-error "provided for" } - -void -bar() -{ - Vec<int> a; - g(a); - h(a); // { dg-error "no matching function|wrong number of template arguments" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-20.C deleted file mode 100644 index 078d25718..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-20.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/53858 -// { dg-do compile { target c++11 } } - -template <typename T> struct s0 { typedef T tdef0; }; -template <typename T> struct s1 { typedef T tdef1; }; -template <typename T> using us1 = typename s1<T>::tdef1; -template <typename T, typename TT = typename us1<T>::tdef0> struct s2 {}; - -int main () { return 0; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-21.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-21.C deleted file mode 100644 index 463f539d3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-21.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/54575 -// { dg-do compile { target c++11 } } - -template<typename _From, typename _To> -struct is_convertible { static const bool value = true; }; - -template<bool> struct enable_if { }; -template<> struct enable_if<true> { typedef int type; }; - -template<typename _InIter> -using _RequireInputIter -= typename enable_if<is_convertible<_InIter,bool>::value>::type; - -template<typename _Tp> struct X { - template<typename _InputIterator, - typename = _RequireInputIter<_InputIterator>> - void insert(_InputIterator) {} -}; - -template<typename> void foo() { - X<int> subdomain_indices; - subdomain_indices.insert(0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-22.C deleted file mode 100644 index 1f6cb8f40..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-22.C +++ /dev/null @@ -1,12 +0,0 @@ -// The standard is unclear about whether this testcase is well-formed. -// Clang considers it well-formed, EDG not. Let's go with EDG for now. -// { dg-do compile { target c++11 } } - -template <class T> -using foo = typename T::bar; // { dg-error "this context" } - -class B -{ - typedef int bar; // { dg-error "private" } - foo<B> f; // { dg-message "required" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-23.C deleted file mode 100644 index 0e4ba45aa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-23.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/52233 -// { dg-do compile { target c++11 } } - -template <typename t> -struct foo -{ - template <template <typename...> class... xs> - using type = int; -}; - -template <typename t, template <typename...> class... xs> -struct bar -{ - using type = typename foo<t>::template type<xs...>; -}; - -bar<int, foo> x; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-24.C deleted file mode 100644 index b68fa9346..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-24.C +++ /dev/null @@ -1,24 +0,0 @@ -// Origin: PR c++/53540 -// { dg-do compile { target c++11 } } - -template <typename T> -struct context -{ - typedef int type; -}; - -template <typename T> -void function() -{ - using ctx1 = context<T>; - typename ctx1::type f1; - - typedef context<T> ctx2; - typename ctx2::type f2; -} - -int main() -{ - function<int>(); -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-25.C deleted file mode 100644 index e72bd3509..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-25.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/54859 -// { dg-options -std=c++11 } - -template<unsigned N> - using Num = int; - -template<typename... Types> - using Count = Num<sizeof...(Types)>; - -Count<int, char, void> i; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-26.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-26.C deleted file mode 100644 index dd4cc0286..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-26.C +++ /dev/null @@ -1,10 +0,0 @@ -// Origin: PR c++/54466 -// { dg-do compile { target c++11 } } - -template<typename T> - struct X { }; - -template<typename T> - using Y = const X<T>; - -using Z = Y<int>; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-27.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-27.C deleted file mode 100644 index 91208abf9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-27.C +++ /dev/null @@ -1,11 +0,0 @@ -// Origin: PR c++/54875 -// { dg-do compile { target c++11 } } - -template<typename T> -using AddConst = T const; - -enum FwdEnum : int; - -int main() { - AddConst<FwdEnum> *ptr = nullptr; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-28.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-28.C deleted file mode 100644 index 086b5e54f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-28.C +++ /dev/null @@ -1,7 +0,0 @@ -// Origin: PR c++/54401 -// { dg-do compile { target c++11 } } - -template<typename> -struct X { - using type = T; // { dg-error "expected type-specifier|does not name a type" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-29.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-29.C deleted file mode 100644 index f6cc6950b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-29.C +++ /dev/null @@ -1,10 +0,0 @@ -// Origin: PR c++/52343 -// { dg-do compile { target c++11 } } - -template<typename> -using A = int; - -template<template<class> class> -struct B {}; - -B<A> b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-3.C deleted file mode 100644 index 5484efce1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-3.C +++ /dev/null @@ -1,42 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Exercise some member alias templates ... - -template<class T, class U> class A0 {}; - -template<class T> -struct A1 { - template<class U> struct S {}; - template<class U> using AA0 = A0<T, U>; - - void f(A0<T, int>); - - void - foo() - { - AA0<int> a; - const AA0<int> b; - f(a); - f(b); - } -}; - -void -bar() -{ - A1<int> a1; - a1.foo(); - A1<int>::AA0<int> a1aa0; - a1.f(a1aa0); -} - -// ... some simple member alias ... -struct B { - using A = int; -}; - -B::A a; - -// ... and some simple alias - -using Int = int; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-30.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-30.C deleted file mode 100644 index 7ad5e6d83..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-30.C +++ /dev/null @@ -1,15 +0,0 @@ -// Origin PR c++/55311 -// { dg-do compile { target c++11 } } - -template <const char *const C, typename T> -struct A -{}; - -struct B {}; - -extern constexpr char HELLO_WORLD[] = "hello world"; - -A<HELLO_WORLD, B> g; // <-- This works fine - -template <typename T> -using PartiallySpecialized = A<HELLO_WORLD, T>; // <-- This fails diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-31.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-31.C deleted file mode 100644 index 83eea471d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-31.C +++ /dev/null @@ -1,20 +0,0 @@ -// Origin: PR c++/55663 -// { dg-do compile { target c++11 } } - -template <typename> -constexpr bool the_truth () { return true; } - -template <bool> - struct Takes_bool { }; - -template<bool B> - using Alias = Takes_bool<B>; - -template<typename T> - struct test { using type = Alias<the_truth<T>()>; }; - -int main () { - test<int> a; - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-32.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-32.C deleted file mode 100644 index cb39edde8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-32.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/56611 -// { dg-do compile { target c++11 } } - -template<class T> struct remove_reference { typedef T type; }; -template<class T> struct remove_reference<T&> { typedef T type; }; -template<class T> T declval() { return T(); } - -int f(int, int){return 0;} -struct Func{}; - -template<class... Args> using result2 -= decltype(f(declval<typename remove_reference<Args>::type>()...)); - -template<class Sig> struct R; -template<class This, class... Args> struct R< This(Args...) > -{ - typedef result2<Args...> type; -}; - -typedef R< Func(int, int) >::type R_type; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-34.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-34.C deleted file mode 100644 index 4306ab703..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-34.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/57222 -// { dg-require-effective-target c++11 } - -template <template <typename T> class Templ> -using Bool = Templ<bool>; - -template <typename T> -class Foo { -private: -public: - template<template<typename U> class Templ> - void method(Bool<Templ> boolTempl); -}; - -template <typename T> -template <template <typename U> class Templ> -void Foo<T>::method(Bool<Templ> boolTempl) { -} - -int main() { - Foo<char> foo; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-35.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-35.C deleted file mode 100644 index f412b302d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-35.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/57279 -// { dg-require-effective-target c++11 } - -typedef void fc1() const; // OK -typedef void frr1() &&; // OK -typedef void fcr1() const &; -using fc2 = void() const; // #4 -using frr2 = void() &&; // OK -using fcr2 = void() const &; // #6 diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-4.C deleted file mode 100644 index 876944e23..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-4.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "-std=c++0x" } - -// [temp.alias]/3: -// The type-id in an alias template declaration shall not refer -// to the alias template being declared. The type produced by an -// alias template specialization shall not directly or indirectly -// make use of that specialization. - -template <class T> struct A; -template <class T> using B = typename A<T>::U; // { dg-error "type" } -template <class T> struct A { - typedef B<T> U; -}; -B<short> b; // { dg-error "invalid type" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-5.C deleted file mode 100644 index 1a4cbd5e5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-5.C +++ /dev/null @@ -1,34 +0,0 @@ -// { dg-options "-std=c++0x" } - -// alias template of a partial specialization - -template<class T, class U, class W> struct S0 {}; -template<class T, class U> struct S0<T, U, char> {}; -template<class T> using AS0 = S0<T, int, char>; -void foo(S0<bool, int, char>); - -AS0<bool> a; // OK - -void -f() -{ - foo(a); //OK -} - -// alias template of an explicit specialization of a member template - -template<class T> -struct S1 { - template<class U> - struct M {}; -}; -template<class T> using AM = S1<int>::M<T>; -void bar(S1<int>::M<bool>); - -AM<bool> b; //OK. - -void -g() -{ - bar(b); //OK -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-6.C deleted file mode 100644 index f60b2ea7f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-6.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Alias template of non-class types. - -template <class T, class U> struct same; -template <class T> struct same<T,T> {}; - -template <class T> using Ptr = T*; -template <template <class> class T> struct A { - template <class U> using X = T<U>; -}; -same<A<Ptr>::X<int>,int*> s; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-7.C deleted file mode 100644 index 96c349a0d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-7.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Add arguments to unbound template template parameter. - -template <template <class> class Template> -struct Internal { - template <class Arg> using Bind = Template<Arg>; -}; - -template <template <class> class Template, class Arg> -using Instantiate = Template<Arg>; // After parsing #1, the - // BOUND_TEMPLATE_TEMPLATE_PARM - // parameter Template gets - // the UNBOUND_CLASS_TEMPLATE - // Internal<Template>::template Bind - // as an argument, and the - // parameter Arg gets Argument as - // an argument. And we build - // 'Bind<Argument>'. - -template <template <class> class Template, class Argument> -using Bind = Instantiate<Internal<Template>::template Bind, Argument>; //#1 - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-8.C deleted file mode 100644 index c926df753..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-8.C +++ /dev/null @@ -1,32 +0,0 @@ -// { dg-options "-std=c++0x" } - -struct A { - template <class U> using C = U; -}; - -// The particularity of the below struct is to have more than 7 -// fields. In this case, looking up a member here should exercise -// cp/search.c:lookup_field_1 in such a way that it finds it in the -// CLASSTYPE_SORTED_FIELDS of struct A7. -struct A7 { - int f0; - int f1; - int f2; - int f3; - int f4; - int f5; - int f6; - int f7; - template <class U> using C = U; -}; - -template <class T> -struct B { - typename T::template C<int> n; //#0 -}; - -// These should trigger the lookup -// of template C inside class A or -// A7, via #0. -B<A> b; -B<A7> c; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-9.C deleted file mode 100644 index dcf642d76..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-9.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } - -template <class T> -struct A { - using Result = T; -}; -template <class A> using Arg = typename A::Result; -Arg<A<int>> b; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-debug-0.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-debug-0.C deleted file mode 100644 index 63655286b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alias-decl-debug-0.C +++ /dev/null @@ -1,12 +0,0 @@ -// Origin: PR c++/51032 -// { dg-skip-if "No stabs" { mmix-*-* *-*-aix* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks* } { "*" } { "" } } -// { dg-options "-std=c++0x -gstabs+" } - -template <class C> -struct A { - template<class U> using B = U*; - int a; -}; - -A<int> a; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof.C deleted file mode 100644 index 8e8f715cd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options "-std=c++0x" } -int main(void) -{ - static_assert(alignof(int) == __alignof(int), "alignof(int) does not equal __alignof(int)"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof2.C deleted file mode 100644 index 7c5aad3de..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof2.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x -pedantic" } -int main(void) -{ - alignof(int); //ok with a type but not with an expression - alignof(3); // { dg-warning "alignof" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof3.C deleted file mode 100644 index 50c6ac915..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof3.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x -pedantic" } -int main(void) -{ - alignof(void (void)); // { dg-warning "function type" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof4.C deleted file mode 100644 index 92d636faf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/alignof4.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/51316 -// { dg-options "-std=c++0x" } - -int main() -{ - alignof(int []); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto1.C deleted file mode 100644 index f5c0ea6e4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto1.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=c++98 -Wc++11-compat" } - -// Test warning for use of auto in C++98 mode with C++11 -// compatibility warnings -void f() -{ - auto int x = 5; // { dg-warning "changes meaning" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto10.C deleted file mode 100644 index 9b89291d6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto10.C +++ /dev/null @@ -1,22 +0,0 @@ -// Positive test for auto -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <typeinfo> -extern "C" void abort(); - -int main() -{ - if (auto i = 42L) - { - if (typeid (i) != typeid (long int)) - abort (); - } - - while (auto i = 1) - { - if (typeid (i) != typeid (int)) - abort (); - break; - } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto11.C deleted file mode 100644 index bd21daef0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto11.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/38256 -// { dg-options "-std=c++0x" } - -template<int> struct A -{ - template<typename T> operator T(); -}; - -void foo() -{ - A<0>().operator auto(); // { dg-error "auto.*conversion" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto14.C deleted file mode 100644 index cb2c4e035..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto14.C +++ /dev/null @@ -1,29 +0,0 @@ -// PR c++/40306, c++/40307 -// { dg-options "-std=c++0x" } -// { dg-do run } - -template< typename T > -struct test { - test run() { - auto tmp = *this; - return tmp; - } - test run_pass() { - test tmp( *this ); - return tmp; - } - - test run_fail() { - auto tmp( *this ); - return tmp; - } -}; - -int main() -{ - test<int> x; - x.run(); - x.run_pass(); - x.run_fail(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto15.C deleted file mode 100644 index b23e1e2fd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto15.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=c++0x" } - -template< typename Fn > struct function; - -template< typename Result, typename ... ArgTypes > -struct function< auto (ArgTypes...)->Result > { -}; - -int main() -{ - function< auto(double)->int > y; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto16.C deleted file mode 100644 index 1b4ae8f82..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto16.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/40619 -// { dg-options "-std=c++0x" } - -template<typename U> struct X {}; - -template<typename T> auto f(T t) -> X<decltype(t+1)> {} -template<typename T> auto g(T t) -> X<decltype(t+1)> {} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto17.C deleted file mode 100644 index 03608d33a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto17.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/42567 -// { dg-options "-std=c++0x" } - -template<typename B> -struct A { - template<typename C> - void fn(C c) { - auto& key = *c; - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto18.C deleted file mode 100644 index 0a59242ab..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto18.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=c++0x" } - -void f() -{ - auto val = val; // { dg-error "auto" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto19.C deleted file mode 100644 index f70990287..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto19.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options -std=c++0x } - -struct Explicit { - Explicit() = default; // Line 2 - explicit Explicit(const Explicit&){} -} ex; - -auto ex2(ex); // Line 6 diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto2.C deleted file mode 100644 index 626e9e245..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto2.C +++ /dev/null @@ -1,74 +0,0 @@ -// Positive test for auto -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <typeinfo> -extern "C" void abort(); - -int f() {} - -struct A -{ - int i; - int f() {} - A operator+(A a) { return a; } -}; - -template <class T> -void g(T t) -{ - auto x = t+t; - if (typeid(x) != typeid(t+t)) - abort(); - - auto p = new auto(&t); - if (typeid(p) != typeid(T**)) - abort(); -} - -int main() -{ - auto i = 42; - if (typeid (i) != typeid (int)) - abort(); - - auto *p = &i; - if (typeid (p) != typeid (int*)) - abort(); - - auto *p2 = &p; - if (typeid (p2) != typeid (int**)) - abort(); - - auto (*fp)() = f; - if (typeid (fp) != typeid (int (*)())) - abort(); - - auto A::* pm = &A::i; - if (typeid (pm) != typeid (int A::*)) - abort(); - - auto (A::*pmf)() = &A::f; - if (typeid (pmf) != typeid (int (A::*)())) - abort(); - - g(42); - g(10.f); - g(A()); - - auto *p3 = new auto (i); - if (typeid (p3) != typeid (int*)) - abort(); - - for (auto idx = i; idx != 0; idx = 0); - while (auto idx = 0); - if (auto idx = 1); - - switch (auto s = i) - { - case 42: - break; - } - - auto j = 42, k = 24; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto20.C deleted file mode 100644 index 90f875114..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto20.C +++ /dev/null @@ -1,20 +0,0 @@ -// Test for proper non-deduced context handling of the initializer -// for an auto declaration/new. -// { dg-options -std=c++0x } - -struct with_apply -{ - template <unsigned> - void apply(const double&){} -}; - -auto p = &with_apply::apply<0>; -auto pp = new auto(&with_apply::apply<0>); - -template <class T> -void f() -{ - auto p = &T::template apply<0>; -} - -template void f<with_apply>(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto21.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto21.C deleted file mode 100644 index 1cbcac58d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto21.C +++ /dev/null @@ -1,5 +0,0 @@ -// Origin PR c++/47208 -// { dg-options "-std=c++0x" } - -constexpr auto list = { }; // { dg-error "deducing from brace-enclosed initializer list requires #include <initializer_list>" } -static const int l = list.size(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto22.C deleted file mode 100644 index 66630e536..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto22.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/47999 -// { dg-options -std=c++0x } - -int& identity(int& i) -{ - return i; -} - -// In a function template, auto type deduction works incorrectly. -template <typename = void> -void f() -{ - int i = 0; - auto&& x = identity(i); // Type of x should be `int&`, but it is `int&&`. -} - -int main (int argc, char* argv[]) -{ - f(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto23.C deleted file mode 100644 index 49b5a0eb9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto23.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/46245 -// { dg-options -std=c++0x } - -template<auto f()->int> struct A { }; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto24.C deleted file mode 100644 index b024ad5b2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto24.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/48599 -// { dg-options "-std=c++0x -pedantic-errors" } - -int v[1]; -auto (*p)[1] = &v; // { dg-error "array of .auto" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto25.C deleted file mode 100644 index 2917c0e19..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto25.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/42056 -// { dg-options -std=c++0x } - -template<int> struct A -{ - int a[auto(1)]; // { dg-error "invalid use of" } -}; - -template<int> void foo() -{ - int a[auto(1)]; // { dg-error "invalid use of" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto26.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto26.C deleted file mode 100644 index 6e55aa451..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto26.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/43321 -// { dg-options -std=c++0x } - -template <class T> -void f(T t) -{ - auto *p = t; -} - -template <class T> -void g(const T& tr) -{ - auto p = *tr; -} - -int main() -{ - int b; - f(&b); - g(&b); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto27.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto27.C deleted file mode 100644 index 192176360..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto27.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/51186 - -auto main()->int // { dg-error "std=" "std" { target c++98 } } - // { dg-error "auto" "auto" { target c++98 } 3 } - // { dg-error "no type" "no type" { target c++98 } 3 } -{ } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto28.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto28.C deleted file mode 100644 index 8d250166a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto28.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/51404 -// { dg-options -std=c++0x } - -int i = auto().x; // { dg-error "invalid use of" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto29.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto29.C deleted file mode 100644 index 818745751..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto29.C +++ /dev/null @@ -1,25 +0,0 @@ -// PR c++/51401 -// { dg-do compile } -// { dg-options "-std=c++11" } - -template <int> -struct A -{ - auto i; // { dg-error "non-static data member declared" } -}; - -template <int> -struct B -{ - auto i = 0; // { dg-error "non-static data member declared" } -}; - -struct C -{ - auto i; // { dg-error "non-static data member declared" } -}; - -struct D -{ - auto i = 0; // { dg-error "non-static data member declared" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto3.C deleted file mode 100644 index 2b51d3191..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto3.C +++ /dev/null @@ -1,27 +0,0 @@ -// Negative test for auto -// { dg-do compile { target c++11 } } - -#include <initializer_list> - -auto x; // { dg-error "auto" } - -// If the type deduced for the template parameter U is not the same in each -// deduction, the program is ill-formed. -auto i = 42, j = 42.0; // { dg-error "auto" } - -// New CWG issue -auto a[2] = { 1, 2 }; // { dg-error "auto|initializer_list" } - -template<class T> -struct A { }; - -A<int> A1; -// CWG issue 625 -A<auto> A2 = A1; // { dg-error "" } - -auto foo() { } // { dg-error "auto" } - -void bar(auto i) // { dg-error "incomplete|auto" } -{ - (void)i; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto30.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto30.C deleted file mode 100644 index d26e290f5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto30.C +++ /dev/null @@ -1,9 +0,0 @@ -// Origin PR c++/51473 -// { dg-options "-std=c++11" } - -struct A -{ - auto friend struct B; // { dg-error "multiple types|can only be specified|friend" } -}; - -auto int; // { dg-error "multiple types|can only be specified for variables" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto31.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto31.C deleted file mode 100644 index 26a656063..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto31.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/51416 -// { dg-do compile { target c++11 } } - -template<typename T, typename... U> void foo(T, U... u) -{ - auto foo(u...); // { dg-error "auto" } -} - -void bar() -{ - foo(0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto32.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto32.C deleted file mode 100644 index 2aad34e40..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto32.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-do compile { target c++11 } } - -// { dg-final { scan-assembler "_Z1fIiEDTnw_Dapifp_EET_" } } -template <class T> auto f(T t) -> decltype (new auto(t)); - -int main() -{ - f(1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto33.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto33.C deleted file mode 100644 index dade5a8ba..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto33.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/53484 -// { dg-do compile { target c++11 } } - -template<class T,class U> struct ST; -template<class T> struct ST<T,T> {}; - -template <class T> -void f(T x){ - [&]{ - auto y = x; - ST<decltype(y),int>(); - }(); -} - -int main(){ f(0); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto34.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto34.C deleted file mode 100644 index 3682d60bf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto34.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/51421 -// { dg-do compile { target c++11 } } - -int foo1(int); - -void bar1() -{ - auto i = foo1(i); // { dg-error "before deduction" } -} - -struct A {}; - -A foo2(A); - -void bar2() -{ - auto a = foo2(a); // { dg-error "before deduction" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto35.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto35.C deleted file mode 100644 index 55eebbeff..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto35.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/53122 -// { dg-do compile { target c++11 } } - -template<typename... Args> - void foo(Args&&...) { } - -template<typename... Args> - void bar(Args&&...) -{ - auto fn = foo<Args...>; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto36.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto36.C deleted file mode 100644 index c3530401b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto36.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/54903 -// { dg-options -std=c++11 } - -template<int N, int D> -struct Modulus -{ - static auto const value = N % D; -}; - -template<int N> -struct Angle -{ - static auto const value = Modulus<N, 360>::value; // ERROR - //static int const value = Modulus<N, 360>::value; // OK - //static auto const value = N % 360; // OK - - typedef Angle<value> type; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto37.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto37.C deleted file mode 100644 index f4b29046d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto37.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/55003 -// { dg-do compile { target c++11 } } - -template<typename T> -struct A { - static const auto t - = (typename T::type)42; -}; - -struct X { - typedef int type; -}; - -A<X> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto38.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto38.C deleted file mode 100644 index 070a39b9e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto38.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/57183 -// { dg-do compile { target c++11 } } -// { dg-options "-Wunused-variable" } - -constexpr float PI_0 = 3.1415926F; -constexpr auto PI_1 = 3.1415926F; -const float PI_2 = 3.1415926F; -const auto PI_3 = 3.1415926F; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto4.C deleted file mode 100644 index d47bca436..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto4.C +++ /dev/null @@ -1,28 +0,0 @@ -// Testcase for deduction of std::initializer_list for auto. -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <typeinfo> -#include <initializer_list> -extern "C" void abort(); - -template <class T> -void f (T t) -{ - auto ilt = { &t, &t }; - if (typeid(ilt) != typeid(std::initializer_list<T*>)) - abort(); - - auto il = { 1, 2, 3 }; - if (typeid(il) != typeid(std::initializer_list<int>)) - abort(); -} - -int main() -{ - auto il = { 1, 2, 3 }; - if (typeid(il) != typeid(std::initializer_list<int>)) - abort(); - - f('c'); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto5.C deleted file mode 100644 index ebe2df22e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto5.C +++ /dev/null @@ -1,22 +0,0 @@ -// Testcase for non-dependent auto in templates -// { dg-options "-std=c++0x" } - -struct A -{ - template<class> void f(); -} a; - -template <class T> -void g() -{ - auto aa = a; - aa.f<int>(); - - auto p = new auto (a); - p->f<int>(); -} - -int main() -{ - g<double>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto7.C deleted file mode 100644 index 3b3b82901..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto7.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/37965 -// Negative test for auto -// { dg-options "-std=c++0x" } - -auto i = 6; -auto j; // { dg-error "has no initializer" } - -template<int> struct A -{ - static auto k = 7; // { dg-error "non-const" } - static auto l; // { dg-error "has no initializer" } - auto m; // { dg-error "non-static data member declared" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto9.C deleted file mode 100644 index 190bfa6e8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/auto9.C +++ /dev/null @@ -1,124 +0,0 @@ -// PR c++/37962 -// Negative test for auto -// { dg-do compile } -// { dg-options "-std=c++0x" } - -#include <typeinfo> -#include <stdarg.h> -#include <stddef.h> - -int i = *(auto *) 0; // { dg-error "auto" } -struct A *p = (auto *) 0; // { dg-error "auto" } -int *q = static_cast <auto *>(0); // { dg-error "auto" } -const int *r = const_cast <auto *>(q); // { dg-error "auto" } -const std::type_info &t1 = typeid (auto); // { dg-error "auto" } -const std::type_info &t2 = typeid (auto *); // { dg-error "auto" } - -struct A -{ - operator auto (); // { dg-error "auto" } - operator auto *(); // { dg-error "auto" } -}; - -struct A2 -{ - operator auto () -> int; // { dg-error "invalid use of" } - operator auto *() -> int; // { dg-error "auto" } -}; - -template <typename> struct B -{ - enum { e }; -}; - -template <typename T> struct C -{ - C () : i () {} - int i; -}; - -bool d = (auto (A::*)()) 0; // { dg-error "auto" } - -void -foo () -{ - (auto) { 0 }; // { dg-error "auto" } - C<int> c; - dynamic_cast<auto> (c); // { dg-error "auto" } - reinterpret_cast<auto> (c); // { dg-error "auto" } - int i = auto (0); // { dg-error "auto" } - auto p1 = new (auto); // { dg-error "auto" } - auto p2 = new (auto) (42); // { dg-error "invalid use of|deduce" } - offsetof (auto, fld); // { dg-error "auto" } - offsetof (auto *, fld); // { dg-error "auto" } - sizeof (auto); // { dg-error "auto" } - sizeof (auto *); // { dg-error "auto" } -} - -void -foo2 (void) -{ - __alignof__ (auto); // { dg-error "auto" } - __alignof__ (auto *); // { dg-error "auto" } - __typeof__ (auto) v1; // { dg-error "auto" } - __typeof__ (auto *) v2; // { dg-error "auto" } - __is_class (auto); // { dg-error "auto|expected" } - __is_pod (auto *); // { dg-error "auto|expected" } - __is_base_of (int, auto); // { dg-error "auto|expected" } - __is_base_of (auto, int); // { dg-error "auto|expected" } - __is_base_of (auto, auto *); // { dg-error "auto|expected" } -} - -B<auto> b; // { dg-error "auto|invalid" } -C<auto> c; // { dg-error "auto|invalid" } -C<auto *> c2; // { dg-error "auto|invalid" } - -enum : auto { EE = 0 }; // { dg-error "must be an integral type" } -enum struct D : auto * { FF = 0 }; // { dg-error "must be an integral type|declar|expected" } - -void -bar () -{ - try { } catch (auto i) { } // { dg-error "parameter declared" } - try { } catch (auto) { } // { dg-error "parameter declared" } - try { } catch (auto *i) { } // { dg-error "parameter declared" } - try { } catch (auto *) { } // { dg-error "parameter declared" } -} - -void -baz (int i, ...) -{ - va_list ap; - va_start (ap, i); - va_arg (ap, auto); // { dg-error "invalid use of" } - va_arg (ap, auto *); // { dg-error "invalid use of|expected" } - va_arg (ap, auto &); // { dg-error "invalid use of|expected" } - va_end (ap); -} - -template <typename T = auto> struct E {}; // { dg-error "invalid use of" } -template <class T = auto *> struct F {}; // { dg-error "invalid use of|expected" } - -auto fnlate () -> auto; // { dg-error "invalid use of" } -auto fnlate2 () -> auto *; // { dg-error "invalid use of|expected" } - -void -badthrow () throw (auto) // { dg-error "invalid use of" } -{ -} - -void -badthrow2 () throw (auto &) // { dg-error "invalid use of|expected" } -{ -} - -template <auto V = 4> struct G {}; // { dg-error "auto" } - -template <typename T> struct H { H (); ~H (); }; -H<auto> h; // { dg-error "invalid" } - -void qq (auto); // { dg-error "auto" } -void qr (auto*); // { dg-error "auto" } - -// PR c++/46145 -typedef auto autot; // { dg-error "auto" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bind.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bind.C deleted file mode 100644 index 42a2ac203..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bind.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "--std=c++0x" } -struct S{}; -void f(S&&); - -int main() -{ - f(S()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket1.C deleted file mode 100644 index dfb5bf4ea..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket1.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<typename T> -struct list {}; - -template<typename T> -struct vector { - operator T() const; -}; - -void f() -{ - vector<vector<int>> v; - const vector<int> vi = static_cast<vector<int>>(v); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket2.C deleted file mode 100644 index 300015d01..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket2.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<int i> class X { /* ... */ }; -X< 1>2 > x1; // // { dg-error "numeric constant" } -X<(1>2)> x2; // Okay. - -template<class T> class Y { /* ... */ }; -Y<X<1>> x3; // Okay, same as "Y<X<1> > x3;". -Y<X<6>>1>> x4; // { dg-error "numeric constant" } -Y<X<(6>>1)>> x5; // Okay diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket3.C deleted file mode 100644 index f86aa041a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket3.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=c++98 -Wc++11-compat" } - -template<int N> struct X {}; - -X<1 >> 2> x; // { dg-warning "is treated as|suggest parentheses" } - -// From cp/parser.c -typedef int Y; -template <int V> struct Foo {}; -Foo<Y () >> 5> r; // { dg-warning "is treated as|suggest parentheses" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket4.C deleted file mode 100644 index 0e1985cef..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/bracket4.C +++ /dev/null @@ -1,35 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } -template<typename T> -struct vector { -}; - -struct X { - template<typename T> - struct tmpl { - operator T() const; - }; -}; - -template<typename T> -void g() -{ - T::template tmpl<vector<int>>() + 2; -} - -template<typename T> -void operator+(vector<T>, int); - -void f() -{ - vector<vector<int>>() + 2; -} - -// PR c++/36460 -template <class a> -class A {}; -template <class b> -class B {}; - -A<B<void()>> x; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/cast-bug.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/cast-bug.C deleted file mode 100644 index 211f88b2b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/cast-bug.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "--std=c++0x" } -struct S -{ - S(); - S(S &&); -private: - S(S &); -}; - -S f() -{ - S s; - return static_cast<S&&>(s); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/cast.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/cast.C deleted file mode 100644 index 9162d09f3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/cast.C +++ /dev/null @@ -1,30 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test cast from lvalue to rvalue - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; - -struct A {}; - -one foo(const A&) {return one();} -two foo(A&&) {return two();} - -int test1() -{ - A a; - sa<sizeof(foo(a)) == 1 * sizeof(long)> t1; - sa<sizeof(foo(static_cast<A&&>(a))) == 2 * sizeof(long)> t2; - return 0; -} - -int main() -{ - return test1(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/catch1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/catch1.C deleted file mode 100644 index 81778ea78..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/catch1.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/53371 -// { dg-do compile { target c++11 } } - -struct Abs -{ - virtual void a() = 0; -}; - -void foo() -{ - try { - } catch (Abs) { } // { dg-error "abstract class type" } - - try { - } catch (int&&) { } // { dg-error "rvalue reference type" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/collapse-bug.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/collapse-bug.C deleted file mode 100644 index 02a59cd1d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/collapse-bug.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options "--std=c++0x" } -template<typename T, typename U> struct same_type; -template<typename T> struct same_type<T, T> {}; - -template <typename T> -struct S -{ - typedef T const (&type)(); -}; - -void f() -{ - // initial implementation didn't ignore const qualifier on - // reference, resulting in a typedef of 'const int& (&)()' - same_type<S<int &>::type, int&(&)()>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/collapse.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/collapse.C deleted file mode 100644 index 96c327324..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/collapse.C +++ /dev/null @@ -1,38 +0,0 @@ -// { dg-options "--std=c++0x" } -template<typename T, typename U> struct same_type; -template<typename T> struct same_type<T, T> {}; - -typedef int & lref; -typedef int const & clref; -typedef int && rref; -typedef int const && crref; - -template<typename T> -struct S -{ - typedef T & lref; - typedef T const & clref; - typedef T && rref; - typedef T const && crref; -}; - -void f() -{ - same_type<lref &, int &>(); - same_type<lref &&, int &>(); - same_type<rref &, int &>(); - same_type<rref &&, int &&>(); - - same_type<rref const &, int &>(); - same_type<crref volatile &&, int const &&>(); - same_type<clref const &&, int const &>(); - - same_type<S<int &>::lref &, int &>(); - same_type<S<int &&>::lref &&, int &>(); - same_type<S<int &>::rref &, int &>(); - same_type<S<int &&>::rref &&, int &&>(); - - same_type<S<int const &>::rref, int const &>(); - same_type<S<int volatile &&>::crref, int volatile &&>(); - same_type<S<int const &&>::clref, int const &>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-46336.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-46336.C deleted file mode 100644 index 3c51c2cbf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-46336.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/46336 -// { dg-options -std=c++0x } - -extern "C" { - enum A { }; - inline constexpr A - f(A a, A b) // { dg-error "previous declaration" } - { return A(static_cast<int>(a) & static_cast<int>(b)); } - enum B { }; - inline constexpr B - f(B a, B b) // { dg-error "C function" } - { return B(static_cast<int>(a) & static_cast<int>(b)); } -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-46420.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-46420.C deleted file mode 100644 index 757a6e315..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-46420.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/46420 -// { dg-options -std=c++0x } - -template<typename> class vector { }; -struct A{}; -template <class T1> -void complete_test(vector<T1> data1){ - A drop=A(); -} -int main(){ - vector<double> vect1; - complete_test(vect1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C deleted file mode 100644 index c60ba8658..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C +++ /dev/null @@ -1,25 +0,0 @@ -// PR c++/47570 -// { dg-options -std=c++0x } - -unsigned int constexpr one() -{ return 1; } - -int constexpr one_B() -{ return 1; } - -int main() -{ - // FAIL TO COMPILE: - static bool constexpr SC_huh1 = ((unsigned int)one()) >= ((unsigned int)0); - static bool constexpr SC_huh2 = one() >= ((unsigned int)0); - static bool constexpr SC_huh3 = one() >= 0; - - // COMPILE OK: - static bool constexpr SC_huh4 = ((one() == 0) || (one() > 0)); - static bool constexpr SC_huh5 = one() == 0; - static bool constexpr SC_huh6 = one() > 0; - static bool constexpr SC_huh7 = one_B() >= 0; - static bool constexpr SC_huh8 = one() >= 1; - - return SC_huh3; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-47969.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-47969.C deleted file mode 100644 index c950a3642..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-47969.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/47969 -// { dg-options -std=c++0x } - -struct A -{ - // constexpr operator int () { return 1; } -}; - -constexpr A a = A(); - -int ar[a]; // { dg-error "has non-integral type" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-48089.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-48089.C deleted file mode 100644 index a6cf40807..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-48089.C +++ /dev/null @@ -1,50 +0,0 @@ -// PR c++/48089 -// { dg-options -std=c++0x } - -// bang is ill-formed (diagnostic required) because its initializer is -// non-constant, because it uses the value of an uninitialized object. - -// s() is ill-formed (no diagnostic required) because there is no set of -// arguments that would produce a constant expression. - -// R() is well-formed because i is initialized before j. - -struct s { - constexpr s() : v(v) { } // { dg-message "" } - int v; -}; - -constexpr s bang; // { dg-message "" } - -struct R { - int i,j; - constexpr R() : i(42),j(i) { } // { dg-bogus "" "" { xfail *-*-* } } -}; - -constexpr R r; // { dg-bogus "" "" { xfail *-*-* } } - -// Ill-formed (no diagnostic required) -struct T { - int i; - constexpr int f() { return i; } - constexpr T(): i(0) { } - constexpr T(const T& t) : i(f()) { } // { dg-message "" } -}; - -constexpr T t1; -// Ill-formed (diagnostic required) -constexpr T t2(t1); // { dg-message "" } - -// Well-formed -struct U { - int i, j; - constexpr int f(int _i) { return _i; } - constexpr int g() { return i; } - constexpr U(): i(0), j(0) { } - constexpr U(const U& t) : i(f(t.i)),j(0) { } // { dg-bogus "" "" { xfail *-*-* } } - constexpr U(int _i) : i(_i),j(g()) { } // { dg-bogus "" "" { xfail *-*-* } } -}; - -constexpr U u1; -constexpr U u2(u1); // { dg-bogus "" "" { xfail *-*-* } } -constexpr U u3(1); // { dg-bogus "" "" { xfail *-*-* } } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-49776.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-49776.C deleted file mode 100644 index 3fe3dcb86..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-49776.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/49776 -// { dg-options -std=c++0x } - -struct s -{ - int i[1]; - - template<class... Types> - constexpr s(Types... args) - : i{args...} // { dg-error "cannot convert" } - { } -}; - -int main() -{ - s test = nullptr; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-51369.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-51369.C deleted file mode 100644 index 6606be8b6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-51369.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/51369 -// { dg-do compile } -// { dg-options "-std=c++11" } - -constexpr int x[2][2] = {}; - -template<int> -void -foo () -{ - x[0][0]; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C deleted file mode 100644 index d05ad43d6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/52672 -// { dg-do compile } -// { dg-options "-std=c++11" } - -__extension__ typedef __SIZE_TYPE__ * ul_ptr; -constexpr unsigned long a = *((ul_ptr)0x0); // { dg-error "" } -constexpr unsigned long b = *((ul_ptr)(*((ul_ptr)0x0))); // { dg-error "" } -constexpr unsigned long c = *((ul_ptr)*((ul_ptr)(*((ul_ptr)0x0)))); // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-1.C deleted file mode 100644 index c24ff6021..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-1.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++11" } - -typedef float __attribute__ ((vector_size (4 * sizeof (float)))) V4; -constexpr V4 v = { 1, 1, 1, 0 }; -constexpr V4 r = v[0] + v; // { dg-bogus "not a constant expression" "" { xfail *-*-* } } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-2.C deleted file mode 100644 index 3f66c4eb7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-2.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++11" } -// Ignore warning on some powerpc-ibm-aix configurations. -// { dg-prune-output "non-standard ABI extension" } - -typedef float __attribute__ ((vector_size (4 * sizeof (float)))) V4; -constexpr V4 build (float x, float y, float z) { return (V4){ x, y, z, 0 };} -constexpr V4 x = build (1, 0, 0); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-3.C deleted file mode 100644 index 2c2d2b4bf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-53094-3.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++11" } -// Ignore warning on some powerpc-ibm-aix configurations. -// { dg-prune-output "non-standard ABI extension" } - -typedef float __attribute__ ((vector_size (4 * sizeof (float)))) V4; - -struct Rot3 { - typedef float T; - typedef V4 Vec; - Vec axis[3]; - constexpr Rot3 (V4 ix, V4 iy, V4 iz) : axis {ix, iy, iz} {} - - constexpr Rot3(T xx, T xy, T xz, T yx, T yy, T yz, T zx, T zy, T zz) : - Rot3((Vec) { xx, xy, xz, 0 }, - (Vec) { yx, yy, yz, 0 }, - (Vec) { zx, zy, zz, 0 }) {} - -}; - -constexpr Rot3 r1( 0, 1 ,0, 0, 0, 1, 1, 0, 0); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-55432.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-55432.C deleted file mode 100644 index 56b09bda0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-55432.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/55432 -// { dg-do compile { target c++11 } } - -struct tag_t{} tag{}; - -constexpr tag_t const& pass(tag_t & t) -{ - return t; -} - -struct S -{ - constexpr S(tag_t) {}; -}; - -struct T -{ - S mem; - T( tag_t & args ) : mem(pass(args)) {} -}; - -T t(tag); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-55573.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-55573.C deleted file mode 100644 index 0954fdd1b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-55573.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/55573 -// { dg-do compile } -// { dg-options "-std=gnu++11" } -// Ignore warning on some powerpc-ibm-aix configurations. -// { dg-prune-output "non-standard ABI extension" } - -template <typename T, int N> -struct ExtVecTraits { - typedef T __attribute__((vector_size (N * sizeof (T)))) type; -}; - -template <typename T> -using Vec4 = typename ExtVecTraits<T,4>::type; - -template <typename T> -struct Rot3 -{ - typedef Vec4<T> Vec; - Vec axis[3]; - constexpr Rot3 (Vec4<T> ix, Vec4<T> iy, Vec4<T> iz) : axis {ix, iy, iz} {} -}; - -typedef Vec4<float> Vec; -Rot3<float> r2 ((Vec) {0, 1, 0, 0}, (Vec){0, 0, 1, 0}, (Vec){1, 0, 0, 0}); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-56302.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-56302.C deleted file mode 100644 index c0adae466..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-56302.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/56302 -// { dg-do compile } -// { dg-options "-std=c++11 -O0" } - -constexpr int foo () { return 42; } -constexpr int x = foo () + 2; - -void -bar () -{ - __asm ("" : : "n" (x), "n" (foo () * 7 + x)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-98.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-98.C deleted file mode 100644 index 1a0189b56..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-98.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-options "-std=c++98" } - -constexpr int i = 42; // { dg-message "std=c\\+\\+11" } -// { dg-error "constexpr" "" { target *-*-* } 3 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-99.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-99.C deleted file mode 100644 index 13a5ea3e6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-99.C +++ /dev/null @@ -1,13 +0,0 @@ -// Origin PR c++/51462 -// { dg-options "-std=c++11" } - -struct A -{ - int i = 0; -}; - -struct B -{ - A a; - constexpr B() : a(0) {} // { dg-error "no matching function" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-abi1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-abi1.C deleted file mode 100644 index e83f14230..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-abi1.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/47301 -// { dg-options "-std=c++0x -fabi-version=1" } - -struct A -{ - constexpr operator int () - { - return 1; - } -}; - -template < int > struct B -{ - static constexpr A a = A(); - int ar[a]; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-access.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-access.C deleted file mode 100644 index ee5fc9854..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-access.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options -std=c++0x } - -class base -{ -protected: - constexpr base() { } -}; - -struct A : base { }; - -int main() -{ - A a; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-and.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-and.C deleted file mode 100644 index 15ad25246..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-and.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/56481 -// Non-linearity in potential_constant_expression_1 -// { dg-options -std=c++11 } - -struct S -{ - constexpr bool foo (); -#define A(n) , f##n##0, f##n##1, f##n##2, f##n##3 -#define B(n) A(n##0) A(n##1) A(n##2) A(n##3) -#define C B(0) B(1) B(2) B(3) - bool f C; -}; - -constexpr bool -S::foo () -{ -#undef A -#define A(n) && f##n##0 && f##n##1 && f##n##2 && f##n##3 - return f C; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr.C deleted file mode 100644 index 36939e1af..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options -std=c++0x } - -template<class T> -constexpr T do_get(T* x, int n) { - return x[n - 1]; -} - -template<class T, int N> -constexpr T get(T (&x)[N]) { - return do_get(x, N); -} - -constexpr int arr_i[] = {1}; -constexpr auto var = get(arr_i); // #2 -static_assert(var == arr_i[0], "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr2.C deleted file mode 100644 index 7cf733445..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr2.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options -std=c++0x } - -template<class T> -struct IsNegative { - int dummy; // Workaround for empty class problem - constexpr IsNegative() : dummy(0) {} - constexpr bool operator()(const T& x) { - return x < T(0); - } -}; - -template<class T, int N, class Pred> -constexpr bool has_neg(T (&x)[N], Pred p) { - return p(x[0]) || p(x[1]); -} - -constexpr int a[] = {1, -2}; - -constexpr auto answer = has_neg(a, IsNegative<int>{}); // #1 - -static_assert(answer, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr3.C deleted file mode 100644 index f84cb5257..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr3.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options -std=c++0x } - -constexpr bool is_negative(int x) { - return x < 0; -}; - -constexpr bool do_has_neg(const int* x, bool(*p)(int)) { - return p(x[0]) || p(x[1]); // Line 6 -} - -constexpr bool has_neg(const int (&x)[2], bool(*p)(int)) { - return do_has_neg(x, p); // Line 10 -} - -constexpr int a[] = {1, -2}; - -constexpr auto answer = has_neg(a, is_negative); // Line 15 - -static_assert(answer, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr4.C deleted file mode 100644 index 697d2d9f7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr4.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-options -std=c++0x } - -constexpr const int do_last(const int* x, int n) { - return x[n - 1]; -} - -struct IsNegative { - constexpr bool operator()(const int& x) { - return x < 0; - } -}; - -template<int N, class Pred> -constexpr bool has_neg(const int (&x)[N], Pred p) { - return p(do_last(x, N)); // Line 13 -} - -constexpr int a[] = {1, -2}; - -constexpr auto answer = has_neg(a, IsNegative{}); // Line 18 - -static_assert(answer, "Error"); - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr5.C deleted file mode 100644 index d58f254f6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr5.C +++ /dev/null @@ -1,32 +0,0 @@ -// { dg-options -std=c++0x } - -template<class T> -constexpr T do_last(T* x, int n) { - return x[n - 1]; // -} - -template<class T, int N> -constexpr T last(T (&x)[N]) { - return do_last(x, N); -} - -constexpr bool is_negative(int x) { return x < 0; } - -template<class T> -struct IsNegative { - constexpr bool operator()(const T& x) { - return x < T(0); - } -}; - -template<class T, int N, class Pred> -constexpr bool has_neg(T (&x)[N], Pred p) { - return p(last(x)); // Line 22 -} - -constexpr int a[] = {1, -2}; - -constexpr auto answer1 = has_neg(a, IsNegative<int>{}); // Line 27 -constexpr auto answer2 = has_neg(a, is_negative); - -static_assert(answer2 == answer1, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr6.C deleted file mode 100644 index 17dd6e50b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr6.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options "-std=c++0x" } - -typedef decltype(sizeof(char)) size_type; - -template<class T, size_type N> -constexpr size_type size(T (&)[N]) { return N; } - -double array_double[] = { 1.0, 2.0, 3.0 }; - -constexpr auto sz_d = size(array_double); - -static_assert(sz_d == 3, "Array size failure"); - -void f(bool (¶m)[2]) { - static_assert(size(param) == 2, "Array size failure"); // Line 13 - short data[] = {-1, 2, -45, 6, 88, 99, -345}; - static_assert(size(data) == 7, "Array size failure"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr7.C deleted file mode 100644 index 44775c070..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr7.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/49290 -// { dg-options -std=c++0x } - -typedef unsigned T; -struct S -{ - constexpr T foo (void); - unsigned s1[16]; -}; - -constexpr T -S::foo () -{ - return *(T *) (s1 + 10); -} - -constexpr S s = { 0,1,2,3,4,5,6,7,8,9,10 }; - -#define SA(X) static_assert ((X), #X) -SA(s.foo() == 10); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr8.C deleted file mode 100644 index ee425ea1a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr8.C +++ /dev/null @@ -1,54 +0,0 @@ -// PR c++/57047 -// { dg-require-effective-target c++11 } - -template <typename> -struct A; -template <typename T> -struct A <T &> -{ - typedef T type; -}; -template <typename T> -constexpr T && foo (typename A <T>::type & __t) noexcept -{ - return static_cast <T &&>(__t); -} -template <class T1, class T2> -struct B -{ - T1 t1; - T2 t2; - template <class U> - constexpr B (U && __x, const T2 & __y) : t1 (foo <U> (__x)), t2 (__y) {} -}; -static inline constexpr bool -fn1 (const char c) -{ - return ('0' <= c) && (c <= '9'); -} -static inline constexpr bool -fn2 (const char c) -{ - return (('A' <= c) && (c <= 'Z')) || (('a' <= c) && (c <= 'z')); -} -static constexpr bool -fn3 (const char *const x) -{ - return (x[1] == '\0' && x[0] == ']') ? true : (!fn1 (x[0])) ? false : fn3 (&x[1]); -} -static constexpr bool -fn4 (const char *const x) -{ - return (x[0] == '\0') ? fn3 (&x[1]) : fn4 (&x[1]); -} -static inline constexpr bool -fn5 (const char *const x) -{ - return fn2 (x[0]) ? fn4 (x) : false; -} -struct C final -{ - constexpr C (const char *const t1) : c (fn5 (t1) ? 199 : 69) {} - unsigned c; -}; -B <C, C> p ("a", "b"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-tparm.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-tparm.C deleted file mode 100644 index c17090cc3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array-tparm.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } - -template <const int I[2]> struct A { int ir[I[0]]; }; -extern constexpr int ar[2] = { 1, 2 }; -A<ar> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array.C deleted file mode 100644 index e37400a8b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-final { scan-assembler-not "static_initialization" } } - -struct A -{ - int i; - constexpr A(): i(0) { } -}; - -struct B -{ - A a[4]; -}; - -extern const B b{}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array2.C deleted file mode 100644 index 9577f75d9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array2.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/46348 -// { dg-options -std=c++0x } - -template<__SIZE_TYPE__ _Nw> - struct _Base - { - typedef unsigned long _WordT; - - _WordT _M_w[_Nw]; - - constexpr - _Base() - : _M_w() { } - }; - -int main() -{ - _Base<256> bs; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array3.C deleted file mode 100644 index 145a4307e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array3.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/48132 -// { dg-options -std=c++0x } - -struct C -{ - constexpr C (int x) : c (x) {} - int c; -}; - -void -foo () -{ - C a[] = { C (0) }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array4.C deleted file mode 100644 index 9aeb75d6b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array4.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/49924 -// { dg-options -std=c++0x } - -struct A { constexpr A() { } }; - -struct B { - A array[1]; //non-static member array of a literal type w constexpr ctor - constexpr B() : array{} { } // here is the problem -}; - -int main() -{ - constexpr B b{}; // won't compile -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array5.C deleted file mode 100644 index 4605b4be9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-array5.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/56582 -// { dg-do compile { target c++11 } } - -// Reliable ICE -constexpr int n[3] = {}; -constexpr int k = n[-1]; // { dg-error "negative" } - -// Some random byte -constexpr char c = "foo"[-1000]; // { dg-error "negative" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-attribute.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-attribute.C deleted file mode 100644 index ac85c076d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-attribute.C +++ /dev/null @@ -1,63 +0,0 @@ -// { dg-options -std=c++0x } - -//A few constexpr's -constexpr int foo() { return __alignof__(int); } - -template<typename T> -constexpr int fooT() { return __alignof__(T); } - -template<int N> -constexpr int fooN() { return N; } - -//Now the attributes - -//with normal variables, -int a __attribute__((aligned(foo()))); -int b __attribute__((aligned(fooT<int>()))); -int c __attribute__((aligned(fooN<__alignof__(int)>()))); - -//with variables inside a template, -template <typename T> -void fun() -{ - T a __attribute__((aligned(foo()))); - T b __attribute__((aligned(fooT<T>()))); - T c __attribute__((aligned(fooN<__alignof__(T)>()))); - T d __attribute__((aligned(fooT<int>()))); - T e __attribute__((aligned(fooN<__alignof__(int)>()))); -} - -//instantiate it, -void bar() -{ - fun<int>(); -} - -//with classes -struct __attribute__((aligned(foo()))) S0 -{ - char dummy; -}; -S0 s0; - -struct __attribute__((aligned(fooT<int>()))) S1 -{ - char dummy; -}; -S1 s1; - -//and class templates -template <typename T> -struct __attribute__((aligned(foo()))) S2 -{ - char dummy; -}; - -S2<int> s2; - -template <typename T> -struct __attribute__((aligned(fooT<T>()))) S3 -{ - char dummy; -}; -S3<int> s3; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-auto.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-auto.C deleted file mode 100644 index ddf0da0b9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-auto.C +++ /dev/null @@ -1,2 +0,0 @@ -// { dg-options -std=c++0x } -constexpr auto value = 0; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base.C deleted file mode 100644 index 774df318a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base.C +++ /dev/null @@ -1,17 +0,0 @@ -// Test base/member class and static_assert with constexpr -// { dg-options -std=c++0x } - -struct A { - int i; - constexpr A(int _i): i(_i) { } -}; -struct B: A { - A a; - int j; - constexpr B(int _ib, int _ia, int _j): A(_ib), a(_ia), j(_j) { } -}; - -constexpr B b (12, 24, 36); - -#define SA(X) static_assert (X, #X) -SA(b.i==12 && b.a.i==24 && b.j==36); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base2.C deleted file mode 100644 index 3ea75432a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base2.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/46293 -// { dg-options -std=c++0x } - -struct A -{ -}; - -struct C -{ - int i; - constexpr C(int i): i(i) {} -}; - -struct B: A, C -{ - constexpr B(): A(), C(42) { } -}; - -constexpr B b{}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base3.C deleted file mode 100644 index cffe9ea24..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base3.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/46526 -// { dg-do run } -// { dg-options "-std=c++0x" } - -struct Base -{ - virtual int getid () = 0; -}; - -struct A : public Base -{ - virtual int getid () { return 1; } -}; - -struct B : public Base -{ - virtual int getid () { throw "here"; } -}; - -int -main () -{ - A a; - B b; - Base& ar = a; - ar.getid (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base4.C deleted file mode 100644 index ce23cb9dd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-base4.C +++ /dev/null @@ -1,28 +0,0 @@ -// PR c++/46626 -// { dg-do run } -// { dg-options "-std=c++0x" } - -struct A -{ - virtual void f () = 0; - virtual ~A () { } -}; - -struct B : A -{ - virtual void f () { } -}; - -static void -foo (A *a) -{ - a->f (); -} - -int -main () -{ - B b; - foo (&b); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield.C deleted file mode 100644 index 7eba49833..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/46369 -// { dg-options -std=c++0x } - -struct A -{ - unsigned i : 1; -}; - -constexpr A f() { return { 1 }; } -constexpr bool b = (f().i == 1); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield2.C deleted file mode 100644 index 531bf31fc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield2.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/49136 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -struct day -{ - unsigned d : 5; - unsigned n : 3; - constexpr explicit day (int dd) : d(dd), n(7) {} -}; - -struct date { - int d; - constexpr date (day dd) : d(dd.n != 7 ? 7 : dd.d) {} -}; - -constexpr day d(0); -constexpr date dt(d); -static_assert (dt.d == 0, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield3.C deleted file mode 100644 index b0ecbfb9a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield3.C +++ /dev/null @@ -1,33 +0,0 @@ -// PR c++/49136 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -struct S -{ - unsigned : 1; unsigned s : 27; unsigned : 4; - constexpr S (unsigned int x) : s(x) {} -}; - -template <typename S> -struct T -{ - unsigned int t; - constexpr T (S s) : t(s.s != 7 ? 0 : s.s) {} - constexpr T (S s, S s2) : t(s.s != s2.s ? 0 : s.s) {} -}; - -constexpr S s (7), s2 (7); -constexpr T<S> t (s), t2 (s, s2); -static_assert (t.t == 7, "Error"); -static_assert (t2.t == 7, "Error"); - -struct U -{ - int a : 1; int s : 1; - constexpr U (int x, int y) : a (x), s (y) {} -}; - -constexpr U u (0, -1), u2 (-1, -1); -constexpr T<U> t3 (u), t4 (u, u2); -static_assert (t3.t == 0, "Error"); -static_assert (t4.t == -1, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-builtin1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-builtin1.C deleted file mode 100644 index b3f557636..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-builtin1.C +++ /dev/null @@ -1,25 +0,0 @@ -// PR c++/49813 -// { dg-options -std=c++0x } - -inline constexpr bool -isinf(long double __x) -{ return __builtin_isinf(__x); } - -inline constexpr bool -isinf(double __x) -{ return __builtin_isinf(__x); } - -inline constexpr bool -isnan(long double __x) -{ return __builtin_isnan(__x); } - -int main() -{ - constexpr long double num1 = __builtin_isinf(1.l); // Ok. - - constexpr long double num2 = isinf(1.l); // Error. - - constexpr double num3 = isinf(1.); // Ok. - - constexpr long double num4 = isnan(1.l); // Ok. -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-builtin2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-builtin2.C deleted file mode 100644 index dde38f05a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-builtin2.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/54021 -// { dg-do compile { target c++11 } } - -extern int nonconst_func(int); -constexpr int identity(int x) { return x; } -constexpr int zero() { return identity(0); } -constexpr int one() { return identity(1); } - -// These are the same. Only the latter is accepted, though. -constexpr int rejected_const_4(int x) -{ return __builtin_constant_p(x) ? 4 : nonconst_func(x); } -constexpr int accepted_const_4(int x) -{ return identity(__builtin_constant_p(x)) ? 4 : nonconst_func(x); } - -// This is rejected. I would like it to work. -constexpr int four = accepted_const_4(1); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-cache1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-cache1.C deleted file mode 100644 index b6d7b6471..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-cache1.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/51433 -// { dg-options -std=c++0x } - -constexpr int f(); -constexpr int g() { return f(); } -extern const int n = g(); // dynamic initialization -constexpr int f() { return 42; } -extern const int m = g(); -static_assert(m == 42, "m == 42"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C deleted file mode 100644 index de17f3ddb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - int i; - ~A(); -}; - -constexpr int i = A().i; // { dg-error "non-literal" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-complex.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-complex.C deleted file mode 100644 index eee773ef3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-complex.C +++ /dev/null @@ -1,17 +0,0 @@ -// Make sure C99 complex works with constexpr -// { dg-options -std=gnu++0x } - -struct complex -{ - typedef float value_type; - typedef __complex__ float _ComplexT; - - constexpr complex(_ComplexT __z) : _M_value(__z) { } - - constexpr complex(float __r = 0.0f, float __i = 0.0f) - : _M_value(__r + __i * 1.0fi) { } - -private: - _ComplexT _M_value; -}; -constexpr complex c1; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-compound.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-compound.C deleted file mode 100644 index 81fcc54b3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-compound.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x -pedantic-errors" } - -constexpr int f() -{ - { // { dg-error "" } - return 1; - } - { } // { dg-error "" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-condition.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-condition.C deleted file mode 100644 index e2328fcc5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-condition.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options -std=c++0x } -// Core DR 948 - -constexpr int something() { return 3; } - -int main() { - if (constexpr long v = something()) {} - if (static long v = something()) { } // { dg-error "decl-specifier invalid" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-condition2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-condition2.C deleted file mode 100644 index 243409669..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-condition2.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/48909 -// { dg-options -std=c++0x } - -#define SA(X) static_assert((X),#X) - -constexpr int const * is_sorted_until(int const * first, int const * last) -{ - return first == last || first + 1 == last ? last - : (*(first + 1) < *first) != false ? first + 1 - : is_sorted_until(first + 1, last); -} - -int main() -{ - static constexpr int array[2] = {0, 1}; - constexpr int const * last = is_sorted_until(array, array + 2); - SA(last==array+2); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-const1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-const1.C deleted file mode 100644 index 6ee72256e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-const1.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/54086 -// { dg-do compile { target c++11 } } - -static constexpr const char Data[] = { - 'D', 'A', 'T', 'A', -}; -static constexpr const char *data_func() { return Data; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor.C deleted file mode 100644 index 91c489db2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - int i; - constexpr A() { } // { dg-error "uninitialized member .A::i" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor10.C deleted file mode 100644 index c1279e2b7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor10.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/52599 -// { dg-options -std=c++11 } - -struct foo { - constexpr foo() try { } catch(...) { }; // { dg-error "constructor" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor11.C deleted file mode 100644 index 4b526eaa7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor11.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/55856 -// { dg-options -std=c++11 } - -struct A -{ - A(const char *); -}; - -template <class T> -struct B -{ - T t; - template <class U> constexpr B(U&& u): t(u) { }; -}; - -B<A&&> b(""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor12.C deleted file mode 100644 index a5a4b4d14..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor12.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/55753 -// { dg-options -std=c++11 } - -template <typename Tp> -struct C { - constexpr C(const Tp& r) { } -}; - -template <typename Tp> -struct B { - B() { - C<double> cpl = C<double>((true ? 1.0 : C<double>())); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor13.C deleted file mode 100644 index ed01a3112..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor13.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/55753 -// { dg-options -std=c++11 } - -struct A -{ - double r,i; - constexpr A(double r = 0.0, double i = 0.0): r(r), i(i) {} -}; - -template <typename Tp> -struct B { - B() { - A((true ? 1.0 : A())); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor2.C deleted file mode 100644 index 5280b131b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor2.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - A(); -}; - -struct B : A -{ - constexpr B(): A() { } // { dg-error "A::A" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor3.C deleted file mode 100644 index d5bfbad3d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor3.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/46348 -// { dg-options -std=c++0x } - -struct A -{ - int arr[1]; - - constexpr A() - : arr() { } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor4.C deleted file mode 100644 index 397b4b054..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor4.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/46873 -// { dg-options -std=c++0x } - -struct S -{ - int i:1; -}; - -struct T -{ - const S s; - constexpr T (S a = S ()) : s (a) { } -}; - -T t; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor5.C deleted file mode 100644 index 36b01785f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor5.C +++ /dev/null @@ -1,30 +0,0 @@ -// PR c++/46877 -// { dg-options -std=c++0x } - -struct new_allocator -{ - constexpr new_allocator (); -}; - -struct string -{ - constexpr string () - { - } - new_allocator a; -}; - -struct pair -{ - const string first; - constexpr pair () - { - } -}; - -constexpr -new_allocator::new_allocator () -{ -} - -pair p; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor6.C deleted file mode 100644 index 4f86f73a4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor6.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/47041 -// { dg-options "-std=c++0x -fno-elide-constructors" } - -struct S -{ - int i; -}; - -S s = S (); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor7.C deleted file mode 100644 index 8338bf1f7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor7.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/47199 -// { dg-options "-std=c++0x -fno-elide-constructors" } - -template < int > struct S -{ - constexpr S (int r):rr (r) - { - } - S (const S &) = default; - static constexpr S s () - { - return -1; - } - int rr; -}; - -static const int d = S < 0 >::s ().rr; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor8.C deleted file mode 100644 index 81fc83737..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor8.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/46466 -// { dg-options "-std=c++0x -fno-elide-constructors" } - -struct S { bool b; }; -constexpr S f() { return S{true}; } -static_assert(f().b, ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor9.C deleted file mode 100644 index b7693f1e6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor9.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/47774 -// { dg-options -std=c++0x } - -struct A -{ - A() {} -}; - -template <typename T> -struct array -{ - constexpr array() : mem() {} - T mem[7]; -}; - -int main() -{ - array<A> ar; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-data1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-data1.C deleted file mode 100644 index 0943fa422..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-data1.C +++ /dev/null @@ -1,43 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -// From N2235 - -// 1 -struct A2 -{ - static const int eights = 888; - static constexpr int nines = 999; -}; - -A2 a; - -// 2 -struct pixel -{ - int x, y; -}; -constexpr pixel ur = { 1294, 1024 }; // OK - -// p4 -struct Length -{ - explicit constexpr Length(int i = 0) : val(i) { } -private: - int val; -}; - -constexpr int myabs(int x) -{ return x < 0 ? -x : x; } // OK - -Length l(myabs(-97)); // OK - -// p6 -class debug_flag -{ -public: - explicit debug_flag(bool); - constexpr bool is_on(); // { dg-error "enclosing class .* not a literal type" } -private: - bool flag; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-data2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-data2.C deleted file mode 100644 index 2d614ec32..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-data2.C +++ /dev/null @@ -1,47 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<typename _Tp, _Tp v> - struct A3 - { - typedef _Tp value_type; - typedef A3<value_type,v> type; - - static constexpr value_type value = v; - - constexpr operator value_type() { return value; } - }; - -// Partial specialization. -template<typename _Tp, _Tp v> - struct A3<_Tp*, v> - { - typedef _Tp* value_type; - typedef A3<value_type,v> type; - - static constexpr value_type value = v; - - constexpr operator value_type() { return value; } - }; - -// Explicit specialization. -template<> - struct A3<unsigned short, 0> - { - typedef unsigned short value_type; - typedef A3<value_type, 0> type; - - static constexpr value_type value = 0; - - constexpr operator value_type() { return value; } - }; - -// Explicitly instantiate. -template struct A3<int, 415>; - -// Extern explicitly instantiate. -extern template struct A3<int, 510>; - -// Use. -A3<int, 1111> a31; -A3<char, 9999> a32; // { dg-warning "overflow" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-decl.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-decl.C deleted file mode 100644 index 8c46fab33..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-decl.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/46930 -// { dg-options -std=c++0x } - -struct S { - static constexpr int size; // { dg-error "must have an initializer" "must have" } - // { dg-error "previous declaration" "previous" { target *-*-* } 5 } -}; - -const int limit = 2 * S::size; -constexpr int S::size = 256; // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-defarg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-defarg.C deleted file mode 100644 index 1413b24bd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-defarg.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/46335 -// { dg-options -std=c++0x } - -struct T { }; -struct A { - A(const T &tr =T()) {} -}; -struct B { - A k; -}; -B kk_; -A fk_; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-defarg2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-defarg2.C deleted file mode 100644 index faa8a3603..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-defarg2.C +++ /dev/null @@ -1,44 +0,0 @@ -// PR c++/46368 -// { dg-options "-std=c++0x" } - -class A; - -class B -{ - A foo (); - A bar (); -}; - -class C -{ -}; - -struct D -{ - D (C); -}; - -struct A : D -{ - A (const C & n) : D (n) {} -}; - -A baz (const char *, A = C ()); - -A -B::foo () -{ - try - { - baz ("foo"); - } - catch (...) - { - } -} - -A -B::bar () -{ - baz ("bar"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-default-ctor.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-default-ctor.C deleted file mode 100644 index d3868b599..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-default-ctor.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -struct A { - int i; - constexpr A():i(42) { }; -}; -struct B: A { }; -constexpr int f(B b) { return b.i; } - -struct C { C(); }; // { dg-message "calls non-constexpr" } -struct D: C { }; // { dg-message "no constexpr constructor" } -constexpr int g(D d) { return 42; } // { dg-error "invalid type" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-default1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-default1.C deleted file mode 100644 index 68d50b61b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-default1.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/53464 -// { dg-do compile { target c++11 } } - -template <int value> -struct bar -{ - static constexpr int get() - { - return value; - } -}; - -template <typename A, int value = A::get()> -struct foo -{ -}; - -int main() -{ - typedef foo<bar<0>> type; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-delegating.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-delegating.C deleted file mode 100644 index a02088876..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-delegating.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/51526 -// { dg-options -std=c++0x } - -const int j = 42; - -struct S { - int i; - constexpr S(int i) : i(i) {} - constexpr S() : S(j) {} -}; - -constexpr S s{}; - -#define SA(X) static_assert((X),#X) -SA(s.i == 42); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-delegating2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-delegating2.C deleted file mode 100644 index c85ed2e81..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-delegating2.C +++ /dev/null @@ -1,28 +0,0 @@ -// PR c++/51723 -// { dg-options -std=c++0x } - -template <int... V> -struct A -{ - static constexpr int a[sizeof...(V)] = { V... }; -}; - -template <int... V> constexpr int A<V...>::a[]; - -struct B -{ - const int* const b; - - template <unsigned int N> - constexpr B(const int(&b)[N]) - : b(b) - { } - - template <int... V> - constexpr B(A<V...>) - : B(A<V...>::a) - { } -}; - -constexpr B b1 = A<10, 20, 30>::a; -constexpr B b2 = A<10, 20, 30>(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-delete.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-delete.C deleted file mode 100644 index 67c950302..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-delete.C +++ /dev/null @@ -1,3 +0,0 @@ -// { dg-options -std=c++0x } - -constexpr bool never() = delete; // useless, but OK diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-deref.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-deref.C deleted file mode 100644 index 7363e98ec..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-deref.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - const int *p[2]; -}; - -constexpr const int * f(const int *p) { return p; } - -int main() -{ - constexpr int i = 42; - constexpr int j = *&i; // OK - constexpr int k = *A{{&i}}.p[0]; // OK - constexpr int l = *f(&i); // OK -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C deleted file mode 100644 index cbd4983e8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C +++ /dev/null @@ -1,20 +0,0 @@ -// Test that we explain why a template instantiation isn't constexpr -// { dg-options -std=c++0x } - -template <class T> -struct A -{ - T t; - constexpr int f() { return 42; } // { dg-error "enclosing class" } -}; - -struct B { B(); operator int(); }; - -constexpr A<int> ai = { 42 }; -constexpr int i = ai.f(); - -constexpr int b = A<B>().f(); // { dg-error "non-constexpr function" } - -template <class T> -constexpr int f (T t) { return 42; } // { dg-error "parameter" } -constexpr int x = f(B()); // { dg-error "constexpr" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag2.C deleted file mode 100644 index c78416ec1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag2.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/47207 -// { dg-options -std=c++0x } - -constexpr int X (X); // { dg-error "not usable" } -// { dg-message "own initializer" "" { target *-*-* } 4 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag3.C deleted file mode 100644 index 100c17edb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag3.C +++ /dev/null @@ -1,54 +0,0 @@ -// PR c++/45923 -// { dg-options -std=c++0x } - -int f(int); - -template <class T> -constexpr T g(T t) { return f(t); } // { dg-error "f.int" } - -int main() -{ - constexpr int i = g(1); // { dg-error "g.T" } -} - -// -------------------- - -struct complex // { dg-message "no constexpr constructor" } -{ - complex(double r, double i) : re(r), im(i) { } - constexpr double real() { return re; } // { dg-error "not a literal type" } - double imag() const { return im; } - -private: - double re; - double im; -}; - -constexpr complex co1(0, 1); // { dg-error "not literal" } -constexpr double dd2 = co1.real(); // { dg-error "non-constexpr function" } - -// -------------------- - -struct base // { dg-message "no constexpr constructor" } -{ - int _M_i; - base() : _M_i(5) { } -}; - -struct derived : public base // { dg-message "base class" } -{ - constexpr derived(): base() { } // { dg-error "non-constexpr function" } -}; - -constexpr derived obj; // { dg-error "not literal" } - -// -------------------- - -struct Def -{ - int _M_i; // { dg-message "does not initialize" } - - constexpr Def() = default; // { dg-error "implicit declaration is not constexpr" } -}; - -constexpr Def defobj; // { dg-error "uninitialized" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C deleted file mode 100644 index 371190e97..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag4.C +++ /dev/null @@ -1,25 +0,0 @@ -// Origin: PR c++/51633 -// { dg-options "-std=c++11" } - -struct A -{ - ~A(); -}; - -struct B -{ - A a; - constexpr B() {} -}; - -struct A1 -{ - int a; - ~A1(); -}; - -struct B1 -{ - A1 a1; - constexpr B1() {} // { dg-error "uninitialized member" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag5.C deleted file mode 100644 index c0cbfdd1c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-diag5.C +++ /dev/null @@ -1,48 +0,0 @@ -// Origin: PR c++/51633 -// { dg-options "-std=c++11" } - -struct A -{ - constexpr A() {} - ~A(); -}; - -struct B -{ - A a; - A b; - A c; - constexpr B() {} -}; - -struct C -{ - A a; - constexpr C() {} -}; - -struct D -{ - constexpr D() { return;} // { dg-error "does not have empty body" } -}; - -struct D1 -{ - A a; - constexpr D1() { return;} // { dg-error "does not have empty body" } -}; - -struct D2 -{ - A a; - A b; - constexpr D2() { return;} // { dg-error "does not have empty body" } -}; - -struct D3 -{ - A a; - A b; - A c; - constexpr D3() { return;} // { dg-error "does not have empty body" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-eh-spec.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-eh-spec.C deleted file mode 100644 index 6d231fafa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-eh-spec.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options -std=c++0x } -template<class T> class my_limits { -public: - static constexpr T min() throw() { return T(); } - static constexpr T max() noexcept { return T(); } -}; - -constexpr double var_min = my_limits<double>::min(); // #1 OK -constexpr double var_max = my_limits<double>::max(); // #2 Error diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ellipsis.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ellipsis.C deleted file mode 100644 index 5d090b541..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ellipsis.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } -constexpr int ellipsis(...) { return 1; } - -constexpr int ellipsis_c = ellipsis(); // OK -constexpr int ellipsis_c2 = ellipsis(42); // Internal error diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ellipsis2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ellipsis2.C deleted file mode 100644 index 0bb690406..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ellipsis2.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - A(); - A(const A&); - bool empty(); -}; - -constexpr int ellipsis(...) { return 1; } - -static_assert(ellipsis(A().empty()), "Error"); // { dg-error "non-constant condition|empty" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty.C deleted file mode 100644 index a9fc4388a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } - -struct Empty {}; - -constexpr bool f(Empty) { return true; } - -constexpr bool x(f(Empty{})); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty2.C deleted file mode 100644 index ef2121194..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty2.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } - -struct IsLiteral {}; - -constexpr IsLiteral bar(IsLiteral x) { return x; } - -constexpr auto xy = bar(IsLiteral()); // #1 Error, but should be OK diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty3.C deleted file mode 100644 index e0026fcc7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty3.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options -std=c++0x } - -struct IsLiteral {}; - -constexpr auto ab = IsLiteral(); - -constexpr IsLiteral bar(IsLiteral x) { return x; } - -constexpr auto xy = bar(ab); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty4.C deleted file mode 100644 index b07f92464..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty4.C +++ /dev/null @@ -1,34 +0,0 @@ -// { dg-options -std=c++0x } - -typedef decltype(sizeof(char)) size_type; - -template<class T, size_type N, class Pred> -constexpr size_type do_find_if_or_stop(T (&x)[N], size_type i, Pred p); - -template<class T, size_type N, class Pred> -constexpr size_type do_find_if(T (&x)[N], size_type i, Pred p) { - return p(x[i]) ? i : do_find_if_or_stop(x, i + 1, p); // line 8 -} - -template<class T, size_type N, class Pred> -constexpr size_type do_find_if_or_stop(T (&x)[N], size_type i, Pred p) { - return i == N ? N : do_find_if(x, i, p); -} // Line 14 - -template<class T, size_type N, class Pred> -constexpr size_type find_if(T (&x)[N], Pred p) { - return do_find_if(x, 0, p); // Line 18 -} - -constexpr long items_long[] = {1, 2, 3, 4, -5, 6, -7, 8}; - -template<class T> -struct IsNegative { - constexpr bool operator()(const T& x) { - return x < T(0); - } -}; - -constexpr auto pos1 = find_if(items_long, IsNegative<long>{}); // Line 30 - -static_assert(pos1 == 4, "find_if failure"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty5.C deleted file mode 100644 index 9bd9aa583..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty5.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } - -struct A { }; -struct B: A { }; - -constexpr B b { }; -constexpr A a = b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty6.C deleted file mode 100644 index be9a6c6ad..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-empty6.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/55993 -// { dg-do compile { target c++11 } } - -struct A {}; -struct B:A {}; -struct C:A {}; -struct D:B,C {}; - -constexpr D d {}; -constexpr const C& e=d; // OK -constexpr auto f=static_cast<const C&>(d); // FAIL diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex1.C deleted file mode 100644 index 3df7956fd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex1.C +++ /dev/null @@ -1,94 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -// From N2235 - -// 4.1 constant-expression functions -// 1 examples - - - - - -// 2 defined before first use -// NOTE: this is only needed in contexts that require a constant-expression -struct S { - constexpr int twice(); - constexpr int t(); // { dg-message "used but never defined" } -private: - static constexpr int val = 7; // constexpr variable -}; - -constexpr int S::twice() { return val + val; } -constexpr S s = { }; -int x1 = s.twice(); // ok -int x2 = s.t(); // error: S::t() not defined -constexpr int x2a = s.t(); // { dg-error "S::t" } error: S::t() not defined -constexpr int ff(); // ok -constexpr int gg(); // ok -int x3 = ff(); // error: ff() not defined -constexpr int x3a = ff(); // { dg-error "ff" } error: ff() not defined -constexpr int ff() { return 1; } // too late -constexpr int gg() { return 2; } -int x4 = gg(); // ok - - -// 4.2 const-expression data - -// 2 -// storage not allocated untill address taken -constexpr double x = 9484.748; -const double* p = &x; // the &x forces x into memory - -// 4.3 constant-expression constructors - -// 1 -struct complex { - constexpr complex(double r, double i) : re(r), im(i) { } - constexpr double real() { return re; } - constexpr double imag() { return im; } -private: - double re; - double im; -}; -constexpr complex I(0, 1); // OK -- literal complex - - -// 2 invoked with non-const args -double x5 = 1.0; // { dg-message "not declared .constexpr" } -constexpr complex unit(x5, 0); // { dg-error "x5|argument" } error: x5 non-constant -const complex one(x5, 0); // OK, ‘‘ordinary const’’ -- dynamic - // initialization -constexpr double xx = I.real(); // OK -complex z(2, 4); // OK -- ordinary variable - -// 3 -constexpr complex v[] = { - complex(0, 0), complex(1, 1), complex(2, 2) -}; -constexpr double x6 = v[2].real(); // OK - -// 4 - constexpr int i = 98; - typedef __INTPTR_TYPE__ intptr_t; - constexpr intptr_t ip = (intptr_t) &i; // { dg-error "constant" } - -// 4.3.2 copy-constructor -constexpr complex operator+(complex z, complex w) -{ - return complex(z.real() + w.real(), z.imag() + w.imag()); // fine -} -constexpr complex I2 = I + I; // OK -struct resource { - int id; - constexpr resource(int i) : id(i) { } // fine - resource(const resource& r) : id(r.id) // oops, not constexpr - { - //cout << id << " copied" << endl; - } -}; -constexpr resource f(resource d) -{ return d; } // { dg-error "non-constexpr" } -constexpr resource d = f(9); // { dg-message "constexpr" } - -// 4.4 floating-point constant expressions diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C deleted file mode 100644 index 29e835c4b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -// From N2235 - -// 4.5.3 constant expressions - -// p 4 -struct A { - constexpr A(int i) : val(i) { } - constexpr operator int() { return val; } - constexpr operator long() { return -1; } -private: - int val; -}; - -template<int I> struct X { static const int i = I; }; -constexpr A a = 42; - -X<a> x; // OK: unique conversion to int -int ar[X<a>::i]; // also OK -int ary[a]; // { dg-error "ambiguous|conversion|array" } ambiguous conversion - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C deleted file mode 100644 index 5c0b1e21c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C +++ /dev/null @@ -1,30 +0,0 @@ -// { dg-options "-std=c++0x -ftrack-macro-expansion=0" } - -#define SA(X) static_assert (X, #X) - -struct A -{ - int i; - constexpr A(int _i) { i = _i; } // { dg-error "empty body|uninitialized member" } -}; - -template <class T> -struct B -{ - T t; - constexpr B(T _t): t(_t) { } -}; - -B<int> b(1); // { dg-message "not declared .constexpr" } -SA(b.t==1); // { dg-error "non-constant condition|'b'" } -constexpr B<int> b2(1); -SA(b2.t==1); - -template <class T> -constexpr T f(T a, T b) -{ - typedef T myT; - return a + b; -} - -SA(f(1,2)==3); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C deleted file mode 100644 index 4214f5c52..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options "-std=c++0x" } - -struct A -{ - constexpr A(int) { } - constexpr operator int() { return 1; }; -}; - -template <class T> -struct B -{ - static constexpr A a = A(1); - int ar[a]; -}; - -B<int> b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-expinst.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-expinst.C deleted file mode 100644 index 208987369..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-expinst.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } -// Error: Explicit instantiation of a function template shall not use the -// inline or constexpr specifiers -template<class T> constexpr inline T bar(T x) { return x; } -template constexpr inline float bar(float x); // { dg-error "specifier" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-explicit-inst.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-explicit-inst.C deleted file mode 100644 index 8f0da0af0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-explicit-inst.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options -std=c++0x } - -template<class T> constexpr inline T bar(T x) { return x; } - -template short bar(short x); // #EI - -constexpr auto yz = bar(0); // OK -constexpr auto ab = bar(short()); // #1 Error, but should be OK -constexpr auto mn = bar(short{}); // #2 Error, but should be OK diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-fnptr.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-fnptr.C deleted file mode 100644 index 4c84d827f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-fnptr.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } - -constexpr bool is_negative(int x) { return x < 0; } - -constexpr bool check(int x, bool (*p)(int)) { return p(x); } // #1 - -static_assert(check(-2, is_negative), "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-friend.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-friend.C deleted file mode 100644 index 57782cf34..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-friend.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/48948 -// { dg-options -std=c++0x } - -struct A { A(); }; - -struct B { - friend constexpr int f(B) { return 0; } // OK - friend constexpr int f(A) { return 0; } // { dg-error "constexpr" } -}; - -template <class T> -struct C -{ - friend constexpr int f(C) { return 0; } - friend constexpr int g(C, A) { return 0; } // { dg-error "double" } - constexpr int m(C) { return 0; } - constexpr int m(A) { return 0; } // { dg-error "double" } -}; - -constexpr int i = f(C<int>()); -constexpr int j = C<int>().m(C<int>()); -constexpr int k = C<double>().m(A()); // { dg-error "constexpr" } -constexpr int l = g(C<double>(),A()); // { dg-error "constexpr" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-function1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-function1.C deleted file mode 100644 index c708b040f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-function1.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -// From N2235 - -constexpr int veryabs(int x) { return x < 0 ? -x : x; } - -constexpr long long_max() { return 2147483647; } - -constexpr int verysquare(int x) { return x * x; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-function2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-function2.C deleted file mode 100644 index 5a2ec76e3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-function2.C +++ /dev/null @@ -1,50 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -// From N2235 - -// Mess with the builtin by redeclaring. -constexpr int abs(int x) { return x < 0 ? -x : x; } - -extern "C" -{ - constexpr float - squaref(float x) { return x * x; } -} - -// implicitly inline, already: warn? -inline constexpr double -squared(double x) { return x * x; } - -constexpr int squarei(int x) { return x * x; } -extern const int side; // { dg-message "not initialized with a constant expression" } -constexpr int area = squarei(side); // { dg-error "side|argument" } -// error: squarei(side) is not a constant expression - -int next(constexpr int x) // { dg-error "parameter" } -{ return x + 1; } - -constexpr void f(int x) // { dg-error "return type .void" } -{ /* ... */ } - -constexpr int prev(int x) -{ return --x; } // { dg-error "--" } - -constexpr int g(int x, int n) // error: body not just ‘‘return expr’’ -{ - int r = 1; - while (--n > 0) r *= x; - return r; -} // { dg-error "not a return-statement" } - -constexpr int -bar(int x, int y) { return x + y + x * y; } // { dg-error "previously" } - -int bar(int x, int y) // { dg-error "redefinition" } -{ return x * 2 + 3 * y; } - -constexpr int twice(int x); // { dg-message "never defined" } -enum { bufsz = twice(256) }; // { dg-error "" } twice() isn’t (yet) defined - -constexpr int fac(int x) -{ return x > 2 ? x * fac(x - 1) : 1; } // OK diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-function3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-function3.C deleted file mode 100644 index e8ca7bc68..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-function3.C +++ /dev/null @@ -1,30 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -// From N2235 - -// function template 1 -template<typename T> - constexpr int bytesize(T t) - { return sizeof (t); } // OK - -char buf[bytesize(0)]; // OK -- not C99 VLA - - -// function template 2 -template<typename _Tp> - constexpr _Tp - square(_Tp x) { return x; } - -// Explicit specialization -template<> - constexpr unsigned long - square(unsigned long x) { return x * x; } - -// Explicit instantiation -template int square(int); - -class A { }; -template A square(A); - -template long square(long); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-generated1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-generated1.C deleted file mode 100644 index 73ddc8f5c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-generated1.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options -std=c++0x } - -template <class T> struct A -{ - constexpr T f (); -}; - -int g(); - -// We should complain about this. -template<> constexpr int A<int>::f() -{ return g(); } // { dg-error "non-constexpr" } - -// But not about this. -struct B -{ - int i; - constexpr B(int i = g()):i(i) { } -}; -struct C: B { }; -C c; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice.C deleted file mode 100644 index 3b72484a0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice.C +++ /dev/null @@ -1,11 +0,0 @@ -// We used to crash on this instead of giving a decent error. -// { dg-options -std=c++0x } - -struct A { int i; }; - -struct B { - const A *a; - constexpr B(const A& a): a(&a) { } -}; - -constexpr B b{A{42}}; // { dg-error "constant|expansion" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C deleted file mode 100644 index 856246fcc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice2.C +++ /dev/null @@ -1,3 +0,0 @@ -// { dg-options -std=c++0x } -int x; -constexpr int& rx = x; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice3.C deleted file mode 100644 index 23903bca7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice3.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/46289 -// { dg-options -std=c++0x } - -struct A -{ - int i; -}; - -struct B -{ - A a; - constexpr B(): a({1,2}) { } // { dg-error "" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice4.C deleted file mode 100644 index e1ee36dfc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice4.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/51612 -// { dg-options -std=c++0x } - -struct A {}; - -struct B : virtual A -{ - constexpr B() { } // { dg-error "has virtual base classes" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C deleted file mode 100644 index b88ec66c9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/51621 -// { dg-options -std=c++0x } - -struct A -{ - A() {} -}; - -struct B -{ - A a[1]; - constexpr B() : a() {} // { dg-error "non-constant|non-constexpr" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice6.C deleted file mode 100644 index 1a494bb32..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ice6.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/51327 -// { dg-options -std=c++0x } - -struct A -{ - A(int); -}; - -struct B : A {}; // { dg-error "no matching" } - -constexpr int foo(B) { return 0; } // { dg-error "invalid type" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete1.C deleted file mode 100644 index 3f40e29ae..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete1.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - static constexpr A a = 1; // { dg-error "incomplete" } - constexpr A(int i) { } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete2.C deleted file mode 100644 index f61535f06..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete2.C +++ /dev/null @@ -1,31 +0,0 @@ -// A constructor that might or might not be constexpr still makes -// its class literal. -// { dg-options -std=c++0x } - -template <class T> -struct B -{ - constexpr B(T) { } - constexpr B() {} -}; - -struct A -{ - B<A> b; -}; - -constexpr A a {}; - -template <class T> -struct C -{ - constexpr C(T) { } - C() {} -}; - -struct D -{ - C<D> c; -}; - -constexpr D d {}; // { dg-error "non-constexpr function" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete3.C deleted file mode 100644 index 81822b07e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-incomplete3.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/49015 -// { dg-options -std=c++0x } - -class A; - -class B { - friend constexpr B f(A); // Line 5 -}; - -class A {}; - -constexpr B f(A) { return B(); } // Line 10 diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist.C deleted file mode 100644 index 6854e7341..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist.C +++ /dev/null @@ -1,65 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-do run } - -namespace xstd { - -typedef decltype(sizeof(char)) size_t; - -template<class E> -class initializer_list { -private: - size_t sz; - const E* start; - -public: - typedef E value_type; - typedef const E& reference; - typedef const E& const_reference; - typedef size_t size_type; - typedef const E* iterator; - typedef const E* const_iterator; - - constexpr initializer_list() : sz(), start(nullptr) {} - - template<size_t N> - constexpr initializer_list(const E(&array)[N]) : sz(N), start(array) {} - - constexpr size_t size() { return sz; } - - constexpr const E* begin() { return start; } - - constexpr const E* end() { return start + sz; } -}; - -template<class E, size_t N> -constexpr initializer_list<E> make_list(const E(&array)[N]) { - return initializer_list<E>(array); -} - -template<class E> -E min(initializer_list<E> list) -{ - // static_assert(list.size() > 0, "Invalid list"); - auto it = list.begin(); - E result = *it; - for (++it; it != list.end(); ++it) { - if (*it < result) { - result = *it; - } - } - return result; -} - -} - -constexpr int global_i[] = {2, 4, -5, 6, 10}; -constexpr xstd::initializer_list<int> list(global_i); -#define SA(X) static_assert(X, #X) -SA(list.size() == 5); -SA(list.begin()[2] == -5); -SA(list.end()[-1] == 10); - -int main() { - if (xstd::min(xstd::make_list(global_i)) != -5) - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist2.C deleted file mode 100644 index f34b98016..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist2.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options -std=c++0x } - -#include <initializer_list> - -constexpr auto list = { 1, 2, 3, 4 }; - -#define SA(X) static_assert(X, #X) -SA(list.size() == 4); -SA(list.begin()[2] == 3); -SA(list.end()[-1] == 4); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist3.C deleted file mode 100644 index 7620e6b2c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist3.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -#include <initializer_list> -#define SA(X) static_assert(X,#X) - -constexpr int f(std::initializer_list<int> l) { return l.begin()[0]; } - -int main() -{ - constexpr int i = f({42}); - SA(i==42); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist4.C deleted file mode 100644 index 815185756..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist4.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options -std=c++0x } - -struct A { int i; }; -struct B: A { constexpr B(): A{} {} }; -struct B2: A { constexpr B2(): A{1} {} }; - -struct C { protected: int i; }; -struct D: C { constexpr D(): C{} {} }; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist5.C deleted file mode 100644 index 97f039998..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist5.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/50024 -// { dg-options -std=c++0x } - -template< class T > -struct Container -{ - Container(){ - int* ptr = new int{}; - } -}; - -int main() { - Container< int > c; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist6.C deleted file mode 100644 index 6b822a1f7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-initlist6.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/55419 -// { dg-options -std=c++11 } - -struct P -{ - P () = default; - explicit constexpr P (int x) : p (x) {} - int p; -}; - -struct Q -{ - constexpr Q () : q (0x7f) {} - int q; -}; - -struct R -{ - Q q; - P p; -}; - -void -foo (R *x) -{ - *x = {}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-invisiref1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-invisiref1.C deleted file mode 100644 index e0ede738a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-invisiref1.C +++ /dev/null @@ -1,36 +0,0 @@ -// PR c++/55879 -// { dg-do compile { target c++11 } } - -class CAddress -{ -public: - constexpr CAddress(unsigned long begin) : m_Begin(begin) {} - constexpr CAddress(const CAddress &other) : m_Begin(other.m_Begin) {} - -private: - unsigned long m_Begin; -}; - -extern "C" char _lnkDDRRAM; -/* internal compiler error on gcc 4.6.3 */ -const CAddress s_Memmap[2] -{ - {(unsigned long)&_lnkDDRRAM}, /* segmentation fault */ - {0x40000000}, -}; - -class CNested { -public: - constexpr CNested(const CAddress primary) - : m_PrimaryBlock(primary) {} - -private: - CAddress m_PrimaryBlock; -}; - -/* internal compiler error on gcc 4.7.2 */ -const CNested s_taskDescriptions[2] -{ - {{0x42000000}}, - {{0x43000000}}, -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-is_literal.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-is_literal.C deleted file mode 100644 index 82514ed86..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-is_literal.C +++ /dev/null @@ -1,39 +0,0 @@ -// { dg-options -std=c++0x } - -#include <type_traits> - -#define IS_LIT(T) (std::is_literal_type<T>::value) -#define SA(X) static_assert (X, #X) -#define YES(T) SA(IS_LIT(T)) -#define NO(T) SA(!IS_LIT(T)) - -enum E1 { }; -enum class E2 { }; -struct Literal {}; - -struct NotLiteral { - ~NotLiteral(); -}; - -YES(int); -YES(int[]); -YES(int[3]); -YES(double); -YES(void *); -YES(decltype (nullptr)); -YES(int Literal::*); -YES(void (Literal::*)()); -YES(E1); -YES(E2); -YES(Literal); -NO (NotLiteral); -YES(NotLiteral *); -YES(NotLiteral NotLiteral::*); -YES(NotLiteral (NotLiteral::*)(NotLiteral)); - -struct A { - A(const A&) = default; - A(int); -}; - -NO(A); // no constexpr ctor other than copy diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C deleted file mode 100644 index ef7ac6b48..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/48296 -// { dg-options -std=c++0x } - -struct X -{ - constexpr X() { } - constexpr X f(X x) { return x; } - constexpr X g(X x); -}; - -constexpr X X::g(X x) { return x; } - -struct Y -{ - Y() { } - constexpr Y f(Y y); // { dg-error "not a literal type" } - static constexpr Y g(Y y) {} // { dg-error "constexpr" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-missing.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-missing.C deleted file mode 100644 index 547f552e3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-missing.C +++ /dev/null @@ -1,39 +0,0 @@ -// PR c++/48911 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -#define SA(X) static_assert((X),#X) - -struct A -{ - constexpr A () : a (6) {} - int a; -}; - -int -main () -{ - constexpr int a[2] = { 42 }; - constexpr int i = a[1]; - SA(i==0); - constexpr int b[1] = { }; - constexpr int j = b[0]; - SA(j==0); - constexpr char c[2] = "a"; - constexpr char k = c[1]; - SA(k==0); - constexpr char d[2] = ""; - constexpr char l = d[1]; - SA(l==0); - constexpr wchar_t e[2] = L"a"; - constexpr wchar_t m = e[1]; - SA(m==0); - constexpr wchar_t f[2] = L""; - constexpr wchar_t n = f[1]; - SA(n==0); - constexpr A g[2] = { A () }; - constexpr A o = g[0]; - SA(o.a == 6); - constexpr A p = g[1]; - SA(p.a == 6); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-mutable1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-mutable1.C deleted file mode 100644 index a14d611ce..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-mutable1.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - int i; - mutable int j; -}; - -constexpr A a = { 0, 1 }; -constexpr A b = a; // { dg-error "mutable" } -constexpr int i = a.i; -constexpr int j = a.j; // { dg-error "mutable" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-neg1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-neg1.C deleted file mode 100644 index 8294afa98..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-neg1.C +++ /dev/null @@ -1,69 +0,0 @@ -// Negative examples from N3092 (FCD) -// { dg-options -std=c++0x } - -// OK: declaration -constexpr int square(int x); // { dg-message "never defined" } - -// error: pixel is a type -constexpr struct pixel { - int x; - int y; - // OK: declaration - constexpr pixel(int); -}; // { dg-error "constexpr" } -constexpr pixel::pixel(int a) -// OK: definition - : x(square(a)), y(square(a)) // { dg-error "square" } -{ } - -// error: square not defined, so small(2) not constant (5.19), so constexpr -// not satisfied -constexpr pixel small(2); // { dg-message "in constexpr expansion" } - -// error: not for parameters -int next(constexpr int x) { // { dg-error "parameter" } - return x + 1; -} - -// error: not a definition -extern constexpr int memsz; // { dg-error "definition" } - -// error: return type is void -constexpr void f(int x) // { dg-error "void" } -{ /* ... */ } -// error: use of decrement -constexpr int prev(int x) -{ return --x; } // { dg-error "-- x" } - -// error: body not just return expr -constexpr int g(int x, int n) { - int r = 1; - while (--n > 0) r *= x; - return r; -} // { dg-error "body of constexpr function" } - -class debug_flag { -public: - explicit debug_flag(bool); - constexpr bool is_on(); // { dg-error "not a literal type" } debug_flag not literal type -private: - bool flag; -}; -// OK -constexpr int bar(int x, int y) // { dg-error "previously defined here" } -{ return x + y + x*y; } -// ... -// error: redefinition of bar -int bar(int x, int y) // { dg-error "redefinition" } -{ return x * 2 + 3 * y; } - -struct pixel2 { // { dg-message "no user-provided default constructor" } - int x, y; -}; -constexpr pixel2 ur = { 1294, 1024 };// OK -constexpr pixel2 origin; // { dg-error "uninitialized const" } - -constexpr const int* addr(const int& ir) { return &ir; } // OK - -// error, initializer for constexpr variable not a constant -extern constexpr const int* tp = addr(5); // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-neg2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-neg2.C deleted file mode 100644 index 793b4c3f5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-neg2.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/54020 -// { dg-do compile { target c++11 } } - -// Preliminaries. -extern int nonconst_func(int); -constexpr int identity(int x) { return x; } -constexpr int zero() { return identity(0); } -constexpr int one() { return identity(1); } - -// Correctly accepted. -constexpr int three = one() ? 3 : nonconst_func(0); - -// Incorrectly accepted. See [dcl.constexpr] #5: -// For a constexpr function, if no function argument values exist -// such that the function invocation sub-stitution would produce a -// constant expression (5.19), the program is ill-formed; no diagnostic -// required. -constexpr int bogus() { return zero () ? 3 : nonconst_func(0); } // { dg-error "nonconst_func" } - -// Correctly rejected (not sure why). -constexpr int correct_error() { return nonconst_func(0); } // { dg-error "nonconst_func" } - -// Correctly rejected. -constexpr int z = bogus(); // { dg-error "" } - -// This is also correctly rejected. -constexpr int correct_failure() { return 0 ? 3 : nonconst_func(0); } // { dg-error "nonconst_func" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept.C deleted file mode 100644 index 0476f9096..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options -std=c++0x } - -template<class T> -struct is_funny { - static constexpr bool value = false; -}; - -template<class T> -constexpr T value(T t) noexcept(is_funny<T>::value) { return t; } // Line 7 - -constexpr bool ok = noexcept(value(42)); - -static_assert(ok, "Assertion failure"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept2.C deleted file mode 100644 index 95a1443fa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept2.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options -std=c++0x } - -template<class T> -constexpr T value(T t) { return t; } - -template<class T> -struct is_funny { - static constexpr bool value = false; -}; - -template<class T> -void eval() noexcept(value(is_funny<T>::value)) {} - -constexpr bool ok = noexcept(eval<int>()); // line 12 diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept3.C deleted file mode 100644 index 6e76ea8fa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept3.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } - -constexpr int f(int i) { return i; } -#define SA(X) static_assert (X, #X) -SA(noexcept(f(42))); -int j; -SA(!noexcept(f(j))); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept4.C deleted file mode 100644 index 119d4e167..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept4.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options -std=c++0x } -// A call is noexcept if it is a valid subexpression of a constant -// expression, even if it is not itself a constant expression. - -#define SA(X) static_assert(X,#X) - -constexpr const int* f(const int *p) { return p; } - -int main() -{ - constexpr int i = 42; - SA(noexcept(*f(&i))); - SA(noexcept(f(&i))); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept5.C deleted file mode 100644 index 7bf961b3c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept5.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options -std=c++0x } - -struct booleable { - bool data; - constexpr explicit operator bool() { return data; } -}; - -constexpr booleable truthy_func() { return {true}; } - -void funky() noexcept(truthy_func()) {} - -int main() { - funky(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept6.C deleted file mode 100644 index 91e93fd91..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept6.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/51305 -// { dg-options -std=c++0x } - -constexpr bool ok() noexcept -{ - typedef int type; - return true; -} - -constexpr auto x = ok(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg.C deleted file mode 100644 index 7637c0a05..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg.C +++ /dev/null @@ -1,24 +0,0 @@ -// Example from issue 1125 drafting; D() and v were well-formed with the -// wording approved in Rapperswil, now seems they should be ill-formed. -// { dg-options "-std=c++0x -pedantic-errors" } - -struct B { - constexpr B(int x) : i(0) { } // "x" is unused - int i; -}; - -int global; // { dg-message "not const" } - -struct D : B { - constexpr D() : B(global) { } // { dg-error "global|argument" } -}; - -struct A2 { - constexpr A2(bool b, int x) : m(b ? 42 : x) { } - int m; -}; - -// ok, constructor call initializes m with the value 42 after substitution -constexpr int v = A2(true, global).m; // { dg-error "global" } -// error: initializer for m is "x", which is non-constant -constexpr int w = A2(false, global).m; // { dg-error "global" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg2.C deleted file mode 100644 index 20e05c3c0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg2.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/47200 -// { dg-options "-std=c++0x -w" } - -template < int > struct duration -{ - constexpr int count (); - static constexpr duration min (); -}; - -constexpr int -f (duration < 0 > d, duration < 0 > ) -{ - return d.count (); -} - -static_assert (f (duration < 0 >::min (), duration < 0 > ()), ""); // { dg-error "non-constant|before its definition" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg3.C deleted file mode 100644 index 581be6d15..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-non-const-arg3.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/49988 -// { dg-options -std=c++0x } -// { dg-do run } - -template<int ... I> struct X { }; - -struct A { - char data[3]; - template<int ... I> - constexpr - A(const char (&s)[3], X<I...> x) : data{ s[I]...} { } -}; -struct B { - A a; - B(const char (&s)[3]) : a{s,X<0,1,2>{}} { } -}; - -int main() -{ - B b{"12"}; - if (b.a.data[0] != '1') - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nonlit.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nonlit.C deleted file mode 100644 index 9104c8afa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nonlit.C +++ /dev/null @@ -1,13 +0,0 @@ -// FIXME this is currently invalid, but seems like it should be OK -// { dg-options -std=c++0x } - -struct A { A() { } }; - -template<class T> -constexpr bool ignore(T&&) { return true; } - -static_assert(ignore(10), "Error"); // OK - -A s; - -static_assert(ignore(s), "Error"); // Currently an error diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nonlit2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nonlit2.C deleted file mode 100644 index 21e8bd509..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nonlit2.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - ~A(); -}; - -template<class T> -struct W { - T t; - template<class U> - constexpr W(U&& u) : t(u) {} -}; - -template <class T> -constexpr W<T> make_w(T& w) { return W<T>(w); } - -A a; -constexpr auto w = make_w(a); // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nonstatic.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nonstatic.C deleted file mode 100644 index 3951fbdb1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nonstatic.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - constexpr int i; // { dg-error "" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr.C deleted file mode 100644 index 6381323cc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options -std=c++0x } - -constexpr int zero() { return 0; } - -void* ptr1 = zero(); // { dg-error "int" } -constexpr void* ptr2 = zero(); // { dg-error "int" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-object1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-object1.C deleted file mode 100644 index 6c9d46644..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-object1.C +++ /dev/null @@ -1,30 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -// From N2235 - -// 4.5.2 semantics - -// p 1 constexpr specifier -// objects, static const data -struct A1 { int i; }; // { dg-message "no user-provided default constructor" } - -constexpr int i1 = 1024; -constexpr A1 a1 = A1(); - -// error: not a definition -extern constexpr int i2; // { dg-error "definition" } - -// error: missing initializer -constexpr A1 a2; // { dg-error "uninitialized const" } - -const constexpr A1 a3 = A1(); - -volatile constexpr A1 a4 = A1(); // { dg-error "both .volatile. and .constexpr. cannot" } - -// error: on type declaration -constexpr struct pixel -{ - int x; - int y; -}; // { dg-error "cannot be used for type declarations" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-object2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-object2.C deleted file mode 100644 index a038970f6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-object2.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -constexpr int verysquare(int x) { return x * x; } - -const double mass = 9.8; -constexpr double energy = mass * verysquare(56.6); // { dg-error "mass" "" { xfail *-*-* } } - -int arr[(int)mass]; // { dg-error "mass" "" { xfail *-*-* } } - -float array[verysquare(9)]; // OK -- not C99 VLA - -extern const int medium; -const int high = verysquare(medium); // OK -- dynamic initialization - -enum { Max = verysquare(7) }; // OK diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow.C deleted file mode 100644 index 3eb27aa0a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=c++0x -w -ftrack-macro-expansion=0" } - -#include <limits.h> -extern constexpr int max_s = INT_MAX + 1; // { dg-error "" } -extern constexpr unsigned max_u = UINT_MAX + 1u; // OK -extern constexpr int abs_s = -INT_MIN; // { dg-error "" } overflows on 2's complement machines diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow2.C deleted file mode 100644 index 5d5749ce2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow2.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/47504 -// { dg-options -std=c++0x } - -char constexpr sub(char arg) -{ return char(arg - char(1)); } - -int main() -{ static char constexpr m = sub(-1); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-pedantic.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-pedantic.C deleted file mode 100644 index dc393d759..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-pedantic.C +++ /dev/null @@ -1,16 +0,0 @@ -// The FCD doesn't allow typedefs and static_assert in constexpr functions, -// but it should. -// { dg-options "-std=c++0x -pedantic" } - -template <class T> -constexpr T f(T t) -{ - typedef T T2; // { dg-warning "constexpr" "" { xfail *-*-* } } - static_assert (T2(0) == T(0), ""); // { dg-warning "constexpr" "" { xfail *-*-* } } - return t; -} - -int main() -{ - constexpr int i = f(42); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-pos1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-pos1.C deleted file mode 100644 index 775080acc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-pos1.C +++ /dev/null @@ -1,60 +0,0 @@ -// Positive examples from N3092 (FCD) -// { dg-options -std=c++0x } - -#define SA(X) static_assert(X, #X) - -constexpr int bufsz = 1024; // OK: definition -SA (bufsz == 1024); - -constexpr int square(int x); // OK: declaration - -struct pixel { - int x; - int y; - // OK: declaration - constexpr pixel(int); -}; -constexpr pixel::pixel(int a) // OK: definition - : x(square(a)), y(square(a)) -{ } - -constexpr int square(int x) // OK: definition -{ return x * x; } - -constexpr pixel large(4); // OK: square defined -SA(large.x == 16 && large.y==16); - -constexpr long long_max() // OK -{ return 2147483647; } - -SA(long_max() == 2147483647); - -constexpr int abs(int x) // OK -{ return x < 0 ? -x : x; } - -SA(abs(-1) == 1); -SA(abs(24) == 24); - -struct Length { - explicit constexpr Length(int i = 0) : val(i) { } -private: - int val; -}; - -constexpr Length l1; -constexpr Length l2(12); - -struct pixel2 { - int x, y; -}; -constexpr pixel2 ur = { 1294, 1024 };// OK - -SA(ur.x == 1294 && ur.y == 1024); - -constexpr const int* addr(const int& ir) { return &ir; } // OK -static const int x = 5; -extern constexpr const int* xp = addr(x); // OK: (const int*)&(const int&)x - // is an address contant expression -SA(xp == &x); -extern constexpr int x2 = *addr(5); -SA(x2 == 5); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-potential1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-potential1.C deleted file mode 100644 index e933506b8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-potential1.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } -// We decided in Rapperswil that it's OK if any value of decide can produce -// a constant expression. - -constexpr int may_throw(bool decide) { - return decide ? 42 : throw -1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem.C deleted file mode 100644 index f6ed2f40a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ptrmem.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-options -std=c++0x } - -struct C { // literal type - int m; - int n; - constexpr C(int m) : m(m), n(-m) {} - constexpr bool is_neg() { return m < 0; } -}; - -constexpr bool check1(const C& c, int C:: *pm) { return c.*pm < 0; } // #1 - -constexpr bool check2(const C* pc, bool (C::*pm)() const) { return -(pc->*pm)(); } // #2 - -constexpr C c(-1); - -static_assert(!check1(c, &C::n), "Error"); -static_assert(check1(c, &C::m), "Error"); - -static_assert(check2(&c, &C::is_neg), "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ptrsub.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ptrsub.C deleted file mode 100644 index bccec73bb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ptrsub.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/51489 -// DR 1313 -// { dg-options "-std=c++0x" } - -struct array -{ - constexpr array() :x(0) {} - constexpr int const* begin() { return &x; } - int x; -}; -constexpr array aa; -constexpr auto b = aa.begin(); -static_assert(b-b == 0, "compiles just fine"); -static_assert(aa.begin()-aa.begin() == 0, "compiler thinks it's not a constant expression"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-pure.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-pure.C deleted file mode 100644 index e17e02a42..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-pure.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - virtual void f() = 0; -}; - -struct B: A -{ - void f() { } -}; - -B b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-recursion.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-recursion.C deleted file mode 100644 index 2f9b4887d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-recursion.C +++ /dev/null @@ -1,5 +0,0 @@ -// Test that we catch excessive recursion. -// { dg-options "-std=c++0x -fconstexpr-depth=5" } -// { dg-prune-output "in constexpr expansion" } -constexpr int f (int i) { return f (i-1); } -constexpr int i = f(42); // { dg-error "constexpr evaluation depth" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C deleted file mode 100644 index 482e1ba36..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C +++ /dev/null @@ -1,44 +0,0 @@ -// PR c++/49172 -// { dg-options -std=c++0x } - -#define SA(X) static_assert((X),#X) - -constexpr int g() { return 42; }; -constexpr int(&rg)() = g; // #1 - -SA(rg() == 42); - -constexpr int i = 24; -constexpr int const& ri = i; // #2 - -SA(&ri == &i); -SA(ri == 24); - -void f() -{ - constexpr int(&rg)() = g; // #1 - - SA(rg() == 42); - - constexpr static int i = 24; - constexpr int const& ri = i; // #2 - - SA(&ri == &i); - SA(ri == 24); -} - -template <class T> -void f2() -{ - constexpr int(&rg)() = g; // #1 - - SA(rg() == 42); - - constexpr static int i = 24; - constexpr int const& ri = i; // #2 - - SA(&ri == &i); - SA(ri == 24); -} - -template void f2<int>(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref2.C deleted file mode 100644 index 2a86eb765..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref2.C +++ /dev/null @@ -1,17 +0,0 @@ -// Negative reference variable tests. -// { dg-options -std=c++0x } - -extern int *p; -constexpr int& ri = *p; // { dg-error "p" } - -extern constexpr int &er; // { dg-error "not a definition" } -constexpr int& ri2 = er; // { dg-error "er" } - -void f(int j) -{ - constexpr int i = 42; - constexpr int const& ri = i; // { dg-error "" } - - constexpr int& rj = j; // { dg-error "" } -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref3.C deleted file mode 100644 index 24cc9c824..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref3.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/50298 -// { dg-options -std=c++0x } - -int global_variable; - -template <class T> struct X { - static constexpr T r = global_variable; -}; - -X<int&> x; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C deleted file mode 100644 index 6ae355a27..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/54777 -// { dg-options -std=c++0x } - -struct S -{ - int s[1]; - constexpr const int &foo (unsigned i) { return (i < 1 ? 0 : throw 1), s[i]; } - constexpr const int &bar (unsigned i) { return i < 1 ? s[i] : (throw 0, s[i]); } -}; - -int -main () -{ - constexpr S a {}; - constexpr int i = a.foo (0); - constexpr int j = a.bar (0); - static_assert (i == j, "Ouch"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C deleted file mode 100644 index 30bbc18a1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-reinterpret1.C +++ /dev/null @@ -1,39 +0,0 @@ -// PR c++/56728 -// { dg-require-effective-target c++11 } - -// { dg-prune-output "error" } - -class B { -public: - static B instance; - class Inner - { - public: - class Wuzi - { - unsigned int m; - } m_Class[3]; - unsigned m_Int[4]; - }; - - constexpr static Inner & getInner() - { - /* I am surprised this is considered a constexpr */ - return *((Inner *)4); - } -}; - -B B::instance; - -class A -{ -public: - constexpr A(B &bridge, B::Inner &bridge2, unsigned char index) - : m_Bridge(bridge), m_Wuz(bridge2.m_Class[index]) - {} - - B &m_Bridge; - B::Inner::Wuzi &m_Wuz; -}; -A works{B::instance, B::getInner(), 3}; -A crashnkill[1]{{B::instance, B::getInner(), 3}}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-rom.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-rom.C deleted file mode 100644 index 0536b3561..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-rom.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/49673: check that test_data goes into .rodata -// { dg-options -std=c++0x } -// { dg-additional-options -G0 { target { { alpha*-*-* frv*-*-* ia64-*-* lm32*-*-* m32r*-*-* microblaze*-*-* mips*-*-* powerpc*-*-* rs6000*-*-* score*-*-* } && { ! { *-*-darwin* *-*-aix* alpha*-*-*vms* } } } } } -// { dg-final { scan-assembler "\\.rdata" { target mips*-*-* } } } -// { dg-final { scan-assembler "rodata" { target { { *-*-linux-gnu || *-*-elf } && { ! mips*-*-* } } } } } - -struct Data -{ - int i; - constexpr Data(int i = 0) : i(i+1) {} -}; - -extern const Data test_data = { 1 }; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-sassert.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-sassert.C deleted file mode 100644 index 3e08fb0ef..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-sassert.C +++ /dev/null @@ -1,13 +0,0 @@ -// Allow static_assert in constexpr constructors, too. -// { dg-options -std=c++0x } - -template<typename T> -struct A -{ - int i; - - constexpr A(int i) : i(i) - { - static_assert(sizeof(T) == 1, ""); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static.C deleted file mode 100644 index 8ed2b5e82..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static.C +++ /dev/null @@ -1,24 +0,0 @@ -// Test for constant initialization of non-literal class (e.g. mutex) -// { dg-options "-std=c++0x -save-temps" } -// { dg-do run } - -struct A -{ - int i; - constexpr A(int _i): i(_i) { } - A(const A&); // non-trivial copy ctor makes A non-literal -}; - -A a(42); // constexpr constructor allows constant initialization -A ar[3] = { { 1 }, { 2 }, { 3 } }; -// { dg-final { scan-assembler-not "static_initialization" } } -// { dg-final cleanup-saved-temps } - -int main() -{ - if (a.i != 42 - || ar[0].i != 1 - || ar[1].i != 2 - || ar[2].i != 3) - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static10.C deleted file mode 100644 index 9b76e6fb3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static10.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/55944 -// { dg-options -std=c++11 } - -template<class T> -struct Test -{ - constexpr Test(T val) : value(val) {} - static void test() - { - static constexpr Test<int> x(42); // ICE - } - T value; -}; - -int main() -{ - static constexpr Test<int> x(42); // OK - Test<double>::test(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static2.C deleted file mode 100644 index 67c353080..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static2.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options -std=c++0x } -struct IsLiteral {}; - -struct ShouldBeLiteral { - constexpr ShouldBeLiteral(int){} -}; - -struct StaticDataMember { - static constexpr IsLiteral one = IsLiteral(); // #1 - static constexpr ShouldBeLiteral two= ShouldBeLiteral(-1); // #2 -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static3.C deleted file mode 100644 index dccdc854b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static3.C +++ /dev/null @@ -1,18 +0,0 @@ -// Test for constant initialization of class with vtable -// { dg-options "-std=c++0x -save-temps" } -// { dg-final { scan-assembler-not "static_initialization" } } -// { dg-final cleanup-saved-temps } -// { dg-do run } - -int r = 1; -// implicit default constructor for A and B is constexpr -struct A { virtual void f() {} }; -struct B: A { virtual void f() { r = 0; } }; - -B b; - -int main() -{ - b.f(); - return r; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static4.C deleted file mode 100644 index 8189fc5de..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static4.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-do run } - -extern "C" void abort (); -extern int ar[2]; - -int f() -{ - if (ar[0] != 42 || ar[1] != 0) - abort (); - return 1; -} - -int i = f(); - -int ar[2] = { 42, i }; - -int main() -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static5.C deleted file mode 100644 index a401cc0b8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static5.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options -std=c++0x } - -template <class T> -struct A -{ - constexpr static T t = T(); // { dg-error "literal" } -}; -template <class T> -constexpr T A<T>::t; - -struct B -{ - ~B(); -}; - -B b = A<B>::t; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static6.C deleted file mode 100644 index a34704d83..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static6.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options -std=c++0x } - -struct B -{ - constexpr operator int() { return 4; } -}; - -template <int I> -struct C; - -template<> -struct C<4> { typedef int TP; }; - -template <class T> -struct A -{ - constexpr static B t = B(); - C<t>::TP tp; -}; - -A<B> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static7.C deleted file mode 100644 index e46ddafd7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static7.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/48945 -// { dg-options -std=c++0x } - -struct A { - static constexpr bool is(); - static constexpr bool is_not(); -}; - -constexpr bool A::is() { return true; } -constexpr bool A::is_not() const { return true; } // { dg-error "static" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static8.C deleted file mode 100644 index 7c84cf8b0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-static8.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/50258 -// { dg-options "-std=c++0x -fpermissive" } - -struct Foo { - static const double d = 3.14; // { dg-warning "constexpr" } -}; -const double Foo::d; // { dg-warning "constexpr" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-stmtexpr.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-stmtexpr.C deleted file mode 100644 index 40e0c2d65..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-stmtexpr.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/46977 -// { dg-options "-std=c++0x" } - -template < typename > void -foo () -{ - ({int i;}), 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-string.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-string.C deleted file mode 100644 index e76d00d7e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-string.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } - -constexpr char c1 = "hi"[1]; -constexpr char c2 = "hi"[2]; -constexpr char c3 = "hi"[3]; // { dg-error "out of bound" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-switch.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-switch.C deleted file mode 100644 index d229304e4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-switch.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options -std=c++0x } - -template<class T> -constexpr T value(T t = T()) { return t; } - -enum us_enum { us_item = value<short>() }; // OK - -void func(us_enum n) { - switch (n) { - case value(us_item): ; // #1 Error - default: ; - } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-switch2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-switch2.C deleted file mode 100644 index 55cf2ad7c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-switch2.C +++ /dev/null @@ -1,23 +0,0 @@ -// Test for constexpr conversion in case context -// { dg-options -std=c++0x } - -enum class E { e1, e2 }; - -struct A -{ - E e; - constexpr operator E() { return e; } - constexpr A(E e): e(e) { } -}; - -E e; - -int main() -{ - switch (e) - { - case A(E::e1): - case A(E::e2): - ; - } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-synth1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-synth1.C deleted file mode 100644 index 983093980..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-synth1.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/46472 -// { dg-options -std=c++0x } - -template<class T> struct A { - T t; - constexpr A(){} -}; - -struct B -{ - A<int> a; -}; - -B b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-targ.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-targ.C deleted file mode 100644 index 0c8c73d2e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-targ.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - constexpr operator double() { return 1.0; } -}; - -template <int I> -struct B -{ }; - -constexpr A a { }; -B<a> b; // { dg-error "template argument|invalid type" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-temp1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-temp1.C deleted file mode 100644 index d06543632..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-temp1.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-do compile { target c++11 } } - -struct A { int i; }; -constexpr A f2 (const A& a) { return a; } -constexpr int f1 (const A &a) { return f2(a).i; } -A g(const A &a) -{ - return { f1(a) }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-template1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-template1.C deleted file mode 100644 index 88077231b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-template1.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/50248, DR 1358 -// { dg-options -std=c++0x } - -template<class Elt, unsigned max> -struct earray -{ - Elt elts[max]; - earray() = default; - template<typename... Elt2> - constexpr earray(Elt2&& ... e): elts(0) { } -}; - -struct SessionData -{ - SessionData(SessionData&) = delete; - SessionData() = default; -}; - -struct MapSessionData : SessionData -{ - earray<short, 11> equip_index; -}; - -void test() -{ - MapSessionData *sd = new MapSessionData; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-template2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-template2.C deleted file mode 100644 index 6786d1651..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-template2.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -template <class T> struct A -{ - T t; - constexpr A() { } // { dg-error "uninitialized" } -}; - -int main() -{ - constexpr A<int> a; // { dg-error "A()" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-template3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-template3.C deleted file mode 100644 index 75b2fc463..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-template3.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options -std=c++0x } - -struct A { constexpr operator int() { return 42; } }; - -template<class T> -struct B { - static const int versionConst = A(); - enum { versionEnum = versionConst }; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C deleted file mode 100644 index f1ef9dc7d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options -std=c++0x } - -constexpr int may_throw(bool decide) { - return decide ? 42 : throw -1; // { dg-error "throw" } -} - -constexpr int x = may_throw(false); // { dg-message "may_throw" } -constexpr int y = may_throw(true); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C deleted file mode 100644 index f59cd8453..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-tuple.C +++ /dev/null @@ -1,106 +0,0 @@ -// PR c++/53202 -// { dg-do run { target c++11 } } - -#include <tuple> - -template<typename Callable> - struct Bind_simple - { - explicit - Bind_simple(const Callable& callable) - : _M_bound(callable) - { } - - Bind_simple(const Bind_simple&) = default; - Bind_simple(Bind_simple&&) = default; - - auto operator()() -> decltype((*(Callable*)0)()) - { - return std::get<0>(_M_bound)(); - } - - private: - - std::tuple<Callable> _M_bound; - }; - -template<typename Callable> - Bind_simple<Callable> - bind_simple(Callable& callable) - { - return Bind_simple<Callable>(callable); - } - -struct thread -{ - struct ImplBase { }; - - template<typename T> - struct Impl : ImplBase { - T t; - Impl(T&& t) : t(std::move(t)) { } - }; - - template<typename T> - thread(T& t) - { - auto p = make_routine(bind_simple(t)); - - p->t(); - - delete p; - } - - template<typename Callable> - Impl<Callable>* - make_routine(Callable&& f) - { - return new Impl<Callable>(std::forward<Callable>(f)); - } -}; - - -int c; -class background_hello -{ -public: - background_hello() - { - __builtin_printf("default ctor called, this=%p\n", this); - ++c; - } - - background_hello(const background_hello &) - { - __builtin_printf("copy ctor called\n"); - ++c; - } - - background_hello(background_hello &&) - { - __builtin_printf("move ctor called\n"); - ++c; - } - - void operator ()() const - { - __builtin_printf("void background_hello::operator()() called, this=%p\n", this); - } - - ~background_hello() - { - __builtin_printf("destructor called, this=%p\n", this); - --c; - } - -}; - -int main() -{ - { - background_hello bh; - thread t(bh); - } - if (c != 0) - __builtin_abort (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-typedef1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-typedef1.C deleted file mode 100644 index 2719e3aea..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-typedef1.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/50508 -// { dg-options -std=c++0x } - -template <class T> - struct integral_constant { - typedef T value_type; - constexpr operator value_type() { return true; } - }; - -static constexpr bool value = integral_constant<bool>() - && true; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-typeid.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-typeid.C deleted file mode 100644 index b523bb38c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-typeid.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options -std=c++0x } - -#include <typeinfo> - -struct A { virtual void f(); }; - -extern constexpr const std::type_info* p1 = &typeid(int); -extern constexpr const std::type_info* p2 = &typeid(A); -// typeid-expression whose operand is of a polymorphic class type -extern constexpr const std::type_info* p3 = &typeid((A())); // { dg-error "" "" { xfail *-*-* } } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union.C deleted file mode 100644 index 3c7a7f38e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union.C +++ /dev/null @@ -1,16 +0,0 @@ -// Test that we don't have to deal with type punning -// DR 1188 says this is ill-formed -// { dg-options -std=c++0x } - -union U -{ - float f; - unsigned char ca[sizeof(float)]; -}; - -constexpr U u = { 1.0 }; -constexpr float f = u.f; -constexpr unsigned char c = u.ca[0]; // { dg-error "U::ca" } - -constexpr double d = 1.0; -constexpr unsigned char c2 = (unsigned char&)d; // { dg-error "char. glvalue" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union2.C deleted file mode 100644 index 0bf2aa7e2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union2.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/51675 -// { dg-options -std=c++0x } - -union foo -{ - int x = 0; - short y; - - constexpr foo() = default; -}; - -union bar -{ - int x; - short y; - - constexpr bar() = default; // { dg-error "constexpr" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union3.C deleted file mode 100644 index bac9cabfe..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union3.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/51675 -// { dg-options -std=c++11 } - -union foo -{ - int x; - short y; - - constexpr foo(): x(0) { } -}; - -constexpr foo f; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union4.C deleted file mode 100644 index a8d6b8d3e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union4.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/54922 -// { dg-do compile { target c++11 } } - -struct nullable_int -{ - bool init_; - union { - unsigned char for_value_init; - int value_; - }; - - constexpr nullable_int() : init_(false), for_value_init() {} -}; - -#define SA(X) static_assert(X,#X) - -constexpr nullable_int n; -SA((n.for_value_init == 0)); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union5.C deleted file mode 100644 index e8e678d3e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-union5.C +++ /dev/null @@ -1,41 +0,0 @@ -// PR c++/54922 -// { dg-options "-std=c++11 -pedantic" } - -#define SA(X) static_assert(X,#X) - -struct A -{ - union { - union { - union { - unsigned char i; - int j; - }; - }; - }; - - constexpr A() : i(42) {} -}; - -constexpr A a; -SA((a.i == 42)); - -struct B -{ - struct { - int h; - struct { - union { - unsigned char i; - int j; - }; - int k; - }; // { dg-warning "anonymous struct" } - }; // { dg-warning "anonymous struct" } - int l; - - constexpr B(): h(1), i(2), k(3), l(4) {} -}; - -constexpr B b; -SA((b.h == 1 && b.i == 2 && b.k == 3 && b.l == 4)); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-using.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-using.C deleted file mode 100644 index fc794e9ab..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-using.C +++ /dev/null @@ -1,27 +0,0 @@ -// Core issue 898 -// { dg-options -std=c++0x } - -namespace N { const int i = 42; } -namespace M { const int j = 42; } - -constexpr int g() { - using namespace N; - using M::j; - static_assert (i == 42, "i == 42"); - return i + j; -} - -template <class T> -constexpr int h() { - using namespace N; - using M::j; - static_assert (i == 42, "i == 42"); - return i + j; -} - -constexpr int i = g(); -constexpr int i2 = h<int>(); - -static_assert (i == 84, "i == 84"); -static_assert (i2 == 84, "i2 == 84"); - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-using2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-using2.C deleted file mode 100644 index 6b282813e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-using2.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/49520 -// { dg-options -std=c++0x } - -namespace x { void foo(); } - -template<typename T> -struct traits -{ - static constexpr bool f() { return true; } - - static constexpr bool g() - { - using x::foo; - return f() && noexcept(foo()); - } -}; - -template struct traits<int>; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value.C deleted file mode 100644 index 85799d90b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options -std=c++0x } - -struct HopefullyLiteral { - HopefullyLiteral() = default; // Should be a constexpr c'tor as of 12.1/6 and 8.4.2/4 -}; - -constexpr HopefullyLiteral var1{}; // OK -constexpr HopefullyLiteral var2 = HopefullyLiteral{}; // #1 -constexpr HopefullyLiteral var3 = HopefullyLiteral(); // #2 -constexpr HopefullyLiteral var4 = HopefullyLiteral(var3); // #3 diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value2.C deleted file mode 100644 index 1b0e28f16..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value2.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options -std=c++0x } - -template<class T> -constexpr T value_init() { return T(); } - -template<class T> -constexpr inline T bar(T x) { return x; } - -union EmptyUnion {}; -union Union1 { int i; }; -union Union3 { double d; int i; char* c; }; - -constexpr auto u1 = value_init<EmptyUnion>(); -constexpr auto u2 = value_init<Union1>(); -constexpr auto u3 = value_init<Union3>(); -constexpr auto u4 = bar(EmptyUnion{}); -constexpr auto u5 = bar(Union1{}); -constexpr auto u6 = bar(Union3{}); -constexpr auto u7 = bar(u1); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value3.C deleted file mode 100644 index 38d89936e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-value3.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/50234 -// { dg-options -std=c++0x } - -#define SA(X) static_assert((X),#X) - -struct A { int i; }; - -constexpr int f(A a) { return a.i; } - -SA(f({}) == 0); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-variadic.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-variadic.C deleted file mode 100644 index 5d0ad0594..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-variadic.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options -std=c++0x } -template<class... T> -constexpr bool variadics(T&&...) { return true; } - -struct IsLiteral {}; - -constexpr bool variadic_var = variadics(0, true, 1.2, IsLiteral{}); // Error, so below - -int main() {} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual.C deleted file mode 100644 index 448ecb1dc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/47067 -// { dg-options -std=c++0x } - -struct X { - virtual void x(); - virtual ~X(); -}; - -struct Y { - virtual void y(); - virtual ~Y(); -}; - -struct Z: X, Y {} z; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual2.C deleted file mode 100644 index 86040a31b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual2.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/54341 -// { dg-do compile { target c++11 } } - -template<typename T> -struct enable_shared_from_this -{ - constexpr enable_shared_from_this(); // { dg-warning "used but never defined" } - -private: - int mem; -}; - -class VTableClass { -public: - virtual void someVirtualMethod() { } -}; - -class SomeClass : public enable_shared_from_this< SomeClass >, public -VTableClass { }; - -SomeClass* createInstance() -{ - return new SomeClass; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual3.C deleted file mode 100644 index de446bcfd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual3.C +++ /dev/null @@ -1,42 +0,0 @@ -// PR c++/54253 -// { dg-do compile { target c++11 } } - -namespace A { - class Base { - int x; - public: - constexpr Base(int x) : x(x) {} - }; - - class Base2 { - public: - virtual void fun() {} - }; - - class Derived : public Base2, public Base { - public: - constexpr Derived() : Base2(), Base(5) {} - }; - - constexpr Derived der; -} - -namespace B { - class Base { - int x; - public: - constexpr Base() : x(5) {} - }; - - class Base2 { - public: - virtual void fun() {} - }; - - class Derived : public Base, public Base2 { - public: - constexpr Derived() {} - }; - - constexpr Derived der; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual4.C deleted file mode 100644 index 32cee9698..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-virtual4.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/56291 -// { dg-options -std=c++11 } - -class Base -{ -public: - constexpr Base() : v(1) {}; - int v; -}; - -class Derived : public Base -{ -public: - constexpr Derived() : Base() {}; - virtual void function(); -}; - -Derived d; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring1.C deleted file mode 100644 index 059977bff..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring1.C +++ /dev/null @@ -1,34 +0,0 @@ -// PR c++/48570 -// { dg-do run } -// { dg-options "-std=c++0x" } - -extern "C" void abort (); -constexpr wchar_t foo (int i) { return L"0123"[i]; } -constexpr char16_t bar (int i) { return u"0123"[i]; } -constexpr char32_t baz (int i) { return U"0123"[i]; } -const wchar_t foo0 = foo (0); -const wchar_t foo1 = foo (1); -const wchar_t foo2 = foo (2); -const wchar_t foo3 = foo (3); -const wchar_t foo4 = foo (4); -const char16_t bar0 = bar (0); -const char16_t bar1 = bar (1); -const char16_t bar2 = bar (2); -const char16_t bar3 = bar (3); -const char16_t bar4 = bar (4); -const char32_t baz0 = baz (0); -const char32_t baz1 = baz (1); -const char32_t baz2 = baz (2); -const char32_t baz3 = baz (3); -const char32_t baz4 = baz (4); - -int -main () -{ - if (foo0 != L'0' || foo1 != L'1' || foo2 != L'2' || foo3 != L'3' || foo4 != L'\0') - abort (); - if (bar0 != u'0' || bar1 != u'1' || bar2 != u'2' || bar3 != u'3' || bar4 != u'\0') - abort (); - if (baz0 != U'0' || baz1 != U'1' || baz2 != U'2' || baz3 != U'3' || baz4 != U'\0') - abort (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring2.C deleted file mode 100644 index 4fc8980ef..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring2.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/48570 -// { dg-do compile } -// { dg-options -std=c++0x } - -constexpr wchar_t c1 = L"hi"[3]; // { dg-error "out of bound" } -constexpr char16_t c2 = u"hi"[3]; // { dg-error "out of bound" } -constexpr char32_t c3 = U"hi"[3]; // { dg-error "out of bound" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc1.C deleted file mode 100644 index ba2e4f4fd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc1.C +++ /dev/null @@ -1,43 +0,0 @@ -// { dg-do compile } -// { dg-options --std=c++0x } - -struct B { - int i; - B (int _i) : i(_i) { } - ~B () { i = 0; } -}; - -struct A : public B { - A () : B(-1) { } - A (int i) : A() { } - A (double b) : A(static_cast<int>(b)) { } - A (double b, double b2) : A(b2) { } - ~A () { } -}; - -void f_A () { A a(2.0, 3.0); } - -struct C { - C () { } - virtual ~C() { } - virtual int f () = 0; -}; - -struct D : public C { - int i; - D (int _i) : C(), i(_i) { } - D () : D(-1) { } - virtual ~D() { } - virtual int f () { } -}; - -void f_D () { C* c = new D(); } - -template <typename T> -struct E { - T t; - E () : E(T()) { } - E (T _t) : t(_t) { } -}; - -void f_E () { E<int> e; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc2.C deleted file mode 100644 index dda0b9fc6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc2.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-do compile } -// { dg-options --std=c++0x } - -struct A { - int i, j; - A () : A(0), j(0) { } // { dg-error "constructor delegation" } - A (int _i) : i(_i) { } -}; - -struct B { - int i, j; - B () : i(0), B(0) { } // { dg-error "constructor delegation" } - B (int _j) : j(_j) { } - -}; - -struct C {}; - -struct D : public C { - D () : C() { } - D (float) : D(), C() { } // { dg-error "constructor delegation" } - D (float, float): C(), D() { } // { dg-error "constructor delegation" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc3.C deleted file mode 100644 index b411c997d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc3.C +++ /dev/null @@ -1,63 +0,0 @@ -// { dg-do compile } -// { dg-options --std=c++0x } - -struct X {}; - -struct B { - int i; - B (int _i) : i(_i) { } - ~B () { i = 0; } -}; - -template <typename T> -struct A : public B { - A () : B(-1) { } - ~A () { } -}; - -template <typename T> -struct A<T*> : public B { - A () : B(-1) { } - A (int i) : A() { } - A (double b) : A(static_cast<int>(b)) { } - A (double b, double b2) : A(b2) { } - ~A () { } -}; - -void f_A () { A<X*> a(2.0, 3.0); } - -struct C { - C () { } - virtual ~C() { } - virtual int f () = 0; -}; - -template <typename T> -struct D : public C { - int i; - D (int _i) : C(), i(_i) { } -}; - -template <> -struct D<X> : public C { - int i; - D (int _i) : C(), i(_i) { } - D () : D(-1) { } - virtual ~D() { } - virtual int f () { } -}; - -void f_D () { D<X>* d = new D<X>(); } - -template <typename T> -struct E { -}; - -template <> -struct E<int> { - int i; - E () : E(0) { } - E (int _i) : i(_i) { } -}; - -void f_E () { E<int> e; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc4.C deleted file mode 100644 index 634b5498d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc4.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-do compile } -// { dg-options "--std=c++98" } - -struct X { - X() {} - X(int) : X() {} // { dg-warning "delegating constructors" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc5.C deleted file mode 100644 index 0052b3211..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc5.C +++ /dev/null @@ -1,28 +0,0 @@ -// { dg-do run } -// { dg-options "--std=c++0x" } - -#include <cassert> - -int count = 0; -struct VB -{ - VB() {++count;} -}; - -struct B : virtual VB -{ - B() : B(42) {} - B(int) {} -}; - -struct D : B -{ - D() {} - D(int) : D() {} -}; - -int main() -{ - D d{42}; - assert(count == 1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc6.C deleted file mode 100644 index b16c0b47b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dc6.C +++ /dev/null @@ -1,40 +0,0 @@ -// { dg-do run { target c++11 } } - -int a_ct; - -struct A -{ - A(int i): i(i) { ++a_ct; } - A(const A& a): i(a.i) { ++a_ct; } - ~A() { --a_ct; } - int i; -}; - -struct V -{ - V() { } -}; - -struct B: virtual V -{ - A a; - B(A a): a(a) { } - B(int i): B(A(i)) { } -}; - -struct C: B -{ - C(int i): B(i) { } -}; - -int main() -{ - { - B b(42); - C c(24); - if (b.a.i != 42 - ||c.a.i != 24) - __builtin_abort (); - } - return a_ct; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-1212.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-1212.C deleted file mode 100644 index 38393d3b8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-1212.C +++ /dev/null @@ -1,11 +0,0 @@ -// Core 1212 -// { dg-options -std=c++0x } - -template <class T, class U> struct assert_same_type; -template <class T> struct assert_same_type<T,T> {}; - -int main() -{ - int i; - assert_same_type<int&&,decltype(static_cast<int&&>(i))>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-33837.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-33837.C deleted file mode 100644 index 2c263dd0a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-33837.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } -// PR c++/33837 -void foo() -{ - __decltype (A::foo()); // { dg-error "was not declared|expected" } - __decltype (B); // { dg-error "was not declared" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-33838.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-33838.C deleted file mode 100644 index 260a0d1cf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-33838.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options -std=c++0x } -// PR c++/33838 -template<typename T> struct A -{ - __decltype (T* foo()); // { dg-error "expected|no arguments|accept" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C deleted file mode 100644 index 3b8455bc1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/38655 -// { dg-options "" } - -__decltype(0r)* p = 1; // { dg-error "not supported|invalid" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-54581.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-54581.C deleted file mode 100644 index 5747e5c7e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-54581.C +++ /dev/null @@ -1,28 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-std=gnu++11 -Wall" } */ - -typedef float v4f __attribute__((vector_size(4*sizeof(float)))); - -template <class T> void eat (T&&) {} - -void test1 () -{ - v4f x = {0,1,2,3}; - typedef decltype (x < x) v4i; - v4i y = {4,5,6,7}; // v4i is not opaque - eat (y); -} - -template<class V> -void test2 () -{ - V x = {0,1,2,3}; - typedef decltype (x < x) v4i; - v4i y = {4,5,6,7}; // v4i is not opaque - eat (y); -} - -int main(){ - test1(); - test2<v4f>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-call1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-call1.C deleted file mode 100644 index 2616bb090..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-call1.C +++ /dev/null @@ -1,32 +0,0 @@ -// PR c++/52748 -// N3276 -// { dg-do compile { target c++11 } } - -struct A; // { dg-error "forward declaration" } -A f(); - -decltype(f()) g1(); // OK -decltype(((f()))) g2b(); // OK -decltype(42,f()) g3(); // OK -decltype(42,45,f()) g3b(); // OK -decltype(42,45,(f())) g3c(); // OK -decltype(42,((45,(f())))) g3c(); // OK - -decltype(f(),42) g4(); // { dg-error "" } -decltype(45,f(),42) g4b(); // { dg-error "" } - -class B -{ - ~B(); // { dg-error "private" } -public: - int i; - void operator[](int); -}; -B h(); - -void i(const B&); - -decltype(h()) g5a(); // OK -decltype(h().i) g5(); // { dg-error "" } -decltype(h()[0]) g6(); // { dg-error "" } -decltype(i(h())) g7(); // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-call3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-call3.C deleted file mode 100644 index 27797a2fa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-call3.C +++ /dev/null @@ -1,132 +0,0 @@ -// Testcase for N3276 and operator overloading -// { dg-require-effective-target c++11 } - -struct A; -struct B { - A operator()(int); - A operator[](int); - A operator=(int); - A operator+=(int); - A operator-=(int); - A operator*=(int); - A operator/=(int); - A operator^=(int); - A operator&=(int); - A operator|=(int); - A operator<<=(int); - A operator>>=(int); -}; - -A operator-(B); -A operator+(B); -A operator*(B); -A operator&(B); -A operator!(B); -A operator~(B); -A operator++(B); -A operator--(B); - -A operator+(B,B); -A operator-(B,B); -A operator*(B,B); -A operator/(B,B); -A operator%(B,B); -A operator^(B,B); -A operator&(B,B); -A operator|(B,B); -A operator<(B,B); -A operator>(B,B); -A operator,(B,B); -A operator<<(B,B); -A operator>>(B,B); -A operator==(B,B); -A operator->*(B,B); - -#define TRY(E) static_cast<decltype(E)*>(0) - -template <class B> -void f() -{ - B b; - TRY(b(0)); - TRY(b[0]); - TRY(b=0); - TRY(b+=0); - TRY(b-=0); - TRY(b*=0); - TRY(b/=0); - TRY(b^=0); - TRY(b&=0); - TRY(b|=0); - TRY(b<<=0); - TRY(b>>=0); - - TRY(-b); - TRY(+b); - TRY(*b); - TRY(&b); - TRY(!b); - TRY(~b); - TRY(++b); - TRY(--b); - - TRY(b+b); - TRY(b-b); - TRY(b*b); - TRY(b/b); - TRY(b%b); - TRY(b^b); - TRY(b&b); - TRY(b|b); - TRY(b>b); - TRY(b<b); - TRY((b,b)); - TRY(b<<b); - TRY(b>>b); - TRY(b==b); - TRY(b->*b); -} - -int main() -{ - B b; - TRY(b(0)); - TRY(b[0]); - TRY(b=0); - TRY(b+=0); - TRY(b-=0); - TRY(b*=0); - TRY(b/=0); - TRY(b^=0); - TRY(b&=0); - TRY(b|=0); - TRY(b<<=0); - TRY(b>>=0); - - TRY(-b); - TRY(+b); - TRY(*b); - TRY(&b); - TRY(!b); - TRY(~b); - TRY(++b); - TRY(--b); - - TRY(b+b); - TRY(b-b); - TRY(b*b); - TRY(b/b); - TRY(b%b); - TRY(b^b); - TRY(b&b); - TRY(b|b); - TRY(b>b); - TRY(b<b); - TRY((b,b)); - TRY(b<<b); - TRY(b>>b); - TRY(b==b); - TRY(b->*b); - - f<B>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-refbug.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-refbug.C deleted file mode 100644 index 8e3c82407..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype-refbug.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options "-std=c++0x" } -// PR c++/33045 -int && f (); - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -static_assert(is_same<decltype(f()), int&&>::value, "decltype of rvalue reference"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype1.C deleted file mode 100644 index d1288e07d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype1.C +++ /dev/null @@ -1,28 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -const int& foo(); -int i; -struct A { double x; }; -const A* a = new A(); - -static_assert(is_same<decltype(foo()), const int&>::value, - "type should be const int&"); -static_assert(is_same<decltype(i), int>::value, - "type should be int"); -static_assert(is_same<decltype(a->x), double>::value, - "type should be double"); -static_assert(is_same<decltype((a->x)), const double&>::value, - "type should be const double&"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype10.C deleted file mode 100644 index 6c488998c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype10.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/34271 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<int> struct A -{ - static int i; -}; - -template<int N> int A<N>::i(decltype (A::i; // { dg-error "expected primary-expression before" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype11.C deleted file mode 100644 index ac32d349a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype11.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/35316 -// { dg-options "-std=c++0x" } - -template<int> struct A -{ - int i : 2; - - void foo() - { - decltype(i) j; - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype12.C deleted file mode 100644 index 77c794bcf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype12.C +++ /dev/null @@ -1,38 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -int&& f(const int&) {} -int&& (*fp)(const int&) = f; -int&& (&fr)(const int&) = f; - -struct X { int&& f(const int&); }; - -int&& (X::*mfp)(const int&) = &X::f; - -void g(X& xr, X* xp) -{ - int i; - static_assert(is_same<decltype(f(i)), int&&>::value, "direct call"); - static_assert(is_same<decltype(fp(i)), int&&>::value, "pointer"); - static_assert(is_same<decltype((*fp)(i)), int&&>::value, - "dereferenced pointer"); - static_assert(is_same<decltype(fr(i)), int&&>::value, - "reference"); - static_assert(is_same<decltype(xr.f(i)), int&&>::value, - "member function call"); - static_assert(is_same<decltype((xr.*mfp)(i)), int&&>::value, - "member function pointer with .*"); - static_assert(is_same<decltype((xp->*mfp)(i)), int&&>::value, - "member function pointer with ->*"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype13.C deleted file mode 100644 index 8e6c6d2bf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype13.C +++ /dev/null @@ -1,38 +0,0 @@ -// PR c++/34269 -// { dg-do compile } - -void -f1 () -{ - __decltype; // { dg-error "expected" } -} - -void -f2 () -{ - __decltype (; // { dg-error "expected" } -} - -void -f3 () -{ - __decltype (); // { dg-error "expected" } -} - -void -f4 () -{ - __typeof__; // { dg-error "expected" } -} - -void -f5 () -{ - __typeof__ (; // { dg-error "expected" } -} - -void -f6 () -{ - __typeof__ (); // { dg-error "expected" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype14.C deleted file mode 100644 index 9484173cd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype14.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/37540 - -struct A -{ - int g() {return 0;} -}; - -template <typename T_> -void f(A a) -{ - __decltype(a.g()) i; -} - -int main() -{ - f<int>(A()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype15.C deleted file mode 100644 index 5c2d445de..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype15.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/38640 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<int N> void foo (decltype (N)); -template<long int N> void foo (decltype (N)); - -void -bar (void) -{ - foo<5> (6); - foo<5L> (6L); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype16.C deleted file mode 100644 index 2002458b8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype16.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/39070 -// { dg-options "-std=c++0x" } - -template<typename X> struct junk { - template<typename Z> static Z y(); - template<typename Y> static int test(...); - template<typename Y> static char test(decltype(y<Y>())*); - static int const value=sizeof(test<X>(0)); -}; -typedef char type[junk<int>::value==sizeof(char) ? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype17.C deleted file mode 100644 index 3c98105fc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype17.C +++ /dev/null @@ -1,29 +0,0 @@ -// PR c++/36628 -// { dg-options "-std=c++0x" } -// { dg-do run } - -#include <typeinfo> -#include <string.h> - -int rvalue(); -int& lvalueref(); -int&& rvalueref(); - -decltype(true ? rvalue() : rvalue()) f() -{} - -decltype(true ? lvalueref() : lvalueref()) g() -{} - -decltype(true ? rvalueref() : rvalueref()) h() -{} - -int main() -{ - if (strcmp (typeid(f).name(), "FivE") != 0) - return 1; - if (strcmp (typeid(g).name(), "FRivE") != 0) - return 2; - if (strcmp (typeid(h).name(), "FivE") != 0) - return 3; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype18.C deleted file mode 100644 index 0d44586e9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype18.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/37875 -// { dg-options "-std=c++0x" } - -template <typename> struct X {}; -X<decltype(1 > 2)> x; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype19.C deleted file mode 100644 index 41d602f34..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype19.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/42013 - -template<typename _Tp> - _Tp -__attribute ((const)) declval(); - -template<typename _Tp, typename _Up> - struct common_type - { - typedef __decltype(true ? declval<_Tp>() : declval<_Up>()) typet; - typedef __decltype(false ? declval<_Tp>() : declval<_Up>()) typef; - }; - -template<typename, typename> struct is_same; - -template<typename _Tp> struct is_same<_Tp, _Tp> { typedef _Tp type; }; - -void f() -{ - typedef common_type<int, const int>::typet typet; - typedef common_type<int, const int>::typef typef; - - typedef is_same<typet, typef>::type type; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype2.C deleted file mode 100644 index e0c590030..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype2.C +++ /dev/null @@ -1,59 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -#define CHECK_DECLTYPE(DECLTYPE,RESULT) \ - static_assert(is_same< DECLTYPE , RESULT >::value, #RESULT) - -struct A {}; - -int a; -int& b = a; -const int& c = a; -const int d = 5; -const A e = A(); -CHECK_DECLTYPE(decltype(a), int); -CHECK_DECLTYPE(decltype(b), int&); -CHECK_DECLTYPE(decltype(c), const int&); -CHECK_DECLTYPE(decltype(d), const int); -CHECK_DECLTYPE(decltype(e), const A); - -CHECK_DECLTYPE(decltype(a), int); -CHECK_DECLTYPE(decltype((a)), int&); - -void foo_check(int a, int& b, float& c, int* d) -{ - CHECK_DECLTYPE(decltype(a), int); - CHECK_DECLTYPE(decltype(b), int&); - CHECK_DECLTYPE(decltype(c), float&); - CHECK_DECLTYPE(decltype(d), int*); -} - -int foo(char); -int bar(char); -int bar(int); -CHECK_DECLTYPE(decltype(foo), int(char)); - -decltype(bar) z; // { dg-error "overload" "overload" } -// { dg-error "invalid type" "invalid" { target *-*-* } 48 } - -CHECK_DECLTYPE(decltype(&foo), int(*)(char)); -CHECK_DECLTYPE(decltype(*&foo), int(&)(char)); - -void array_types() -{ - int a[10]; - CHECK_DECLTYPE(decltype(a), int[10]); -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype20.C deleted file mode 100644 index 3155cdcf8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype20.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/42277 -// { dg-options -std=c++0x } - -struct S { int s; }; -template <int N> -void foo () -{ - S s; - decltype (s.s) i; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype21.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype21.C deleted file mode 100644 index 733725626..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype21.C +++ /dev/null @@ -1,34 +0,0 @@ -// PR c++/6709 (DR 743) -// PR c++/42603 (DR 950) -// { dg-options -std=c++0x } - -template <class T> -T make(); - -struct p { typedef int t; }; -struct c : decltype(make<p>()) {}; - -decltype(make<p>())::t t; - -// PR c++/49823 - -template < typename T > -auto f( const T &x ) - -> typename decltype( x )::type; // ICE on here - -template < typename T > -typename decltype( T{} )::type // ICE on here -f( T ); - -template < typename T > -void f( T x ) -{ typename decltype( x )::type t; } // ICE on here - -// Negative tests - -int f(); -decltype(f())::t t2; // { dg-error "not a class" } - -struct D: decltype(f()) { }; // { dg-error "not a class" } - -// { dg-prune-output "expected initializer" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype22.C deleted file mode 100644 index 74811cfe7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype22.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/42761 -// { dg-options "-std=c++0x" } - -template<typename _Tp> _Tp* fn(); - -template <class T> struct A -{ - template <class U, - class S = decltype(fn<T>())> - struct B { }; -}; - -A<int> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype23.C deleted file mode 100644 index 78eb89d8e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype23.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } - -int x, &&y = static_cast<int &&>(x); -typedef decltype((y)) myInt; // `y' is a parenthesized id-expression of type int that is an lvalue -typedef int &myInt; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype24.C deleted file mode 100644 index 16d0736d6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype24.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/47068 -// { dg-options -std=c++0x } - -template <class T> struct broken { - int member; - typedef decltype(~ member) gcc_crashes_here; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype25.C deleted file mode 100644 index c9559f151..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype25.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/47851 -// { dg-options -std=c++0x } - -struct Type { - void display_type(); - void display_type() const { } -}; - -typedef Type const ConstType; - -struct ConvertibleToType { - operator Type&() { return *reinterpret_cast<Type*>(this); } -}; - -int main () -{ - // Both lines should call the const variant. - (true ? ConvertibleToType() : ConstType()).display_type(); - decltype((true ? ConvertibleToType() : ConstType()))().display_type(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype26.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype26.C deleted file mode 100644 index a81d41155..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype26.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options -std=c++0x } - -struct A { }; - -template <class T> -decltype(f(T())) f(T t) // { dg-error "depth" } -{ - return f(t); -} - -int main() -{ - f(A()); // { dg-error "no match" } -} - -// { dg-prune-output "note" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype27.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype27.C deleted file mode 100644 index cb962ada5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype27.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/48617 -// { dg-options -std=c++0x } - -template<class T, decltype(T())> // # -struct A {}; - -A<int, 0> a; - -int main() {} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype28.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype28.C deleted file mode 100644 index 00457357b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype28.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/44175 -// { dg-options -std=c++0x } - -template <bool, class T> struct enable_if { }; -template <class T> struct enable_if <true, T> { typedef T type; }; - -template <class F, int N> -void ft (F f, typename enable_if<N!=0, int>::type) {} - -template< class F, int N > -decltype(ft<F, N-1> (F(), 0)) // { dg-error "depth" } -ft (F f, typename enable_if<N==0, int>::type) {} - -int main() { - ft<struct a*, 2> (0, 0); // { dg-message "from here" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype29.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype29.C deleted file mode 100644 index a64bb65a4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype29.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/44175 -// { dg-options -std=c++0x } - -template <bool, class T> struct enable_if { }; -template <class T> struct enable_if <true, T> { typedef T type; }; - -template <int x> -typename enable_if<x==0,int>::type -ft() {} - -template<class F, int N> -decltype (ft<F> (F())) // { dg-error "depth" } -ft() {} - -int main() { - ft<struct a*, 0>(); // { dg-error "no match|wrong number" } -} - -// { dg-prune-output "note" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype3.C deleted file mode 100644 index b44dd17c8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype3.C +++ /dev/null @@ -1,72 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -#define CHECK_DECLTYPE(DECLTYPE,RESULT) \ - static_assert(is_same< DECLTYPE , RESULT >::value, #DECLTYPE " should be " #RESULT) - -class A { -public: - int a; - int& b; - static int c; - - A(int& b) : b(b) { } - - void foo() { - CHECK_DECLTYPE(decltype(a), int); - CHECK_DECLTYPE(decltype(this->a), int); - CHECK_DECLTYPE(decltype((*this).a), int); - CHECK_DECLTYPE(decltype(b), int&); - CHECK_DECLTYPE(decltype(c), int); - } - void bar() const { - CHECK_DECLTYPE(decltype(a), int); - CHECK_DECLTYPE(decltype(b), int&); - CHECK_DECLTYPE(decltype(c), int); - } -}; - -int b; -A aa(b); -const A& caa = aa; -CHECK_DECLTYPE(decltype(aa.a), int); -CHECK_DECLTYPE(decltype(aa.b), int&); -CHECK_DECLTYPE(decltype(caa.a), int); - -class B { -public: - int a; - enum B_enum { b }; - decltype(a) c; - decltype(a) foo() { } - decltype(b) enums_are_in_scope() { return b; } // ok -}; - -CHECK_DECLTYPE(decltype(aa.*&A::a), int&); -decltype(aa.*&A::b) zz; // { dg-error "cannot create pointer to reference member" "cannot" } -// { dg-error "invalid type" "invalid type" { target *-*-* } 58 } -CHECK_DECLTYPE(decltype(caa.*&A::a), const int&); - -class X { - void foo() { - CHECK_DECLTYPE(decltype(this), X*); - CHECK_DECLTYPE(decltype(*this), X&); - } - void bar() const { - CHECK_DECLTYPE(decltype(this), const X*); - CHECK_DECLTYPE(decltype(*this), const X&); - } -}; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype30.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype30.C deleted file mode 100644 index b23c9a94d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype30.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/49369 -// { dg-options -std=c++0x } - -template <class,class> struct assert_same; -template <class T> struct assert_same<T,T> {}; - -struct B { - int member; -}; - -struct C: B { - void method() const; -}; - -void C::method() const { - assert_same<decltype((B::member)), const int&> a; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype31.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype31.C deleted file mode 100644 index b9817eb9e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype31.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/49921 -// { dg-options -std=c++0x } - -struct Local -{ - void f(); -}; - -Local *l; -void (Local::*ptr)(); -decltype((l->*ptr)) i; // { dg-error "member function" } - -// { dg-prune-output "invalid type in declaration" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype32.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype32.C deleted file mode 100644 index c5f3a55c6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype32.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/50075 -// { dg-options "-std=c++0x -ftemplate-depth=10" } - -template <typename T> -auto make_array(const T& il) -> -decltype(make_array(il)) // { dg-error "not declared|no matching|exceeds" } -{ } - -int main() -{ - int z = make_array(1); // { dg-error "no matching" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype33.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype33.C deleted file mode 100644 index d022d1664..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype33.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/50084 -// { dg-options "-std=c++0x -fno-inline" } - -template<typename> struct remove_reference; -template<typename T> struct remove_reference<T&> { typedef T type; }; - -template <class T> void f(T) { } - -void g() -{ - struct { } * v = 0; - - typedef remove_reference<decltype(*v)>::type at; - - // The typedef should't assign the name "at" to the struct. - // { dg-final { scan-assembler "_Z1fIZ1gvEUt_EvT_" } } - f(at()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype34.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype34.C deleted file mode 100644 index fbd15c279..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype34.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/50870 -// { dg-options "-std=gnu++0x" } - -struct impl -{ - template <class T> static T create(); -}; - -template<class T, class U, - class = decltype(impl::create<T>()->impl::create<U>())> -struct tester{}; - -tester<impl*, int> ti; - -template<class T, class U, - class = decltype(impl::create<T>()->impl::create<U>())> -int test() { return 0; } - -int i = test<impl*, int>(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype35.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype35.C deleted file mode 100644 index d1fd47638..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype35.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/50870 -// { dg-options -std=c++0x } - -template <class V> - struct impl - { - template <class T> static T create(); - }; - -template <class T, class U, class V, class - = decltype(impl<V>::template create<T>() - -> impl<V>::template create<U>())> -struct tester { }; - -tester<impl<float>*, int, float> ti; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype36.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype36.C deleted file mode 100644 index f3dfed992..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype36.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/51265 -// { dg-options -std=c++0x } - -struct Funny -{ - int print(int); -}; - -template<typename X> -void c(); - -template<typename X, X ff> -void xx() -{ - c<decltype(ff)>(); -} - -int main() -{ - xx<int(Funny::*)(int), &Funny::print>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype37.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype37.C deleted file mode 100644 index c885e9a07..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype37.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/53651 -// { dg-do compile { target c++11 } } - -template<typename> struct wrap { void bar(); }; - -template<typename T> auto foo(T* t) -> wrap<T>* { return 0; } - -template<typename T> -struct holder : decltype(*foo((T*)0)) // { dg-error "class type" } -{ - using decltype(*foo((T*)0))::bar; // { dg-error "is not a base" } -}; - -holder<int> h; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype38.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype38.C deleted file mode 100644 index 97ebb33a0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype38.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/53498 -// { dg-do compile { target c++11 } } - -template<typename... Args> -struct B -{ - template<typename U> - static - void b(const U& u, const Args&... args, - decltype(u.f(args...)) dummy) - { - } -}; - -int main() { - B<int> b; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype39.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype39.C deleted file mode 100644 index 4676d2de9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype39.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/53788 -// { dg-do compile { target c++11 } } - -struct t { static const bool value = true; }; -struct f { static const bool value = false; }; - -template<typename T> -struct has_static { - template<typename X> - static t check(X*, decltype(T::fun())* = 0); // { dg-error "without object" } - static f check(...); - - typedef decltype(check((T*)(0))) ret; - static const bool value = ret::value; -}; - -struct test { int fun() { return 0; } }; - -bool b = has_static<test>::value; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype4.C deleted file mode 100644 index cd715cb28..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype4.C +++ /dev/null @@ -1,83 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -#define CHECK_DECLTYPE(DECLTYPE,RESULT) \ - static_assert(is_same< DECLTYPE , RESULT >::value, #DECLTYPE " should be " #RESULT) - -struct A { - int x; - int& y; - int foo(char); - int& bar() const; -}; - -CHECK_DECLTYPE(decltype(&A::x), int A::*); -decltype(&A::y) Ay; // { dg-error "cannot create pointer to reference member|invalid type" } -CHECK_DECLTYPE(decltype(&A::foo), int (A::*) (char)); -CHECK_DECLTYPE(decltype(&A::bar), int& (A::*) () const); - -CHECK_DECLTYPE(decltype("decltype"), const char(&)[9]); -CHECK_DECLTYPE(decltype(1), int); - -int an_int = 5; -int& i = an_int; -const int j = an_int; - -CHECK_DECLTYPE(decltype(i)&, int&); -CHECK_DECLTYPE(const decltype(j), const int); - -int foo(); -CHECK_DECLTYPE(decltype(foo()), int); -float& bar(int); -CHECK_DECLTYPE(decltype (bar(1)), float&); -const A bar(); -CHECK_DECLTYPE(decltype (bar()), const A); -const A& bar2(); -CHECK_DECLTYPE(decltype (bar2()), const A&); - -void wibble() { - CHECK_DECLTYPE(decltype(1+2), int); - int* p; - CHECK_DECLTYPE(decltype(*p), int&); - int a[10]; - CHECK_DECLTYPE(decltype(a[3]), int&); - int i; int& j = i; - CHECK_DECLTYPE(decltype (i = 5), int&); - CHECK_DECLTYPE(decltype (j = 5), int&); - - CHECK_DECLTYPE(decltype (++i), int&); - CHECK_DECLTYPE(decltype (i++), int); -} - -struct B { - B () : bit(), cbit() {} - int bit : 2; - const int cbit : 3; - - void foo() - { - CHECK_DECLTYPE(decltype(bit), int); - CHECK_DECLTYPE(decltype((bit)), int&); - CHECK_DECLTYPE(decltype(cbit), const int); - CHECK_DECLTYPE(decltype((cbit)), const int&); - } -}; - -B b; -const B& bc = b; -CHECK_DECLTYPE(decltype(b.bit), int); -CHECK_DECLTYPE(decltype(bc.bit), int); -CHECK_DECLTYPE(decltype((b.bit)), int&); -CHECK_DECLTYPE(decltype((bc.bit)), const int&); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype40.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype40.C deleted file mode 100644 index 7933c95b3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype40.C +++ /dev/null @@ -1,101 +0,0 @@ -// PR c++/51222 -// { dg-options -std=c++11 } - -template<class T> -struct add_rref { - typedef T&& type; -}; - -template<> -struct add_rref<void> { - typedef void type; -}; - -template<class T> -typename add_rref<T>::type declval(); - -template<class T, class U, class = - decltype(::delete ::new T(declval<U>())) -> -auto f(int) -> char; - -template<class, class> -auto f(...) -> char(&)[2]; - -template<class T, class = - decltype(::delete ::new T()) -> -auto g(int) -> char; - -template<class> -auto g(...) -> char(&)[2]; - -template<class T, class U> -auto f2(int) -> decltype(::delete ::new T(declval<U>()), char()); - -template<class, class> -auto f2(...) -> char(&)[2]; - -template<class T> -auto g2(int) -> decltype(::delete ::new T(), char()); - -template<class> -auto g2(...) -> char(&)[2]; - -struct C { }; - -struct A { - virtual ~A() = 0; -}; - -struct D1 { - D1() = delete; -}; - -struct D2 { - ~D2() = delete; -}; - -static_assert(sizeof(g<void>(0)) == 2, "Ouch"); -static_assert(sizeof(g<void()>(0)) == 2, "Ouch"); -static_assert(sizeof(g<void() const>(0)) == 2, "Ouch"); -static_assert(sizeof(g<A>(0)) == 2, "Ouch"); -static_assert(sizeof(g<D1>(0)) == 2, "Ouch"); -static_assert(sizeof(g<D2>(0)) == 2, "Ouch"); -static_assert(sizeof(g<int&>(0)) == 2, "Ouch"); -static_assert(sizeof(g<int&&>(0)) == 2, "Ouch"); -static_assert(sizeof(g<void(&)()>(0)) == 2, "Ouch"); -static_assert(sizeof(g<void(&&)()>(0)) == 2, "Ouch"); -static_assert(sizeof(f<void, void>(0)) == 2, "Ouch"); -static_assert(sizeof(f<void(), void()>(0)) == 2, "Ouch"); -static_assert(sizeof(f<void() const, void() const>(0)) == 2, "Ouch"); -static_assert(sizeof(f<int, void>(0)) == 2, "Ouch"); -static_assert(sizeof(f<void, int>(0)) == 2, "Ouch"); -static_assert(sizeof(f<C, void>(0)) == 2, "Ouch"); -static_assert(sizeof(f<C, int>(0)) == 2, "Ouch"); -static_assert(sizeof(f<int&, int&>(0)) == 2, "Ouch"); -static_assert(sizeof(f<int&&, int&&>(0)) == 2, "Ouch"); -static_assert(sizeof(f<void(&)(), void(&)()>(0)) == 2, "Ouch"); -static_assert(sizeof(f<void(&&)(), void(&&)()>(0)) == 2, "Ouch"); - -static_assert(sizeof(g2<void>(0)) == 2, "Ouch"); -static_assert(sizeof(g2<void()>(0)) == 2, "Ouch"); -static_assert(sizeof(g2<void() const>(0)) == 2, "Ouch"); -static_assert(sizeof(g2<A>(0)) == 2, "Ouch"); -static_assert(sizeof(g2<D1>(0)) == 2, "Ouch"); -static_assert(sizeof(g2<D2>(0)) == 2, "Ouch"); -static_assert(sizeof(g2<int&>(0)) == 2, "Ouch"); -static_assert(sizeof(g2<int&&>(0)) == 2, "Ouch"); -static_assert(sizeof(g2<void(&)()>(0)) == 2, "Ouch"); -static_assert(sizeof(g2<void(&&)()>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<void, void>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<void(), void()>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<void() const, void() const>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<int, void>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<void, int>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<C, void>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<C, int>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<int&, int&>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<int&&, int&&>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<void(&)(), void(&)()>(0)) == 2, "Ouch"); -static_assert(sizeof(f2<void(&&)(), void(&&)()>(0)) == 2, "Ouch"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype41.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype41.C deleted file mode 100644 index 1439e15c0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype41.C +++ /dev/null @@ -1,43 +0,0 @@ -// Core 1273 -// { dg-do compile { target c++11 } } - -template <class T> struct C; -template <class T> struct D; - -class A -{ - int i; - static int j; - friend struct C<int>; - friend struct D<int>; -} a; - -class B -{ - int i; - static int j; - friend struct C<float>; - friend struct D<float>; -} b; - -template <class T> -struct C -{ - template <class U> decltype (a.i) f() { } // #1 - template <class U> decltype (b.i) f() { } // #2 -}; - -template <class T> -struct D -{ - template <class U> decltype (A::j) f() { } // #1 - template <class U> decltype (B::j) f() { } // #2 -}; - -int main() -{ - C<int>().f<int>(); // calls #1 - C<float>().f<float>(); // calls #2 - D<int>().f<int>(); // calls #1 - D<float>().f<float>(); // calls #2 -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype42.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype42.C deleted file mode 100644 index 6c1aa4364..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype42.C +++ /dev/null @@ -1,31 +0,0 @@ -// PR c++/50545 -// { dg-do compile { target c++11 } } - -template< class T > -T&& declval(); - -// #1 -template< class T > -auto f( int ) - -> decltype( int{ declval<T>() } ); - -// #2 -template< class > -void f( ... ); - - -#define STATIC_ASSERT( ... ) static_assert( __VA_ARGS__, #__VA_ARGS__ ) - -template< class T, class U > -struct is_same { - static constexpr bool value = false; -}; - -template< class T > -struct is_same<T, T> { - static constexpr bool value = true; -}; - - -STATIC_ASSERT( is_same< decltype( f<int>(0) ), int >::value ); // OK; f<int>(0) calls #1. -STATIC_ASSERT( is_same< decltype( f<int*>(0) ), void >::value ); // static assertion fails; f<int*>(0) should call #2, because int{ (int*)0 } is ill-formed, but calls #1. diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype43.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype43.C deleted file mode 100644 index 4df95a104..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype43.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/53763 -// { dg-do compile { target c++11 } } - -template<typename TYPE> -struct A -{ - static int a(TYPE value) - { - return value; - } -}; - -template<typename... ARGS> -struct B -{ - static int b(ARGS...) - { - return 0; - } -}; - -int main() -{ - int x = B<decltype(A<int>::a(1))>::b(A<int>::a(1)); - int y = B<decltype(A ::a(2))>::b(A<int>::a(2)); // { dg-error "template argument" } - return x + y; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype44.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype44.C deleted file mode 100644 index 2b2e62213..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype44.C +++ /dev/null @@ -1,44 +0,0 @@ -// PR c++/53307 -// { dg-do compile { target c++11 } } - -template <class...Ts> struct tuple{}; - -struct funct -{ - template <class T, class...argTs> - T operator()(T arg1, argTs...) - { - return arg1; - } -}; - -template <class...>class test; - -template < template <class...> class tp, - class...arg1Ts, - class...arg2Ts> -class test<tp<arg1Ts...>, tp<arg2Ts...>> -{ - public: - template <class func> - auto test_pass(func fun, arg2Ts...arg2s) - -> decltype(fun(arg2s...)) - { - return fun(arg2s...); - } - - template <class func, class...arg3Ts> - auto testbug(func fun, arg2Ts...arg2s, arg3Ts...arg3s) - -> decltype(fun(arg2s..., arg3s...)) - { - return fun(arg2s..., arg3s...); - } -}; - -int main() -{ - test<tuple<>, tuple<char, int>> t; - t.test_pass (funct(), 'a', 2); - t.testbug (funct(), 'a', 2, "fine"); - t.testbug (funct(), 'a', 2); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype45.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype45.C deleted file mode 100644 index f768d8554..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype45.C +++ /dev/null @@ -1,40 +0,0 @@ -// PR c++/51878 -// { dg-do compile { target c++11 } } - -template<class F, class... T> -auto indirect_call(F f, T... t) -> decltype(f(t...)) -{ - return f(t...); -} - -template<class F, class T> -struct VariadicBind -{ - F f; - T t; - - template<class... A> - auto operator()(A... a) -> decltype(indirect_call(f, t, a...)) - { - return indirect_call(f, t, a...); - } -}; - -template<class F> -void apply(F f) -{ - f(); -} - -template<class F, class V1, class... V> -void apply(F f, V1 v1, V... v) -{ - apply(VariadicBind<F, int>{f, v1}, v...); -} - -void func(int, int) { } - -int main() -{ - apply(func, 0, 0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype46.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype46.C deleted file mode 100644 index f18354dfa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype46.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/55558 -// { dg-do compile { target c++11 } } - -struct A -{ - static int member; -}; - -template<typename T> void foobar () -{ - typedef decltype (A::member) myType; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype47.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype47.C deleted file mode 100644 index 8e2abaa67..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype47.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/55564 -// { dg-options -std=c++11 } - -template <typename T, decltype(sizeof(T)) N> -auto array_size(T(&)[N]) -> decltype(N) { return N; } - -int main() { - int simple[4] = {}; - int result = array_size(simple); - - return result; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype48.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype48.C deleted file mode 100644 index 29ce8157a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype48.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/56059 -// { dg-options -std=c++11 } - -typedef int Int; -template<typename T> struct baz { }; -template<typename T> T bar(); - -template<typename T, typename ... U> -baz<decltype(bar<Int>(bar<U>() ...))> // { dg-error "no match" } -foo(); - -int main() -{ - foo<int, int>(); // { dg-error "no match" } - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype49.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype49.C deleted file mode 100644 index c3174982f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype49.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/45282 -// { dg-require-effective-target c++11 } - -struct A { int i; }; -int A::*ipm = &A::i; - -template <class T, class U> class assert_same_type; -template <class T> class assert_same_type<T,T> { }; - -assert_same_type<decltype(A().*ipm),int> x2; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype5.C deleted file mode 100644 index 139153987..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype5.C +++ /dev/null @@ -1,38 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -#define CHECK_DECLTYPE(DECLTYPE,RESULT) \ - static_assert(is_same< DECLTYPE , RESULT >::value, #RESULT) - -template<typename F> F create_a(); - -template<typename F, typename T1> -decltype(create_a<F&>()(create_a<const T1&>())) forward(F f, const T1& a1) -{ - return f(a1); -} - -struct identity { - template<typename T> - const T& operator()(const T& x) { return x; } -}; - - -identity id; -int i; -float f; - -CHECK_DECLTYPE(decltype(forward(id, i)), const int&); -CHECK_DECLTYPE(decltype(forward(id, f)), const float&); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype52.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype52.C deleted file mode 100644 index e6b5a4caf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype52.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/56450 -// { dg-do compile { target c++11 } } - -template<typename T> -T&& declval(); - -template<typename, typename> -struct is_same -{ static constexpr bool value = false; }; - -template<typename T> -struct is_same<T, T> -{ static constexpr bool value = true; }; - -struct A { static const int dummy = 0; }; - -static_assert(is_same<decltype(declval<A>().dummy), const int>::value, ""); -static_assert(!is_same<decltype(declval<A>().dummy), const int&>::value, ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype53.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype53.C deleted file mode 100644 index 4580e97b7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype53.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/57092 -// { dg-do compile { target c++11 } } - -template <void (*F)(int)> -class B { - decltype(F) v; -}; - -void foo(int) {} - -B<foo> o; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype6.C deleted file mode 100644 index 7aa8e1505..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype6.C +++ /dev/null @@ -1,36 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -template<typename T> const T& foo(); - - -int i; - -template<typename T> -struct A -{ - double x; -}; - -const A<double>* a = new A<double>(); - -static_assert(is_same<decltype(foo<int>()), const int&>::value, - "type should be const int&"); -static_assert(is_same<decltype(i), int>::value, - "type should be int"); -static_assert(is_same<decltype(a->x), double>::value, - "type should be double"); -static_assert(is_same<decltype((a->x)), const double&>::value, - "type should be const double&"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype7.C deleted file mode 100644 index f757c9e10..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype7.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/34268 -// { dg-do compile } - -struct A -{ - __decltype (A); // { dg-error "must be an expression" } - __decltype (~A); // { dg-error "must be an expression" } -}; - -struct B -{ - __typeof__ (B); - __typeof__ (~B); // { dg-error "expected primary-expression" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype8.C deleted file mode 100644 index 368068926..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype8.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/34267 -// { dg-do compile } - -struct A {}; -__decltype (A); // { dg-error "must be an expression" } -template<int> struct B -{ - __decltype (A); // { dg-error "must be an expression" } - __decltype (~A); // { dg-error "must be an expression" } - __decltype (B); // { dg-error "must be an expression" } - __decltype (~B); // { dg-error "must be an expression" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype9.C deleted file mode 100644 index 4cd150ea6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/decltype9.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/34271 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<int> struct A -{ - static int i; -}; - -template<int N> int A<N>::i(decltype (A::i)); // { dg-error "member function|must be an expression" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/deduce.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/deduce.C deleted file mode 100644 index 635228cca..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/deduce.C +++ /dev/null @@ -1,36 +0,0 @@ -// { dg-options "--std=c++0x" } -template<typename T, typename U> struct same_type; -template<typename T> struct same_type<T, T> {}; - -int lval_int; -int rval_int(); -int const lval_const_int=0; -int const&& rval_const_int(); - -template <typename T> void deduce_lval_int(T && t) -{ - same_type<T, int &>(); -} - -template <typename T> void deduce_rval_int(T && t) -{ - same_type<T, int>(); -} - -template <typename T> void deduce_lval_const_int(T && t) -{ - same_type<T, const int &>(); -} - -template <typename T> void deduce_rval_const_int(T && t) -{ - same_type<T, const int>(); -} - -void f() -{ - deduce_lval_int(lval_int); - deduce_rval_int(rval_int()); - deduce_lval_const_int(lval_const_int); - deduce_rval_const_int(rval_const_int()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted1.C deleted file mode 100644 index e8fe37eb3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted1.C +++ /dev/null @@ -1,43 +0,0 @@ -// Positive test for defaulted/deleted fns -// { dg-do run } -// { dg-options "-std=c++0x" } - -struct A -{ - int i; - A() = default; - A(const A&) = delete; - A& operator=(const A&) = default; - ~A(); -}; - -A::~A() = default; - -void f() = delete; - -struct B -{ - int i; - B() = default; -}; - -int main() -{ - A a1, a2; - B b = {1}; - a1 = a2; -} - -// fns defaulted in class defn are trivial -struct C -{ - C() = default; - C(const C&) = default; - C& operator=(const C&) = default; - ~C() = default; -}; - -union U -{ - C c; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted10.C deleted file mode 100644 index 64fa5f019..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted10.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/40381 -// { dg-options "-std=gnu++0x" } - -struct A -{ - template<typename T> void foo(T) = delete; // { dg-error "previously|declared" } -}; - -template<typename T> void A::foo(T) {} // { dg-error "redefinition" } - -void bar() -{ - A().foo(0); // { dg-error "use" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted11.C deleted file mode 100644 index b9bed7e00..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted11.C +++ /dev/null @@ -1,15 +0,0 @@ -// Core issue 901 -// { dg-options "-std=c++0x" } - -struct A -{ - A(); ~A(); - void operator delete (void *) = delete; - void operator delete[] (void *) = delete; -}; - -int main() -{ - A* ap = new A; - ap = new A[2]; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted13.C deleted file mode 100644 index 8b2357921..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted13.C +++ /dev/null @@ -1,29 +0,0 @@ -// { dg-options -std=c++0x } - -template<typename T> -struct NonCopyable { - NonCopyable() = default; - NonCopyable(NonCopyable const&); -}; - -template<> -NonCopyable<int>::NonCopyable(NonCopyable<int> const&) = delete; // { dg-error "declared" } - -template<typename T> -NonCopyable<T>::NonCopyable(NonCopyable<T> const&) = default; - -template<> -NonCopyable<double>::NonCopyable(NonCopyable<double> const&) = delete; // { dg-error "declared" } - - -int main() -{ - NonCopyable<double> nc_dbl; - NonCopyable<double> nc_dbl_cpy(nc_dbl); // { dg-error "use" } - - NonCopyable<int> nc_int; - NonCopyable<int> nc_int_cpy(nc_int); // { dg-error "use" } - - NonCopyable<char> nc_char; - NonCopyable<char> nc_char_cpy(nc_char); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted14.C deleted file mode 100644 index e476d576c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted14.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/39866 -// { dg-options "-std=c++0x" } - -struct A { - A& operator=(const A&) = delete; // { dg-bogus "" } - - void operator=(int) {} // { dg-message "" } - void operator=(char) {} // { dg-message "" } -}; - -struct B {}; - -int main() -{ - A a; - a = B(); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 16 } - a = 1.0; // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 18 } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted15.C deleted file mode 100644 index 6d182df21..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted15.C +++ /dev/null @@ -1,58 +0,0 @@ -// PR c++/38796 -// { dg-options -std=c++0x } - -#define SA(X) static_assert ((X), #X) - -struct A -{ - A (int); - A (const A& = 1) = default; // { dg-error "default argument" } - void operator= (const A&) = default; // { dg-error "defaulted|match" } -}; - -struct B -{ -private: - B() = default; -}; - -SA(__has_trivial_constructor(B)); - -struct C -{ -protected: - ~C() = default; -}; - -SA(__has_trivial_destructor(C)); - -struct D -{ -private: - D& operator= (const D&) = default; -}; - -SA(__has_trivial_assign(D)); - -struct E -{ - explicit E (const E&) = default; -}; - -SA(__has_trivial_copy(E)); - -struct F -{ - F(F&) = default; -}; - -struct G: public F -{ - // Can't be const because F copy ctor isn't. - G(const G&) = default; // { dg-error "const" } -}; - -struct H -{ - virtual ~H() = default; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted16.C deleted file mode 100644 index 741b43de2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted16.C +++ /dev/null @@ -1,13 +0,0 @@ -// Test that non-inline default causes the function to be defined even if -// it isn't used. - -// { dg-options -std=c++0x } -// { dg-final { scan-assembler "_ZN1AC1Ev" } } - -struct A -{ - A(); -}; - -A::A() = default; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted17.C deleted file mode 100644 index 79e91a0eb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted17.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -struct A // { dg-error "const|operator=" } -{ - const int i; -}; - -int main() -{ - A a = { 0 }; - a = a; // { dg-error "deleted" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted18.C deleted file mode 100644 index 559dfde48..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted18.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=c++0x" } - -void f(char i, int j) = delete; // { dg-message "<deleted>" } -void f(int i, ...); // { dg-message "void f" } - -int main() -{ - f(1,1); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 8 } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted19.C deleted file mode 100644 index ea33df398..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted19.C +++ /dev/null @@ -1,21 +0,0 @@ -// We allocate a cookie to help us run the destructor even if it's deleted. -// { dg-options -std=c++0x } -// { dg-do run } - -struct A -{ - ~A() = delete; -}; - -void *p = 0; -void *operator new[](__SIZE_TYPE__ t) -{ - p = ::operator new (t); - return p; -} - -int main() -{ - A* ap = new A[5]; - return ap == p; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted2.C deleted file mode 100644 index e3aac8f1a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted2.C +++ /dev/null @@ -1,69 +0,0 @@ -// Negative test for defaulted/deleted fns. -// { dg-options "-std=c++0x" } - -void f(); // { dg-error "previous" } -void f() = delete; // { dg-error "deleted" } - -struct A -{ - A() { } // { dg-error "previous" } - void f() = default; // { dg-error "default" } -}; - -A::A() = default; // { dg-error "redefinition" } - -void g() {} // { dg-error "previous" } -void g() = delete; // { dg-error "redefinition" } - -struct B // { dg-message "user-provided default constructor" } -{ - int i; - B() = default; // { dg-message "not user-provided" } -}; - -const B b; // { dg-error "uninitialized const" } - -struct C -{ - virtual void f() = delete; // { dg-error "overriding deleted" } -}; - -struct D: public C -{ - virtual void f(); // { dg-error "non-deleted function" } -}; - -struct E -{ - const B b; - E() { } // { dg-error "uninitialized" } -}; - -struct F -{ - F() = default; - F(const F&) = delete; // { dg-error "declared" } -}; - -struct G -{ - G(); -}; - -// ctor defaulted after class defn is not trivial -G::G() = default; - -union U -{ - G g; // { dg-error "union member.*non-trivial" } -}; - -int main() -{ - F f; - F f2(f); // { dg-error "use" } - B* b = new const B; // { dg-error "uninitialized const" } - U u; // { dg-error "deleted" } -} - -// { dg-prune-output "implicitly deleted because" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted20.C deleted file mode 100644 index 9b8c697ab..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted20.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/46497 -// { dg-options -std=c++0x } - -struct A { - A(A&&) = default; -}; -struct B { - const A a; - B(const B&) = default; - B(B&&) = default; // { dg-error "implicitly deleted|use of deleted" } -}; - -void g(B); // { dg-error "argument 1" } -B&& f(); - -int main() -{ - g(f()); // { dg-error "deleted" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted21.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted21.C deleted file mode 100644 index 51505dc46..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted21.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/46736 -// { dg-options -std=c++0x } - -struct U { - U(); -private: - U(U const&); // { dg-error "private" } -}; - -struct X { - U const u; - X(); - X(X&&); -}; - -X::X(X&&)=default; // { dg-message "implicitly deleted" } -// { dg-prune-output "within this context" } - -X f() { - return X(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted22.C deleted file mode 100644 index 61e9d3205..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted22.C +++ /dev/null @@ -1,23 +0,0 @@ -// Test that a virtual defaulted constructor is still virtual. -// { dg-do run } -// { dg-options -std=c++0x } - -int r = 1; - -struct A -{ - virtual ~A() = default; -}; - -struct B: A -{ - ~B() noexcept { r = 0; } -}; - -A* ap = new B(); - -int main() -{ - delete ap; - return r; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted23.C deleted file mode 100644 index 5b4438ddd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted23.C +++ /dev/null @@ -1,27 +0,0 @@ -// Test for checking of exception specifications on defaulted fns -// { dg-options -std=c++0x } - -struct A -{ - A() noexcept = default; -}; - -struct B -{ - B() throw (int) = default; // { dg-error "exception-specification that differs from the implicit declaration" } -}; - -struct C -{ - C() throw (int) { } -}; - -struct D: C -{ - D() throw (int) = default; -}; - -struct E -{ - E() = default; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted24.C deleted file mode 100644 index 307bf94ab..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted24.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/48280 -// { dg-options -std=c++0x } - -struct S { - template < typename > S (const S &) = default; // { dg-error "" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted25.C deleted file mode 100644 index 2a38fedb2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted25.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/48930 -// { dg-options -std=c++0x } -// { dg-prune-output "note" } - -struct A -{ - A(const A&) = default; -}; - -A a; // { dg-error "no match" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted26.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted26.C deleted file mode 100644 index 69bd0accb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted26.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/49066 -// { dg-options -std=c++0x } - -void foo() = delete; // { dg-error "declared here" } -void foo(); - -int main() { foo(); } // { dg-error "deleted" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted27.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted27.C deleted file mode 100644 index 7d9139d23..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted27.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/47544 -// { dg-options -std=c++0x } -// { dg-final { scan-assembler "_ZN1sIiEC2Ev" } } -// { dg-final { scan-assembler-not "_ZN1sIiED2Ev" } } - -template <typename T> -struct s { - s(); - ~s() = default; -}; - -extern template struct s<int>; - -template <typename T> -s<T>::s() = default; - -template struct s<int>; - -s<int> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted28.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted28.C deleted file mode 100644 index bcbf763f6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted28.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/49102 -// PR c++/50034 -// { dg-options -std=c++0x } - -struct A { - A() = default; - -private: - A(A const&) = default; // { dg-error "private" } -}; - -int f(...) { } -int main() { - A a; - f(a); // { dg-error "this context" } - sizeof(f(a)); // OK because unevaluated -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted29.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted29.C deleted file mode 100644 index 5fcf5b0c5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted29.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/46696 -// { dg-options -std=c++0x } - -struct A -{ - A& operator= (A const&); -}; - -struct B -{ - A ar[1]; - B& operator= (B const&) = default; -}; - -int main() -{ - B x; - B y; - y = x; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted3.C deleted file mode 100644 index 5e2116b53..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted3.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/37006 -// { dg-options "-std=c++0x" } - -template<class T> -struct A { - template<class U> - bool operator==(const A<U>&) = delete; // { dg-error "declared" } - operator bool () { return true; } -}; - -int main() -{ - A<int> a1; - A<void> a2; - if(a1 == a2) {} // { dg-error "use" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted30.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted30.C deleted file mode 100644 index 0bf4425b8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted30.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/49507 -// { dg-options -std=c++0x } - -template<typename T> -struct ConcretePoolKey -{ - virtual ~ConcretePoolKey(); -}; - -template<typename T> -ConcretePoolKey<T>::~ConcretePoolKey() = default; - -int main() -{ - ConcretePoolKey<int> foo; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted31.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted31.C deleted file mode 100644 index de6a29854..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted31.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/39164 -// { dg-options -std=c++0x } - -struct A -{ - A() { } // { dg-error "defined" } - ~A() = default; // { dg-error "defaulted" } -}; - -A::A() = default; // { dg-error "redefinition" } -A::~A() noexcept (true) { } // { dg-error "defaulted" } - -int main() -{ - A a; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted32.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted32.C deleted file mode 100644 index 351cdae11..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted32.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/50531 -// { dg-options -std=c++0x } - -template <typename T> -class DataFilter -{ - public: - inline virtual ~DataFilter(); -}; - -template<typename T> -inline DataFilter<T>::~DataFilter() = default; - -class ARCalculator : public DataFilter<ARCalculator> -{ - public: - virtual void dataStart(int, int); -}; - -void ARCalculator::dataStart(int, int) -{} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted33.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted33.C deleted file mode 100644 index 2f11c1369..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted33.C +++ /dev/null @@ -1,32 +0,0 @@ -// PR c++/50973 -// { dg-do compile { target c++11 } } - -class HD -{ - public: - virtual ~HD() {}; -}; -class InputHD : public virtual HD -{ -}; -class OutputHD : public virtual HD -{ -}; -class IOHD : public InputHD, public OutputHD -{ -}; -template <typename T, unsigned int N> -class ArrayNHD : public IOHD -{ - public: - ~ArrayNHD() = default; -}; -class TLText -{ - ~TLText(); - ArrayNHD<int, 1>* m_argsHD; -}; -TLText::~TLText() -{ - delete m_argsHD; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted34.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted34.C deleted file mode 100644 index 082199267..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted34.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-final { scan-assembler "__cxa_deleted_virtual" } } - -struct A -{ - virtual void f(); - virtual ~A() = delete; -}; - -void A::f() {} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted35.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted35.C deleted file mode 100644 index ca700fb78..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted35.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/53096 -// { dg-options -std=c++0x } - -struct foo -{ - foo(foo&) = default; - foo& operator=(foo&) = default; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted36.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted36.C deleted file mode 100644 index 1360f608e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted36.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/53733 -// { dg-do compile { target c++11 } } - -template<typename T> -struct wrap -{ - wrap() = default; - wrap(wrap&&) = default; // Line 5 - wrap(const wrap&) = default; - - T t; -}; - -struct S { - S() = default; - S(const S&){} - S(S&&) = default; -}; - -typedef wrap<const S> W; - -W get() { return W(); } // Line 19 - -int main() {} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted37.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted37.C deleted file mode 100644 index 1926f2eb4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted37.C +++ /dev/null @@ -1,19 +0,0 @@ -// DR 1402 -// { dg-do compile { target c++11 } } - -struct A -{ - A& operator=(A&&); -}; - -struct B: virtual A { B& operator=(B&&) = default; }; // { dg-warning "virtual base" } -struct C: virtual A { }; // { dg-warning "virtual base" } - -int main() -{ - B b1, b2; - b2 = static_cast<B&&>(b1); - - C c1, c2; - c2 = static_cast<C&&>(c1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted38.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted38.C deleted file mode 100644 index 39424f641..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted38.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/50893 -// { dg-do compile { target c++11 } } - -class Base -{ - public: - virtual ~Base() = default; -}; - -class Derived : public Base -{ - public: - virtual ~Derived() = default; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted39.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted39.C deleted file mode 100644 index fe847d4e8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted39.C +++ /dev/null @@ -1,23 +0,0 @@ -// DR 1402 -// { dg-options -std=c++11 } - -template <class T> T&& move(T& t); - -struct A -{ - A(const A&); -}; - -struct B -{ - B(B&&); -}; - -struct C -{ - A a; - B b; -}; - -extern C c1; -C c2(move(c1)); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted4.C deleted file mode 100644 index 56053840b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted4.C +++ /dev/null @@ -1,26 +0,0 @@ -// PR c++/37208: SFINAE and deleted functions. - -// { dg-options "-std=c++0x" } -// { dg-do compile } -template<int> struct A { }; - -template<typename T> -int& int_if_addable(A<sizeof((*(T*)0) + (*(T*)0))>*); - -template<typename T> -float& int_if_addable(...); - -struct X { }; - -struct Y { }; -Y operator+(Y, Y); - -struct Z { }; -Z operator+(Z, Z) = delete; - -void f() -{ - float& x = int_if_addable<X>(0); - int& y = int_if_addable<Y>(0); - float& z = int_if_addable<Z>(0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted40.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted40.C deleted file mode 100644 index c160b397b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted40.C +++ /dev/null @@ -1,23 +0,0 @@ -// DR 1402 -// { dg-options -std=c++11 } - -template <class T> T&& move(T& t); - -struct A -{ - A(const A&); -}; - -struct B -{ - B(B&&) = delete; // { dg-prune-output "declared" } -}; - -struct C // { dg-error "deleted" } -{ - A a; - B b; -}; - -extern C c1; -C c2(move(c1)); // { dg-error "deleted" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted41.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted41.C deleted file mode 100644 index 4272012d5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted41.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/56343 -// { dg-do compile { target c++11 } } - -class B -{ -public: - virtual ~B() noexcept(false) { } -}; - -class D : public B -{ -public: - virtual ~D() = default; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted42.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted42.C deleted file mode 100644 index 1ac25a90b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted42.C +++ /dev/null @@ -1,10 +0,0 @@ -// DR 941 -// { dg-require-effective-target c++11 } - -template <class T> T f(T) = delete; -template<> int f(int) { return 42; } - -int main() -{ - f(42); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted5.C deleted file mode 100644 index b7bd16b40..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted5.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/37234 -// { dg-do link } -// { dg-options "-std=c++0x" } - -template <typename T> -class foo { - public: - foo() =default; - ~foo(); -}; - -template <typename T> -foo<T>::~foo() =default; - -int main() { - - foo<int> fi; - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted6.C deleted file mode 100644 index c33d57292..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted6.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/37906 -// { dg-options "-std=c++0x" } - -struct b -{ - b() = default; - b(const b&) = delete; -}; - -void test01() -{ - static_assert(__has_trivial_constructor(b), "default ctor not trivial"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted7.C deleted file mode 100644 index 97c29258e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted7.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/38701, 38702 -// { dg-options "-std=c++0x" } - -void foo() = default; // { dg-error "cannot be defaulted" } -namespace -{ - void bar() = default; // { dg-error "cannot be defaulted" } -} - -enum E { e }; - -E& operator |= (E&, const E&) = default; // { dg-error "cannot be defaulted" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted8.C deleted file mode 100644 index f446f8156..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted8.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/38649 -// { dg-options "-std=c++0x" } - -struct A -{ - A(...) = default; // { dg-error "cannot be defaulted" } - A(const A&, ...) = default; // { dg-error "cannot be defaulted" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted9.C deleted file mode 100644 index 1e5e2cbf9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/defaulted9.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/39153 -// { dg-options "-std=c++0x -fno-inline" } - -struct _Impl_base -{ - _Impl_base() = default; - virtual ~_Impl_base(); -}; - -inline _Impl_base::~_Impl_base() = default; - -template<typename _Tp> -class _Impl : public _Impl_base -{ }; - -int main() -{ - _Impl<int> i; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dependent1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dependent1.C deleted file mode 100644 index 1ceeeafd7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/dependent1.C +++ /dev/null @@ -1,25 +0,0 @@ -// PR c++/48319 -// { dg-options -std=c++0x } -// We were failing to recognize declval<_Args1> as dependent. - -template<typename Tp> Tp declval() noexcept; - -template<typename _Tp> -class __is_constructible_helper -{ - typedef char __one; - typedef struct { char __arr[2]; } __two; - - template<typename _Tp1, typename... _Args1> - static decltype(_Tp1(declval<_Args1>()...), __one()) __test(int); - - template<typename, typename...> - static __two __test(...); - -public: - static const bool __value = sizeof(__test<_Tp>(0)) == 1; -}; - -int main() { - return __is_constructible_helper<int>::__value; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/diag1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/diag1.C deleted file mode 100644 index b3f30bcd0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/diag1.C +++ /dev/null @@ -1,32 +0,0 @@ -// { dg-options -std=c++0x } - -template <int U> -struct TypeA -{ - typedef int type; -}; - -template <int N> -struct TypeB -{ - template <int U> typename TypeA<U>::type fn(); -}; - -struct TypeC -{ - TypeB<10> b; - // This was being printed as: - // template<int N> - // decltype (((TypeC*)this)-> - // TypeC::b. - // template<int U> typename TypeA<U>::type TypeB::fn [with int U = U, int N = 10, typename TypeA<U>::type = TypeA<U>::type]()) - // TypeC::fn() - // we don't want to see the template header, return type, or parameter bindings - // for TypeB::fn. - template <int N> auto fn() -> decltype(b.fn<N>()); // { dg-bogus "typename|with" } -}; - -int main() -{ - TypeC().fn<4>(1); // { dg-error "no match" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision.C deleted file mode 100644 index 35d5e4b02..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision.C +++ /dev/null @@ -1,76 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test: Implicit cast to rvalue when eliding copy - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {char x[1];}; -struct two {char x[2];}; - -class move_only -{ - move_only(const move_only&); - move_only& operator=(const move_only&); -public: - move_only() {} - move_only(move_only&&) {} - move_only& operator=(move_only&&) {return *this;} -}; - -move_only -test1() -{ - return move_only(); -} - -move_only -test2() -{ - move_only x; - return x; -} - -move_only -test3(bool b) -{ - move_only x1; - if (b) - { - move_only x2; - return x2; - } - return x1; -} - -void -test4(bool b) -{ - if (!b) - throw move_only(); -} - -void -test5(bool b) -{ - move_only x; - if (!b) - throw x; -} - -extern bool b; - -int main() -{ - move_only t1 = test1(); - move_only t2 = test2(); - move_only t3 = test3(b); - test4(b); - test5(b); - return 0; -} - -bool b = true; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision2.C deleted file mode 100644 index 216b1b59d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision2.C +++ /dev/null @@ -1,13 +0,0 @@ -// Core 1148: should be able to move from value parameter on return -// { dg-options -std=c++0x } - -struct A -{ - A(const A&) = delete; - A(A&&); -}; - -A f (A a) -{ - return a; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision_neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision_neg.C deleted file mode 100644 index 78feac72a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision_neg.C +++ /dev/null @@ -1,44 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test: Implicit cast to rvalue when eliding copy - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {char x[1];}; -struct two {char x[2];}; - -class move_only -{ - move_only(const move_only&); // { dg-error "is private" } - move_only& operator=(const move_only&); -public: - move_only() {} - move_only(move_only&&) {} - move_only& operator=(move_only&&) {return *this;} -}; - -move_only -test1() -{ - static move_only x; - return x; // { dg-error "within this context" } -} - -move_only -test2(move_only&& x) -{ - return x; // { dg-error "within this context" } -} - -int main() -{ - move_only t1 = test1(); - move_only t2 = test2(move_only()); - return 0; -} - -bool b = true; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision_weak.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision_weak.C deleted file mode 100644 index e8ba7551d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/elision_weak.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-do compile } - -struct S -{ - S() {} - S(S&) {} -}; - -S f() -{ - S s; - return s; -} - -void g() -{ - S s; - throw s; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum1.C deleted file mode 100644 index fb03692fa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum1.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/38021 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -enum : { }; // { dg-error "expected" } -enum : 3 { }; // { dg-error "expected" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum10.C deleted file mode 100644 index 55a1ab46b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum10.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/48534 -// { dg-options -std=c++0x } - -enum class OpSE : bool; - -int main() -{ - return static_cast<bool>(OpSE()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum11.C deleted file mode 100644 index 156c765be..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum11.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/48969 -// { dg-options "-std=c++0x -ftemplate-depth=10" } - -template<unsigned int N> struct Pair { }; -struct Foo { enum { Mask = 1 }; } foo; -template<typename A, typename B> class Pair<A::Mask | B::Mask> -operator|(const A &, const B &) // { dg-message "substitution" } -{ } - -Pair<Foo::Mask> f = foo|foo; // { dg-message "no match" } - -// { dg-prune-output "note" } -// { dg-prune-output "here" } -// { dg-prune-output "instantiation depth" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum12.C deleted file mode 100644 index b2ec91990..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum12.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/48780 -// { dg-options "-std=c++0x -fabi-version=0" } - -typedef __builtin_va_list __gnuc_va_list; -typedef __gnuc_va_list va_list; - -enum struct A : short { X }; - -void foo(int x, ...) { - va_list vl; - __builtin_va_start(vl, x); - enum A t = __builtin_va_arg(vl, enum A); - __builtin_va_end(vl); -} - -int main() { - foo(0, A::X); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum13.C deleted file mode 100644 index ec02d3bf6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum13.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/48780 -// { dg-options "-std=c++0x -fabi-version=5 -Wabi" } - -typedef __builtin_va_list __gnuc_va_list; -typedef __gnuc_va_list va_list; - -enum struct A : short { X }; - -void foo(int x, ...) { - va_list vl; - __builtin_va_start(vl, x); - enum A t = __builtin_va_arg(vl, enum A); // { dg-warning "promote" } - __builtin_va_end(vl); -} - -int main() { - foo(0, A::X); // { dg-warning "will not promote" } -} - -// { dg-prune-output "note" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum14.C deleted file mode 100644 index 709b201d1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum14.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/48106 -// { dg-options -std=c++0x } - -enum class E : char -{ - e -}; - -bool operator&(E e, char m) -{ - return static_cast<int>(e) & m; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum15.C deleted file mode 100644 index d65321649..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum15.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/44311 -// { dg-options -std=c++0x } - -enum class A { Val0, Val1 }; - -void foo (A a, int i) -{ - switch (a) - { - case A::Val0: break; - case 1: break; // { dg-error "" } - } - - switch (i) - { - case A::Val0: break; // { dg-error "" } - case 1: break; - case 2.0: break; - } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum16.C deleted file mode 100644 index ebb48688b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum16.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/48935 -// { dg-options -std=c++0x } - -enum class ENUM { a }; - -ENUM::Type func() { return ENUM::a; } // { dg-error "does not name a type" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum17.C deleted file mode 100644 index 8ba827e50..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum17.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/48536 -// { dg-options "-std=c++0x -pedantic-errors" } - -#include <climits> - -// According to C++11 / Clause 7.2/5 the following enumeration is -// well-formed. It is also well-formed in C++03 if UINT_MAX < ULONG_MAX, -// but C++11 adds long long. - -enum Enum_Inc { EI_1=UINT_MAX, EI_2 }; // #1 - -// It is not equivalent to the following. -enum Enum_Inc2 { FI_1=UINT_MAX, FI_2=FI_1+1 }; // #2 - -#define SA(X) static_assert(X,#X) -SA (EI_2 != 0); -SA (FI_2 == 0); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum18.C deleted file mode 100644 index 306ed8259..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum18.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/47277 -// { dg-options -std=c++0x } - -int main(void) { - enum e {}; - e ev; - ev.e::~e_u(); // { dg-error "e_u. has not been declared" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum19.C deleted file mode 100644 index acdd86c0b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum19.C +++ /dev/null @@ -1,12 +0,0 @@ -// We shouldn't give an ABI warning about promotion in switch. -// { dg-options "-std=c++0x -fabi-version=5 -Wabi" } - -enum class Foo { X }; -void test(Foo val) -{ - switch(val) - { - case Foo::X: - break; - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum2.C deleted file mode 100644 index 21c265a92..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum2.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/38637 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<int> enum E : int { e }; // { dg-error "declaration|expected" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum20.C deleted file mode 100644 index e5dc186e4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum20.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/47635 -// { dg-options -std=c++0x } - -enum A { }; -void A::f() { } // { dg-error "not a class" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum21a.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum21a.C deleted file mode 100644 index 5526811a6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum21a.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-do compile } -// { dg-options "-pedantic -std=c++98" } - -enum x { y, }; // { dg-warning "comma at end of enumerator list" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum21b.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum21b.C deleted file mode 100644 index 48989128d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum21b.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-do compile } -// { dg-options "-pedantic -std=c++0x" } - -enum x { y, }; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum22.C deleted file mode 100644 index e87a31ce6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum22.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/56155 -// { dg-do compile { target c++11 } } - -enum e_ : unsigned char { Z_, E_=sizeof(Z_) }; -static_assert( E_ == 1, "E_ should be 1"); - -template <class T> -struct A { - enum e_ : unsigned char { Z_, E_=sizeof(Z_) }; -}; - -static_assert ( A<double>::E_ == 1, "E_ should be 1"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum23.C deleted file mode 100644 index b2378e1b3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum23.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/51242 -// { dg-do compile { target c++11 } } - -enum class MyEnum { A = 1 }; - -struct MyClass -{ - MyEnum Field1 : 3; // { dg-bogus "warning: 'MyClass::Field1' is too small" "" { xfail *-*-* } } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum24.C deleted file mode 100644 index dd6678e1e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum24.C +++ /dev/null @@ -1,57 +0,0 @@ -// PR c++/56749 -// { dg-require-effective-target c++11 } - -enum normal_enum -{ - not_scoped1, - not_scoped2 -}; - -enum class scoped_enum -{ - scoped1, - scoped2 -}; - -template <normal_enum N=not_scoped1> -class A -{ -public: - template <typename T> - void fun () - { - } -}; - -template <scoped_enum N=scoped_enum::scoped1> -class B -{ -public: - template <typename T> - void fun () - { - } -}; - - -template <typename T> -void tfun () -{ - A<> a; - a.fun<char>(); //<------------ THIS IS FINE - - B<> b_defaulted; - B<scoped_enum::scoped1> b_explicited; - - b_defaulted.fun<char>(); //<------------ UNEXPECTED: THIS FAILS - b_defaulted.template fun<char>(); //<------------ THIS IS FINE - - b_explicited.fun<char>(); //<------------ UNEXPECTED: THIS FAILS - b_explicited.template fun<char>();//<------------ THIS IS FINE -} - -int main(int argc, char const *argv[]) -{ - tfun<int>(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum25.C deleted file mode 100644 index cb2cf8f53..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum25.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/56793 -// { dg-require-effective-target c++11 } - -struct A -{ - enum struct B {X, Y} b; -} a; - -enum struct D {X,Y}; -struct C { } c; - -int main () -{ - if (a.b == a.B::Y) - a.b = A::B::X; - - c.D::Y; // { dg-error "not a member" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum3.C deleted file mode 100644 index 5ae5e1a9d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum3.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/38064 -// { dg-options "-std=c++0x" } -// { dg-do run } - -enum class E { elem }; - -template <class T> -void f (T t); - -bool f (bool b) { return b; } - -int main() -{ - E e = E::elem; - if (!f (e == E::elem)) - return 1; - if (!f (e <= E::elem)) - return 1; - if (!f (e >= E::elem)) - return 1; - if (f (e < E::elem)) - return 1; - if (f (e > E::elem)) - return 1; - if (f (e != E::elem)) - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum4.C deleted file mode 100644 index 002edf092..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum4.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/40633 -// { dg-options "-std=c++0x" } - -template< typename T > -struct wrap { - enum class E { val }; -}; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum5.C deleted file mode 100644 index c4ceebed7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum5.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/40639 -// { dg-options "-std=c++0x" } - -template< typename T > -struct wrap { - enum E : T { val }; -}; - -template< typename T > -struct dependant { - enum E : typename T::type { val }; -}; - -template<typename T> -struct identity { - typedef T type; -}; - -wrap<int> x; -dependant<identity<int>> y; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum6.C deleted file mode 100644 index e06398471..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum6.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/37946 -// { dg-options "-std=c++0x" } - -enum class E : char -{ - e1, - e2 -}; - -inline E operator| (E a1, E a2) -{ - char ret = static_cast<char> (a1) - | static_cast<char> (a2); - return static_cast<E>(ret); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum7.C deleted file mode 100644 index 407672a47..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum7.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/37816 -// { dg-options "-std=c++0x" } - -class A -{ - enum class Color { Red, Orange, Yellow, Green, Blue, Violet }; - enum class Alert { Green, Yellow, Red }; - static const Color x = Red; // { dg-error "" } - static const Color y = Color::Red; - static const Alert z = Alert::Red; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum8.C deleted file mode 100644 index 0075e2daa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum8.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/47704 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -void -foo () -{ - enum class E { A, B }; - new E; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum9.C deleted file mode 100644 index 10e510bcd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum9.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } - -enum class E { }; -E f(); -bool b2 = static_cast<bool>(f()); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum_base.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum_base.C deleted file mode 100644 index 5607961f2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum_base.C +++ /dev/null @@ -1,25 +0,0 @@ -// { dg-options "-std=c++0x" } - -typedef unsigned volatile long long uvlonglong; - -enum E1 : char { }; -enum E2 : signed const short { }; -enum E3 : uvlonglong { }; -enum E4 : char { - val = 500 // { dg-error "too large" } -}; - -enum class E5 { - val = (unsigned long long)-1 // { dg-error "too large" } -}; - -typedef float Float; - -enum class E6 : Float { }; // { dg-error "must be an integral type" } - -static_assert (sizeof(E1) == sizeof(char), "char-sized enum"); -static_assert (sizeof(E2) == sizeof(signed short), "short-sized enum"); -static_assert (sizeof(E3) == sizeof(unsigned long long), - "long long-sized enum"); -static_assert (sizeof(E4) == sizeof(char), "char-sized enum"); -static_assert (sizeof(E5) == sizeof(int), "scoped enum with int size"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum_base_warn.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum_base_warn.C deleted file mode 100644 index 4b14cf65e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/enum_base_warn.C +++ /dev/null @@ -1,25 +0,0 @@ -// { dg-do run } -// { dg-options "-O2 -Wtype-limits -std=c++0x" } -extern void link_error (void); - -enum Alpha : unsigned char { - ZERO = 0, ONE, TWO, THREE -}; - -Alpha a2; - -int m1 = -1; -int GetM1() { - return m1; -} - -int main() { - a2 = static_cast<Alpha>(GetM1()); - if (a2 == -1) { // { dg-warning "always false due" } - link_error (); - } - if (-1 == a2) { // { dg-warning "always false due" } - link_error (); - } - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error1.C deleted file mode 100644 index 751b3b75e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error1.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/34395 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<int... N> void foo (int... x[N]) // { dg-error "int \\\[N\\\]\\.\\.\\. x" } -{ - struct A - { - A () { x; } // { dg-error "use of parameter from containing function" } - }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error2.C deleted file mode 100644 index ca681eb2f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error2.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/38656 -// { dg-options "-std=c++0x" } - -template<int> int foo(); - -template<typename F> void bar(F f) -{ - f((foo<0>()=0)...); // { dg-error "pattern '\\(foo\\<0\\>\\)\\(\\)=0'" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error3.C deleted file mode 100644 index e7da96195..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error3.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/47336 -// { dg-options -std=c++0x } - -template <typename T> -void g(T t) -{ - t+1; // { dg-error "no match" } -} - -template <typename S> -class C -{ - struct D {} d; -public: - decltype(g(d)) h() - { - return g(d); - } -}; - -int main() -{ - C<int>().h(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error4.C deleted file mode 100644 index 064c2f2f6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error4.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/49156 -// { dg-options -std=c++0x } - -template<typename T> T declval(); - -template<typename T> -struct S { - - template<typename U> - static U get(const volatile T&); - - template<typename U> - static decltype(*declval<U>()) get(...); // { dg-error "operator*" } - - typedef decltype(get<T>(declval<T>())) type; // { dg-error "no match" } -}; - -struct X { }; - -S<X>::type x; - -// { dg-prune-output "note" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error5.C deleted file mode 100644 index 193192642..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error5.C +++ /dev/null @@ -1,107 +0,0 @@ -// PR c++/49181 -// { dg-options -std=c++0x } - -namespace std -{ - typedef __SIZE_TYPE__ size_t; - - template<typename _Tp, _Tp> - struct integral_constant; - - template<typename _Tp, _Tp __v> - struct integral_constant - { - static constexpr _Tp value = __v; - typedef _Tp value_type; - typedef integral_constant<_Tp, __v> type; - constexpr operator value_type() { return value; } - }; - - typedef integral_constant<bool, true> true_type; - - typedef integral_constant<bool, false> false_type; - - template<typename _Tp, _Tp __v> - constexpr _Tp integral_constant<_Tp, __v>::value; - - template<bool, typename _Tp = void> - struct enable_if - { }; - - template<typename _Tp> - struct enable_if<true, _Tp> - { typedef _Tp type; }; - - template<typename _Tp> - inline _Tp - declval(); - -struct bad_alloc { }; -} - -void* operator new(std::size_t) throw (std::bad_alloc); - -namespace std -{ - - template<typename _Tp> - class allocator - { - public: - typedef _Tp* pointer; - typedef _Tp value_type; - - pointer - allocate(size_t, const void* = 0); - }; - - template<typename _Alloc> - struct allocator_traits - { - typedef typename _Alloc::value_type value_type; - - template<typename _Tp> static typename _Tp::pointer -_S_pointer_helper(_Tp*); - static value_type* _S_pointer_helper(...); - typedef decltype(_S_pointer_helper((_Alloc*)0)) __pointer; - - typedef __pointer pointer; - - typedef const void* const_void_pointer; - - private: - template<typename _Alloc2> - struct __allocate_helper - { - template<typename _Alloc3, - typename = decltype(std::declval<_Alloc3*>()->allocate( - std::declval<size_t>(), - std::declval<const_void_pointer>()))> - static true_type __test(int); - - template<typename> - static false_type __test(...); - - typedef decltype(__test<_Alloc>(0)) type; - static const bool value = type::value; - }; - - template<typename _Alloc2> - static typename - enable_if<__allocate_helper<_Alloc2>::value, pointer>::type - _S_allocate(_Alloc2& __a, size_t __n, const_void_pointer __hint) - { return __a.allocate(__n, __hint); } - - public: - static pointer - allocate(_Alloc& __a, size_t __n, const_void_pointer __hint) - { return _S_allocate(__a, __n, __hint); } - }; - -} - -namespace std -{ - typedef short test_type; - template struct allocator_traits<allocator<test_type>>; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error6.C deleted file mode 100644 index 35156520b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error6.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/48284 -// { dg-options -std=c++0x } - -template<typename C> -auto g(C& c) -> decltype (c.f()) { return c.f(); } // { dg-error "decltype .c\\.f" } - -template<typename C> -auto g(C& c) -> decltype (c.f()) { return c.f(); } // { dg-error "decltype .c\\.f" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error7.C deleted file mode 100644 index 0dfbf9f04..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error7.C +++ /dev/null @@ -1,10 +0,0 @@ -// Test for printing the type of T{} in error messages. -// { dg-options -std=c++0x } - -template <class T, T t> struct A { }; -template <class T> A<T,T{}> f(T t); // { dg-message "T{}" } - -int main() -{ - f(); // { dg-error "no match" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error8.C deleted file mode 100644 index cc4f87791..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/error8.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/39681 -// { dg-do compile { target c++11 } } - -struct A -{ - int* p = new foo; // { dg-error "16:expected type-specifier" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit1.C deleted file mode 100644 index fe164fc8c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit1.C +++ /dev/null @@ -1,58 +0,0 @@ -// Test for explicit conversion ops from N2437. -// { dg-options "-std=c++0x" } - -class U; class V; -class T -{ -public: - T( U const & ); - //implicit converting ctor - explicit T( V const & ); - // explicit ctor -}; -class U -{ -}; -class V -{ -}; -class W -{ -public: - operator T() const; -}; -class X -{ -public: - explicit operator T() const; // theoretical -}; -int main() -{ - U u; V v; W w; X x; - // Direct initialization: - T t1( u ); - T t2( v ); - T t3( w ); - T t4( x ); - // Copy initialization: - T t5 = u; - T t6 = v; // { dg-error "" } - T t7 = w; - T t8 = x; // { dg-error "" } - // Cast notation: - T t9 = (T) u; - T t10 = (T) v; - T t11 = (T) w; - T t12 = (T) x; - // Static cast: - T t13 = static_cast<T>( u ); - T t14 = static_cast<T>( v ); - T t15 = static_cast<T>( w ); - T t16 = static_cast<T>( x ); - // Function-style cast: - T t17 = T( u ); - T t18 = T( v ); - T t19 = T( w ); - T t20 = T( x ); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit2.C deleted file mode 100644 index c2327c140..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit2.C +++ /dev/null @@ -1,29 +0,0 @@ -// Test for explicit conversion ops in various conversion situations. -// { dg-options "-std=c++0x" } - -typedef void (*pfn)(); - -struct A -{ - explicit operator int() const; - explicit operator pfn() const; -}; - -int main() -{ - A a; - int i = a; // { dg-error "" } - const int &ir = a; // { dg-error "" } - a(); // { dg-error "" } - a + 1; // { dg-message "" } (error and note on same line) - - int j (a); - (int)a; - static_cast<int>(a); -} - -struct B -{ - int i; - B(const A& a): i(a) { } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit3.C deleted file mode 100644 index be0a14e7a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit3.C +++ /dev/null @@ -1,51 +0,0 @@ -// Test for "contextually converted to bool" -// { dg-options "-std=c++0x" } - -struct A -{ - explicit operator bool(); -}; - -void f (bool); - -struct B -{ - bool b; -}; - -struct C -{ - operator int(); -}; - -struct D -{ - operator int(); -}; - -int main() -{ - A a; C c; D d; - // These contexts use an explicit bool conversion. - if (a) {} - for (; a; ) {} - do {} while (a); - while (a) {} - a ? 1 : 0; - a || true; - a && true; - !a; - - a ? c : 1; - a ? c : d; - - // These do not. - switch (a); // { dg-error "" } - bool b = a; // { dg-error "" } - // { dg-message "candidate" "candidate note" { target *-*-* } 44 } - f(a); // { dg-error "" } - B b2 = { a }; // { dg-error "" } - a + true; // { dg-message "" } - b ? a : true; // { dg-message "" } - a ? a : true; // { dg-message "" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit4.C deleted file mode 100644 index 0f3bc623a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit4.C +++ /dev/null @@ -1,18 +0,0 @@ -// Negative explicit conv test. -// { dg-options "-std=c++0x" } - -struct A { - A(const A&, int = 0); // { dg-message "note" } -}; -struct B -{ - explicit operator A(); -}; - -int main() -{ - B b; - (A(b)); // OK - (A(b,1)); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 16 } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit5.C deleted file mode 100644 index 88a47071d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit5.C +++ /dev/null @@ -1,25 +0,0 @@ -// test for extension of DR 899 to handle template ctors -// { dg-options "-std=c++0x" } -// { dg-do run } - -int r = 1; - -struct C { - C() { } - template <class T = int> C(C&, T = 0) { r = 0; } -}; - -C c; - -struct A -{ - explicit operator C&() const { return c; } -}; - -int main() -{ - A a; - C c2 (a); - - return r; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit6.C deleted file mode 100644 index 0d620be08..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit6.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/47080 -// { dg-options -std=c++0x } - -struct A { - explicit operator int(); // { dg-message "qualification conversion" } -}; - -int main() { - bool b((A())); // { dg-error "invalid user-defined" } - !A(); // { dg-error "" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit7.C deleted file mode 100644 index 7a0b73e9b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/explicit7.C +++ /dev/null @@ -1,17 +0,0 @@ -// [over.match.conv]: For direct-initialization, those explicit conversion -// functions that are not hidden within S and yield type T or a type that -// can be converted to type T with a qualification conversion (4.4) are -// also candidate functions. - -// { dg-options -std=c++0x } - -struct A { }; -struct B: A { }; -struct C { - explicit operator B*(); // { dg-message "explicit" } - explicit operator B&(); // { dg-message "explicit" } -}; - -C c; -A* ap (c); // { dg-error "" } -A& ar (c); // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/extern_template-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/extern_template-1.C deleted file mode 100644 index ec2cb784e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/extern_template-1.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-options "-std=c++0x -pedantic" } - -template <typename> void f() {} -extern template void f<int>(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/extern_template-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/extern_template-2.C deleted file mode 100644 index 89a9ceb5a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/extern_template-2.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-options "-std=c++0x -pedantic" } - -template <typename> class S {}; -extern template class S<int>; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/extern_template-3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/extern_template-3.C deleted file mode 100644 index 1b7ad0e01..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/extern_template-3.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/37256 -// { dg-options "-O" } - -template <typename T_> -struct B -{ - T_ f(); -}; - -extern template class B<int>; - -void f() -{ - B<int> t; - t.f(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg1.C deleted file mode 100644 index 25192ad86..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg1.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/37766 -// { dg-options -std=c++0x } - -int a = 1; -template<int& b = a> void f() { - f<>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg2.C deleted file mode 100644 index d94843c1f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg2.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/46831 -// { dg-options -std=c++0x } - -struct B { }; -struct D : B { }; -struct A { - template<typename T = void> operator D&(); // { dg-message "template conversion" } - operator long(); -}; - -void f(long); -void f(B&); - -struct A2 { - template<typename T = void> operator B&(); -}; - -void f2(const B&); - -int main() { - f(A()); - f2(A2()); - f2(A()); // { dg-error "" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg3.C deleted file mode 100644 index 8e9b76fe0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg3.C +++ /dev/null @@ -1,26 +0,0 @@ -// { dg-do compile { target c++11 } } - -template <class T, class = typename T::I> void f(T) {} -template <class T, class = typename T::I> void g(T) {} -template <class T, class = typename T::I> void h(T) {} -template <class T, class = typename T::I> void i(T) {} -template <class T, class = typename T::I> void j(T) {} // { dg-error "this context" } - -class A -{ - typedef int I; // { dg-error "private" } - template <class T, class> friend void f(T); - friend void g<A,I>(A); - friend void h<A>(A); - friend void i<>(A); -}; - -int main() -{ - A a; - f(a); - g(a); - h(a); - i(a); - j(a); // { dg-error "no match" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg4.C deleted file mode 100644 index 0248b6059..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg4.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/55724 -// { dg-options -std=c++11 } - -template<int N> struct S {}; -template<typename T = int, T N> void f(S<N>) {} -int main() { S<1> s; f(s); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum1.C deleted file mode 100644 index 2817ae595..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum1.C +++ /dev/null @@ -1,45 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// opaque enum declarations -enum class E1; -enum class E2 : int; -enum class E3 : short; -enum E4 : int; -enum E5 : short; - -// can be repeated -enum class E1; -enum class E2 : int; -enum class E3 : short; -enum E4 : int; -enum E5 : short; - -// are complete so we can declare variables -E1 b1; -E2 b2; -E3 b3; -E4 b4; -E5 b5; - -//even with elaborated-type-specifiers -enum E1 a1; -enum E2 a2; -enum E3 a3; -enum E4 a4; -enum E5 a5; - -// and the list can be added later -enum class E1 { e11, e12 }; -enum class E2 : int { e21, e22 }; -enum class E3 : short {e31, e32 }; -enum E4 : int { e41, e42 }; -enum E5 : short { e51, e52 }; - -// more repetitions allowed -enum class E1; -enum class E2 : int; -enum class E3 : short; -enum E4 : int; -enum E5 : short; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum10.C deleted file mode 100644 index a57c0a9f4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum10.C +++ /dev/null @@ -1,31 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -//This error is diagnosed at instantiation time -template<typename T> struct S1 -{ - enum E : T; // { dg-error "previous definition" } - enum E : int; // { dg-error "different underlying type" } -}; -template struct S1<short>; // { dg-message "required from here" } - -template<typename T> struct S2 -{ - enum E : T; - enum E : T; -}; -template struct S2<short>; - -template<typename T1, typename T2> struct S3 -{ - enum E : T1; - enum E : T2; -}; -template struct S3<short,short>; - -template<typename T1, typename T2> struct S4 -{ - enum E : T1; // { dg-error "previous definition" } - enum E : T2; // { dg-error "different underlying type" } -}; -template struct S4<short,char>; // { dg-message "required from here" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum11.C deleted file mode 100644 index 8cabc038f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum11.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-do compile { target c++11 } } - -enum { A = 1 }; -struct T -{ - int i1, i2, i3, i4, i5, i6, i7; - enum E2 : int; - - void f(); -}; - -enum T::E2 : int { A1 = A, A2 = 23 }; - -static_assert(int(T::A1) == 1, "error"); -static_assert(int(T::A2) == 23, "error"); - -void T::f() -{ - static_assert(int(T::A1) == 1, "error"); - static_assert(int(T::A2) == 23, "error"); - static_assert(int(A1) == 1, "error"); - static_assert(int(A2) == 23, "error"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum2.C deleted file mode 100644 index b6ad87148..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum2.C +++ /dev/null @@ -1,44 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -struct S1 -{ - struct S2 - { - // opaque enum declarations - enum class E1; - enum class E2 : int; - enum class E3 : short; - enum E4 : int; - enum E5 : short; - - // can be repeated - enum class E1; - enum class E2 : int; - enum class E3 : short; - enum E4 : int; - enum E5 : short; - }; -}; - -// are complete so we can declare variables -S1::S2::E1 b1; -S1::S2::E2 b2; -S1::S2::E3 b3; -S1::S2::E4 b4; -S1::S2::E5 b5; - -//even with elaborated-type-specifiers -enum S1::S2::E1 a1; -enum S1::S2::E2 a2; -enum S1::S2::E3 a3; -enum S1::S2::E4 a4; -enum S1::S2::E5 a5; - -// and the list can be added later -enum class S1::S2::E1 { e11, e12 }; -enum class S1::S2::E2 : int { e21, e22 }; -enum class S1::S2::E3 : short {e31, e32 }; -enum S1::S2::E4 : int { e41, e42 }; -enum S1::S2::E5 : short { e51, e52 }; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum3.C deleted file mode 100644 index 4a7e9f98d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum3.C +++ /dev/null @@ -1,44 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -namespace S1 -{ - namespace S2 - { - // opaque enum declarations - enum class E1; - enum class E2 : int; - enum class E3 : short; - enum E4 : int; - enum E5 : short; - - // can be repeated - enum class E1; - enum class E2 : int; - enum class E3 : short; - enum E4 : int; - enum E5 : short; - } -} - -// are complete so we can declare variables -S1::S2::E1 b1; -S1::S2::E2 b2; -S1::S2::E3 b3; -S1::S2::E4 b4; -S1::S2::E5 b5; - -//even with elaborated-type-specifiers -enum S1::S2::E1 a1; -enum S1::S2::E2 a2; -enum S1::S2::E3 a3; -enum S1::S2::E4 a4; -enum S1::S2::E5 a5; - -// and the list can be added later -enum class S1::S2::E1 { e11, e12 }; -enum class S1::S2::E2 : int { e21, e22 }; -enum class S1::S2::E3 : short {e31, e32 }; -enum S1::S2::E4 : int { e41, e42 }; -enum S1::S2::E5 : short { e51, e52 }; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum4.C deleted file mode 100644 index 0fcc3bde0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum4.C +++ /dev/null @@ -1,45 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<typename T> struct S1 -{ - struct S2 - { - // opaque enum declarations - enum class E1; - enum class E2 : T; - enum class E3 : short; - enum E4 : T; - enum E5 : short; - - // can be repeated - enum class E1; - enum class E2 : T; - enum class E3 : short; - enum E4 : T; - enum E5 : short; - }; - - // are complete so we can declare variables - typename S2::E1 b1; - typename S2::E2 b2; - typename S2::E3 b3; - typename S2::E4 b4; - typename S2::E5 b5; - - //even with elaborated-type-specifiers - enum S1::S2::E1 a1; - enum S1::S2::E2 a2; - enum S1::S2::E3 a3; - enum S1::S2::E4 a4; - enum S1::S2::E5 a5; - - // and the list can be added later - enum class S1::S2::E1 { e11, e12 }; - enum class S1::S2::E2 : T { e21, e22 }; - enum class S1::S2::E3 : short {e31, e32 }; - enum S1::S2::E4 : T { e41, e42 }; - enum S1::S2::E5 : short { e51, e52 }; -}; - -template struct S1<int>; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum5.C deleted file mode 100644 index a2edfa763..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum5.C +++ /dev/null @@ -1,63 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -namespace one -{ - struct S - { - enum { A = 1, B = 2 }; - struct T - { - enum { B = 102 }; - - enum class E1; - enum E2 : int; - }; - }; - - enum class S::T::E1 { A1 = A, B1 = B, C1 }; - enum S::T::E2 : int { A1 = A, B1 = B, C1 }; - - static_assert(int(S::T::E1::A1) == 1, "error"); - static_assert(int(S::T::E1::B1) == 102, "error"); - static_assert(int(S::T::E1::C1) == 103, "error"); - - static_assert(int(S::T::E2::A1) == 1, "error"); - static_assert(int(S::T::E2::B1) == 102, "error"); - static_assert(int(S::T::E2::C1) == 103, "error"); - static_assert(int(S::T::A1) == 1, "error"); - static_assert(int(S::T::B1) == 102, "error"); - static_assert(int(S::T::C1) == 103, "error"); -} - - -namespace two -{ - namespace S - { - enum { A = 1, B = 2 }; - namespace T - { - enum { B = 102 }; - - enum class E1; - enum E2 : int; - } - } - - enum class S::T::E1 { A1 = A, B1 = B, C1 }; - enum S::T::E2 : int { A1 = A, B1 = B, C1 }; - - static_assert(int(S::T::E1::A1) == 1, "error"); - static_assert(int(S::T::E1::B1) == 102, "error"); - static_assert(int(S::T::E1::C1) == 103, "error"); - - static_assert(int(S::T::E2::A1) == 1, "error"); - static_assert(int(S::T::E2::B1) == 102, "error"); - static_assert(int(S::T::E2::C1) == 103, "error"); - static_assert(int(S::T::A1) == 1, "error"); - static_assert(int(S::T::B1) == 102, "error"); - static_assert(int(S::T::C1) == 103, "error"); -} - - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum6.C deleted file mode 100644 index 51ef6e43e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum6.C +++ /dev/null @@ -1,74 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -enum class E1 : int; // { dg-error "previous definition" } -enum E1 : int; // { dg-error "scoped/unscoped mismatch" } - -enum E2 : int; // { dg-error "previous definition" } -enum class E2 : int; // { dg-error "scoped/unscoped mismatch" } - -enum struct E3 : int; -enum class E3 : int; //ok - -enum class E4 : int; // { dg-error "previous definition" } -enum class E4 : long; // { dg-error "different underlying type" } - -enum E5 : int; // { dg-error "previous definition" } -enum E5 : long; // { dg-error "different underlying type" } - -enum E6 : int; -enum E6 : int; //ok - -enum class E7; -enum class E7 : int; //ok - -enum class E3 e3; // { dg-warning "scoped enum must not use" } -enum struct E3 e4; // { dg-warning "scoped enum must not use" } -enum E5 : int e5; // { dg-error "expected|invalid type" } - -enum E6 : int { a, b, c }; // { dg-error "previous definition" } -enum E6 : int { a, b, c }; // { dg-error "multiple definition" } - -enum class E7 { }; // { dg-error "previous definition" } -enum class E7 { a, b, c }; // { dg-error "multiple definition" } - -namespace N1 -{ - struct D; - enum class E6; - enum E7 : int; -} - -enum class N1::E6; // { dg-error "must use a simple identifier" } -enum N1::E6 e6_1; //ok -enum ::N1::E6 e6_2; //ok - -namespace N2 -{ - enum class N1::E6 { e1, e2, e3 }; // { dg-error "does not enclose" } - enum N1::E7 : int { e1, e2, e3 }; // { dg-error "does not enclose" } -}; - -enum class N1::E6 { e1, e2, e3 }; -enum N1::E7 : int { e1, e2, e3 }; - -struct S1 -{ - struct D; - enum class E6; - enum E7 : int; -}; - -enum class S1::E6; // { dg-error "must use a simple identifier" } -enum S1::E6 e6_3; //ok -enum ::S1::E6 e6_4; //ok - -struct S2 -{ - enum class S1::E6 { e1, e2, e3 }; // { dg-error "does not enclose" } - enum S1::E7 : int { e1, e2, e3 }; // { dg-error "does not enclose" } -}; - -enum class S1::E6 { e1, e2, e3 }; -enum S1::E7 : int { e1, e2, e3 }; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum7.C deleted file mode 100644 index 62e445c70..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum7.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<typename T> struct S1 -{ - enum E1 : int; - enum E1 : T; - enum class E2 : int; - enum class E2 : T; -}; - -template<typename T> enum S1<T>::E1 : int { e1 }; -template<typename T> enum class S1<T>::E2 : T { e2 }; - -S1<int>::E1 x1 = S1<int>::e1; -S1<int>::E1 x11 = S1<int>::E1::e1; -S1<int>::E2 x2 = S1<int>::E2::e2; - -enum S1<int>::E1 ex1 = S1<int>::e1; -enum S1<int>::E1 ex11 = S1<int>::E1::e1; -enum S1<int>::E2 ex2 = S1<int>::E2::e2; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum8.C deleted file mode 100644 index 69e73119e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum8.C +++ /dev/null @@ -1,26 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -//This instatiation is ok -template<typename T> struct S1 -{ - enum E : int; - enum E : T; -}; -template struct S1<int>; //ok - -//This error is diagnosed at instantiation time -template<typename T> struct S2 -{ - enum E : int; // { dg-error "previous definition" } - enum E : T; // { dg-error "different underlying type" } -}; -template struct S2<short>; // { dg-message "required from here" } - -//This error is diagnosed at compilation time -template<typename T> struct S3 -{ - enum E : int; // { dg-error "previous definition" } - enum E : short; // { dg-error "different underlying type" } -}; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum9.C deleted file mode 100644 index da8cde27b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/forw_enum9.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<typename T> struct S1 -{ - enum E1 : int; - enum class E2 : int; -}; - -template<typename T> enum S1<T>::E1 : int { e1 }; -template<typename T> enum class S1<T>::E2 : T { e2 }; - -template<> enum S1<int>::E1 : int { i1 }; -template<> enum class S1<int>::E2 : int { i2 }; - -S1<char>::E1 xci = S1<char>::e1; -S1<int>::E1 xi1 = S1<int>::i1; - -S1<char>::E2 xc2 = S1<char>::E2::e2; -S1<int>::E2 xi2 = S1<int>::E2::i2; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/friend1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/friend1.C deleted file mode 100644 index 2cf4c3c71..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/friend1.C +++ /dev/null @@ -1,22 +0,0 @@ -// From N1791 -// { dg-options -std=c++0x } - -class C; -typedef C Ct; -class X1 { - friend C; // OK: class C is a friend -}; - -class X2 -{ - friend Ct; // OK: class C is a friend - friend D; // { dg-error "" } no type-name D in scope - friend class D; // OK: elaborated-type-specifier declares new class -}; - -template <typename T> class R { - friend T; -}; - -R<C> rc; // class C is a friend of R<C> -R<int> Ri; // OK: "friend int;" is ignored diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/friend2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/friend2.C deleted file mode 100644 index 39276a05a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/friend2.C +++ /dev/null @@ -1,40 +0,0 @@ -// PR c++/47721 -// { dg-options -std=c++0x } - -// template type parameter friend: - -template<class W> -class Q -{ - static const int I = 2; -public: - friend W; -}; - -struct B -{ - int ar[Q<B>::I]; -}; - -// bonus template template parameter friend: - -template <class T> struct A; - -template<template <class> class W> -class P -{ - static const int I = 2; -public: - // I'm not sure this is well-formed, but I can't find anything - // that says otherwise. - template <class T> friend class W; -}; - -template <class T> -struct A -{ - int ar[P<A>::I]; -}; - -A<int> a; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-1.C deleted file mode 100644 index a55698c93..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-1.C +++ /dev/null @@ -1,3 +0,0 @@ -// { dg-do compile { target c++11 } } - -int **** [[gnu::format(printf, 1, 2)]] foo(const char *, ...); // { dg-warning "ignored" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-10.C deleted file mode 100644 index cac568e0b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-10.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/12795 -// { dg-do compile { target c++11 } } -// { dg-require-alias "" } - -void foo() -{ - extern void bar [[gnu::__alias__ ("BAR")]] (); // { dg-warning "ignored" } - bar (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-11.C deleted file mode 100644 index 504b45656..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-11.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-do compile { target c++11 } } -// PR c++/13791 - -template <typename T> struct O { - struct [[gnu::packed]] I { - int i; - char c; - }; - - I* foo(); -}; - -template <typename T> -typename O<T>::I* -O<T>::foo() { return 0; } - -template class O<int>; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-12.C deleted file mode 100644 index 504b45656..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-12.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-do compile { target c++11 } } -// PR c++/13791 - -template <typename T> struct O { - struct [[gnu::packed]] I { - int i; - char c; - }; - - I* foo(); -}; - -template <typename T> -typename O<T>::I* -O<T>::foo() { return 0; } - -template class O<int>; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-13.C deleted file mode 100644 index a1b4a84b7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-13.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-do compile { target c++11 } } -// PR c++/13854 - -extern char *rindex [[gnu::__pure__]] (__const char *__s, int __c) throw (); -extern char *rindex [[gnu::__pure__]] (__const char *__s, int __c) throw (); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-14.C deleted file mode 100644 index d646d274d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-14.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-do compile { target c++11 } } -// PR c++/13170 -// The bogus attribute is ignored, but was in TYPE_ATTRIBUTES during -// parsing of the class, causing some variants to have it and some not. - -struct [[gnu::bogus]] A // { dg-warning "ignored" "" } -{ - virtual ~A(); - void foo(const A&); - void bar(const A&); -}; - -void A::foo(const A&) {} -void A::bar(const A& a) { foo(a); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-15.C deleted file mode 100644 index bf05dbeb3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-15.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-do compile { target c++11 } } -// PR c++/15317 - -struct A -{ - A(char); -}; -A::A([[gnu::unused]] char i2) -{} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-16.C deleted file mode 100644 index 4adefdb32..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-16.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-do compile { target c++11 } } -// Origin: <rguenth at tat dot physik dot uni-tuebingen dot de> -// PR c++/10479: use of non dependent expressions in attributes in templates - -template <int i> -struct foo2 { - float bar [[gnu::aligned(alignof(double))]]; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-17.2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-17.2.C deleted file mode 100644 index 636f9a9ac..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-17.2.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-do compile { target c++11 } } -// Origin: Benjamin Kosnik <bkoz at gcc dot gnu dot org> -// PR c++/17743: Attributes applied to typedefs. - -struct A { - typedef char layout_type[sizeof(double)] - [[gnu::aligned(alignof(double)]]); // { dg-error "expected" } - layout_type data; -}; - -struct B { - typedef char layout_type[sizeof(double)]; - layout_type data [[gnu::aligned(alignof(double))]]; -}; - -template<bool> struct StaticAssert; -template<> struct StaticAssert<true> {}; - -StaticAssert<alignof(A) == alignof(B)> a1;// { dg-error "incomplete type and cannot be defined" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-17.C deleted file mode 100644 index 566461b0e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-17.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-do compile { target c++11 } } -// Origin: Benjamin Kosnik <bkoz at gcc dot gnu dot org> -// PR c++/17743: Attributes applied to typedefs. - -struct A { - typedef char layout_type[sizeof(double)] - [[gnu::aligned(alignof(double))]]; - layout_type data; -}; - -struct B { - typedef char layout_type[sizeof(double)]; - layout_type data [[gnu::aligned(alignof(double))]]; -}; - -template<bool> struct StaticAssert; -template<> struct StaticAssert<true> {}; - -StaticAssert<alignof(A) == alignof(B)> a1; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-18.C deleted file mode 100644 index 3df13e644..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-18.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/17542 -// Test that we warn when an attribute preceding the class-key is ignored. -// { dg-do compile { target c++11 } } - -[[gnu::packed]] struct A // { dg-warning "attribute" } -{ - char c; - int x; - void f(); -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-19.C deleted file mode 100644 index 5ac93d845..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-19.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/19739 -// { dg-do compile { target c++11 } } - -void Dummy() [[ , ]]; -void Dummy() {} - -int main (int argc, char **argv) -{ - Dummy(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-2-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-2-1.C deleted file mode 100644 index 2f47b3255..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-2-1.C +++ /dev/null @@ -1,3 +0,0 @@ -// { dg-do compile { target c++11 } } - -struct [[gnu::unused]] A {}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-2.C deleted file mode 100644 index 8c777c1df..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-2.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-do compile { target c++11 } } - -struct [[gnu::packed]] A -{ - void f () const; -}; - -void -A::f () const -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-20.C deleted file mode 100644 index f989ab207..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-20.C +++ /dev/null @@ -1,22 +0,0 @@ -// { dg-do compile { target c++11 } } -// { dg-options "-g" } -// Origin: <jan at etpmod dot phys dot tue dot nl> -// PR c++/19508: avoid attributes for template parameters - -template <typename T> -struct BVector -{ - typedef T T2; - typedef T value_type [[gnu::aligned(8)]]; // { dg-bogus "attribute" "attribute" } - typedef T2 value_type2 [[gnu::aligned(8)]]; // { dg-bogus "attribute" "attribute" } - value_type v; -}; -BVector<int> m; - -template <template <class> class T> -struct BV2 -{ - typedef T<float> value_type [[gnu::aligned(8)]]; // { dg-bogus "attribute" "attribute" } - value_type v; -}; -BV2<BVector> m2; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-21.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-21.C deleted file mode 100644 index 2d5ad04b0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-21.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/20763 -// { dg-do compile { target c++11 } } - -typedef void *voidp; - -struct S -{ - char a; - voidp b [[gnu::aligned (16)]]; -}; - -struct T -{ - char a; - void * b [[gnu::aligned (16)]]; -}; - -static_assert (sizeof (S) == sizeof (T), - "struct S and T should have the same size"); - -static_assert (sizeof (S) == 32, "sizeof (S) == 8 + 16 + 8"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-22.C deleted file mode 100644 index 4c07df995..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-22.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/27648 -// { dg-do compile { target c++11 } } - -void f() -{ - static_cast<float *[[gnu::unused]]>(0); // { dg-warning "ignored" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-23.C deleted file mode 100644 index 57ea6b809..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-23.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/28112 -// { dg-do compile { target c++11 } } - -int i [[gnu::init_priority(;)]]; // { dg-error "before" } -int j [[gnu::vector_size(;)]]; // { dg-error "before" } -int k [[gnu::visibility(;)]]; // { dg-error "before" } -struct A {} [[gnu::aligned(;)]]; // { dg-error "before" } -struct B {} [[gnu::mode(;)]]; // { dg-error "before" } -void foo() [[gnu::alias(;)]]; // { dg-error "before" } -void bar() [[gnu::nonnull(;)]]; // { dg-error "before" } -void baz() [[gnu::section(;)]]; // { dg-error "before" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-24.C deleted file mode 100644 index e1f26c3d3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-24.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/28387 -// { dg-do compile { target c++11 } } - -enum [[gnu::unused]] E; // { dg-error "without previous declaration" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-25.C deleted file mode 100644 index 09486d66b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-25.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/28559 -// { dg-do compile { target c++11 } } - -template<typename T> struct A -{ - struct B; -}; - -struct C -{ - template<typename T> friend struct [[gnu::packed]] A<T>::B; // { dg-warning "uninstantiated" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-26.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-26.C deleted file mode 100644 index 00069b8f5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-26.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/28659 -// The attribute was causing us to get confused in merge_types when -// combining the template type with an uninstantiated version. -// { dg-do compile { target c++11 } } - -template<class T> -struct [[gnu::aligned(1)]] A -{ - A& operator=(const A &t); -}; - -template<class T> -A<T>& A<T>::operator=(const A<T> &t) -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-27.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-27.C deleted file mode 100644 index e38d8d3f6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-27.C +++ /dev/null @@ -1,6 +0,0 @@ -//PR c++/29980 -// { dg-do compile { target c++11 } } - -struct A { typedef int X; }; // { dg-message "previous declaration" } - -struct [[gnu::unused]] A::X; // { dg-error "typedef-name" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-28.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-28.C deleted file mode 100644 index 94f1756ae..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-28.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/28558 -// { dg-options "" } -// { dg-do compile { target c++11 } } - -struct A -{ - A(int) { } -}; - -int main() -{ - A a = (A [[gnu::unused]])0; // { dg-warning "attribute" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-29.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-29.C deleted file mode 100644 index f3da45229..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-29.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/33506 -// { dg-do compile { target c++11 } } - -extern int f1 [[gnu::warn_unused_result]] (char *) ; -extern int f2 [[gnu::warn_unused_result]] (char *) throw () ; -extern int f2 (char *) throw (); - -extern int f3 [[gnu::nonnull (1)]] (char *) ; -extern int f4 [[gnu::nonnull (1)]] (char *) throw (); -extern int f4 (char *) throw (); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-3.C deleted file mode 100644 index edd106726..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-3.C +++ /dev/null @@ -1,22 +0,0 @@ -// Test that attributes work in a variety of situations. -// { dg-options "-O -ftrack-macro-expansion=0" } -// { dg-do run { target c++11 } } - -#define attrib [[gnu::mode (QI)]] -#define gnu_attrib __attribute((mode (QI))) - -attrib signed int a; -static unsigned int b attrib; - -int foo(attrib int o) -{ - return (sizeof (a) != 1 - || sizeof (b) != 1 - || sizeof (o) != 1 - || sizeof ((gnu_attrib signed int) b) != 1); -} - -int main () -{ - return foo (42); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-30.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-30.C deleted file mode 100644 index 537dec50e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-30.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-do compile { target c++11 } } -// PR c++/35074 - -template<typename T> struct A -{ - void foo() const; -} [[gnu::aligned(4)]]; // { dg-warning "ignored" } - -template<typename T> void A<T>::foo() const {} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-31.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-31.C deleted file mode 100644 index ab58e6e2b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-31.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/35097 -// { dg-do compile { target c++11 } } - -template<int> struct A; - -template<> struct A<0> -{ - typedef int X [[gnu::aligned(4)]]; -}; - -template<typename T> void foo(const A<0>::X&, T); - -void bar() -{ - foo(A<0>::X(), 0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-32.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-32.C deleted file mode 100644 index f34466117..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-32.C +++ /dev/null @@ -1,37 +0,0 @@ -// PR c++/35315 -// { dg-do compile { target c++11 } } - -typedef union { int i; } U [[gnu::transparent_union]]; // { dg-warning "ignored" } - -static void foo(U) {} -static void foo(int) {} - -void bar() -{ - foo(0); -} - -typedef union U1 { int i; } U2 [[gnu::transparent_union]]; // { dg-warning "ignored" } - -static void foo2(U1) {} // { dg-error "previously defined" } -static void foo2(U2) {} // { dg-error "redefinition" } - -void bar2(U1 u1, U2 u2) -{ - foo2(u1); - foo2(u2); -} - -// PR c++/36410 -struct A -{ - typedef union [[gnu::transparent_union]] - { - int i; - } B; -}; - -void foo(A::B b) -{ - b.i; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-33.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-33.C deleted file mode 100644 index efb2a1ad6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-33.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/35546 -// { dg-do compile { target c++11 } } -// { dg-options "-g" } - -template <int N> -struct T -{ - void foo [[gnu::format (printf,2,3)]] (char const * ...); -}; - -template struct T<3>; - -template <typename T> -struct U -{ - typedef T V [[gnu::mode (SI)]]; -}; - -U<int>::V v; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-34.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-34.C deleted file mode 100644 index ae8e99090..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-34.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c/37171 -// { dg-do compile { target c++11 } } -// { dg-options "-O2 -fdump-tree-optimized" } - -unsigned int f1 [[gnu::const]] (); -unsigned int f2 [[gnu::__const]] () ; -unsigned int f3 [[gnu::__const__]] () ; - -unsigned int f4 () -{ - return f1 () + f1 () + f1 () + f1 () - + f2 () + f2 () + f2 () + f2 () - + f3 () + f3 () + f3 () + f3 (); -} - -// { dg-final { scan-tree-dump-times "= f1 \\(\\)" 1 "optimized" } } -// { dg-final { scan-tree-dump-times "= f2 \\(\\)" 1 "optimized" } } -// { dg-final { scan-tree-dump-times "= f3 \\(\\)" 1 "optimized" } } -// { dg-final { cleanup-tree-dump "optimized" } } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-35.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-35.C deleted file mode 100644 index 34f20cf30..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-35.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-do compile { target i?86-*-* x86_64-*-* } } -// { dg-options "-O3 -msse2 -std=c++11" } -// { dg-require-effective-target sse2 } - -// You can make NON-template typedefs with a large alignment. -typedef double AlignedDoubleType [[gnu::aligned(16)]]; - -template <typename RealType> -RealType f(const RealType* p) -{ - // But if you use a template parameter it complains. - typedef RealType AlignedRealType [[gnu::aligned(16)]]; - - return p[0]; -} - -double f2(const double* p) -{ - return f<double>(p); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-36-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-36-1.C deleted file mode 100644 index 2aae9cae0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-36-1.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-do compile { target c++11 } } - -struct S; - -typedef int (*F [[gnu::warn_unused_result]]) (int); - -typedef int (*F2 [[gnu::warn_unused_result]]) (int); - -typedef int (S::*F3 [[gnu::warn_unused_result]]) (int); // { dg-warning "only applies to function types" } - -typedef int [[gnu::warn_unused_result]] (*F5) (int); // { dg-warning "ignored" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-36.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-36.C deleted file mode 100644 index 0a28354f5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-36.C +++ /dev/null @@ -1,25 +0,0 @@ -// PR c++/43031 -// { dg-options "-std=c++11 -pedantic" } -// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } } - -// c++11 attributes that apply to types are ignored for now - -class T; -class L { }; -class P : public L -{ - typedef void (T::* [[gnu::__stdcall__]] F2) (L*); // { dg-warning "ignored" } - typedef void (T::*F) (L*) [[gnu::__stdcall__]]; // { dg-warning "ignored" } - void f(bool aAdd); -}; - -class T -{ -public: - virtual void A(L *listener) [[gnu::__stdcall__]] = 0; // { dg-warning "ignored" } - virtual void R(L *listener) [[gnu::__stdcall__]] = 0; // { dg-warning "ignored" } -}; -void P::f(bool aAdd) -{ - F addRemoveEventListener = (aAdd ? &T::A : &T::R); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-37.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-37.C deleted file mode 100644 index 9b7694280..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-37.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/43093 -// { dg-options "-std=c++11 -pedantic" } -// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } } - -// c++11 attributes that apply to types are ignored for now - -struct S { - int x; - S(const S &s) {} -}; - -S getS() [[gnu::__stdcall__]]; // { dg-warning "ignored" } - -void test() -{ - S s = getS(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-38.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-38.C deleted file mode 100644 index 3db981aeb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-38.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-do compile { target c++11 } } -// PR c++/36625 - -template <int N> -struct A { - struct S { short f[3]; } [[gnu::aligned (N)]]; // { dg-warning "ignored" } -}; - -int main () -{ - A<4>::S s; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-39-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-39-1.C deleted file mode 100644 index 453fc01a2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-39-1.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-do compile { target c++11 } } - -int fragile_block(void) { - typedef - [[gnu::aligned (16)]] // { dg-warning "ignored" } - struct { - int i; - } XmmUint16; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-39.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-39.C deleted file mode 100644 index 83fa8b5e6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-39.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR debug/43370 -// { dg-do compile { target c++11 } } -// { dg-options "-g" } - -int fragile_block(void) { - typedef struct [[gnu::aligned (16)]] { - int i; - } XmmUint16; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-4.C deleted file mode 100644 index dff46b4af..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-4.C +++ /dev/null @@ -1,30 +0,0 @@ -// { dg-options "-std=c++11 -Wunused -pedantic-errors" } -// { dg-do compile } -// Test for syntax support of various attribute permutations. - -int -[[noreturn]] // { dg-warning "ignored" } -one -[[gnu::unused]] -(void); - -int one_third [[noreturn]] [[gnu::unused]] (void); - -int [[gnu::unused]] one_half(); // { dg-warning "ignored" } - -static -[[noreturn]] // { dg-warning "ignored" } -void two [[gnu::unused]] (void) {} - - - -[[gnu::unused]] -int -five(void) -[[noreturn]] // { dg-warning "ignored" } -{} - -[[noreturn]] -void -six (void) -; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-40.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-40.C deleted file mode 100644 index f3ccb727d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-40.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/46803 -// { dg-do compile { target c++11 } } - -int strftime(char *, int, const char *, const struct tm *) - [[gnu::__bounded__(__string__,1,2)]]; // { dg-warning "ignored" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-41.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-41.C deleted file mode 100644 index 6e47a1e3d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-41.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/45267 -// { dg-do compile { target c++11 } } -// { dg-options "-O" } - -template<typename T> struct Vector { - Vector(long long x); - inline Vector<T> operator<< [[gnu::always_inline]] (int x) const; -}; -long long bar (long long); -template<> inline Vector<int> Vector<int>::operator<<(int x) const { - return bar(x); -} -bool b; -int main() { - Vector<int> a(1); - if ((a << 2), b) { - a << 2; - throw 1; - } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-42.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-42.C deleted file mode 100644 index 7df63cf67..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-42.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=c++11 -pedantic" } -// { dg-do compile { target { i?86-*-* && ilp32 } } } - -struct A { - [[gnu::fastcall]] - void f(); -}; - -int main() -{ - typedef void (A::*FP)(); - FP fp[] = {&A::f}; // { dg-error "cannot convert" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-43.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-43.C deleted file mode 100644 index c85062272..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-43.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-do compile { target c++11 } } -template <class T> struct A { }; - -template [[gnu::packed]] struct A<int>; // { dg-warning "ignored in explicit instantiation" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-44.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-44.C deleted file mode 100644 index 81d70e52b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-44.C +++ /dev/null @@ -1,3 +0,0 @@ -// PR c++/52671 -// { dg-do compile { target c++11 } } -[[gnu::deprecated]] enum E { E0 }; // { dg-warning "ignored in declaration" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-45.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-45.C deleted file mode 100644 index 573a1ab6c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-45.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/52906 -// { dg-do compile { target c++11 } } - -[[gnu::deprecated]]; // { dg-error "does not declare anything" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-46.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-46.C deleted file mode 100644 index 53fcb77ff..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-46.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/40821 -// { dg-do compile { target c++11 } } - -struct [[gnu::aligned(8)] S1 { int i; }; // { dg-error "" } -struct [aligned(8) S2 { int i; }; // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-47-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-47-1.C deleted file mode 100644 index 4a5d73a19..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-47-1.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-do compile { target c++11 } } -int -foo () -{ - int i [[and, bitor, xor_eq, compl, bitand]]; // { dg-warning "ignored" } - i = 0; - return i; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-47.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-47.C deleted file mode 100644 index af74abd18..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-47.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-do compile { target c++11 } } -// Example taken from dcl.attr.grammar: - -int p[10]; -void f() -{ - int x = 42, y[5]; - /* Here, the '[[' should have introduced an attribute, on a - lambda invocation an array subscripting expression. */ - int(p[[x] { return x; }()]); // { dg-error "expected|consecutive" } - /* Likewise, the '[[gnu::' is invalid here. */ - y[[] { return 2; }()] = 2; // { dg-error "expected|consecutive" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-48-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-48-2.C deleted file mode 100644 index 3cc58976b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-48-2.C +++ /dev/null @@ -1,4 +0,0 @@ -// Origin: PR c++/54955 -// { dg-do compile { target c++11 } } - -alignas(double) int f; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-48.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-48.C deleted file mode 100644 index 360c093bf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-48.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-do compile { target c++11 } } - -typedef char layout_type; - -struct A { - layout_type member alignas (double); -}; - -static_assert (alignof (A) == alignof (double), - "alignment of struct A must be alignof (double)"); - -struct alignas (alignof (long double)) B { - layout_type member; -}; - -static_assert (alignof (B) == alignof (long double), - "alignment of struct A must be alignof (double double)"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-49.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-49.C deleted file mode 100644 index 8b68f9273..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-49.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-do compile { target c++11 } } - -typedef char layout_type; - -template<class> struct A { - layout_type member alignas (double); -}; - -static_assert (alignof (A<int>) == alignof (double), - "alignment of struct A must be alignof (double)"); - -template<class> struct alignas (alignof (long double)) B { - layout_type member; -}; - -static_assert (alignof (B<int>) == alignof (long double), - "alignment of struct A must be alignof (double double)"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-5.C deleted file mode 100644 index 83de121df..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-5.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-do compile { target c++11 } } -// -// There were two related problems here, depending on the vintage. At -// one time: -// -// typedef struct A { ... } A [[gnu::aligned (16)]]; -// -// would cause original_types to go into an infinite loop. At other -// times, the attributes applied to an explicit typedef would be lost -// (check_b3 would have a negative size). - -// First check that the declaration is accepted and has an effect. -typedef struct A { int i; } A [[gnu::aligned (16)]]; -int check_A[alignof (A) >= 16 ? 1 : -1]; - -// Check that the alignment is only applied to the typedef. -struct B { int i; }; -struct B b1; -typedef struct B B [[gnu::aligned (16)]]; -struct B b2; -B b3; -int check_b1[__alignof__ (b1) == __alignof__ (b2) ? 1 : -1]; -int check_b3[__alignof__ (b3) >= 16 ? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-50.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-50.C deleted file mode 100644 index 2479dfdf1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-50.C +++ /dev/null @@ -1,22 +0,0 @@ -// { dg-do compile { target c++11 } } - -typedef char layout_type; - -template<class> struct A { - layout_type member alignas (double) alignas (int); -}; - -// Here, the spec says that A<int> should have the stricter alignment, -// so that would be the alignment of 'double', not 'int'. -static_assert (alignof (A<int>) == alignof (double), - "alignment of struct A must be alignof (double)"); - -template<class> struct alignas (1) alignas (alignof (long double)) B { - layout_type member; -}; - -// Similarly, the B<int> should have the stricter alignment, so that would -// so that would be the alignment of 'long double', not '1'. -static_assert (alignof (B<int>) == alignof (long double), - "alignment of struct A must be alignof (double double)"); - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-51.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-51.C deleted file mode 100644 index f2b66029e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-51.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-do compile { target c++11 } } - -typedef char layout_type; -struct A -{ - layout_type member [[gnu::aligned (16)]]; -}; - -static_assert (sizeof (A) == 16, "Alignment should be 16"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-52.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-52.C deleted file mode 100644 index 0f87fd490..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-52.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-do compile { target c++11 } } - -struct A {int i;} a [[gnu::aligned(16)]]; -struct B {int i;} __attribute__((aligned(16))) b; - -int -main () -{ - A aa; - B bb; - - static_assert (sizeof (a) == 4, "sizeof (a) should be 4"); - static_assert (sizeof (b) == 16, "sizeof (b) should be 16"); - static_assert (sizeof (aa) == 4, "sizeof (aa) should be 4"); - static_assert (sizeof (bb) == 16, "sizeof (bb) should be 16"); - - static_assert (__alignof__ (a) == 16, "alignof (a) should be 16"); - static_assert (__alignof__ (b) == 16, "alignof (b) should be 16"); - static_assert (__alignof__ (aa) == 4, "alignof (aa) should be 4"); - static_assert (__alignof__ (bb) == 16, "alignof (bb) should be 16"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-53.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-53.C deleted file mode 100644 index 723c8ef8e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-53.C +++ /dev/null @@ -1,39 +0,0 @@ -// { dg-do compile { target c++11 } } - -int -toto () -{ - [[gnu::unused]] good: - return 0; -} - -int -foo () -{ - [[gnu::unused]] good: - int i = 0; - - // A C++11 attribute at the beginning of the return statement is - // syntactically correct, appertains to the return statement (not to - // the label) but is currently ignored by this implementation. - good_ignored : [[gnu::unused]] // { dg-warning "attributes at the beginning of statement are ignored" } - return i; -} - -int -bar () -{ - // A GNU attribute after the label appertains to the label. - good: __attribute__((unused)); - return 0; -} - -int -baz () -{ - // The c++ attribute after the label appertains to the (empty) - // statement. - bad: [[gnu::unused]]; // { dg-warning "attributes at the beginning of statement are ignored" } - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-54.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-54.C deleted file mode 100644 index 45aa8e475..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-54.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/56859 -// { dg-require-effective-target c++11 } - -template<unsigned size, unsigned alignment> -struct aligned_storage -{ - using type = struct { alignas(alignment) unsigned char data[size]; }; -}; - -#define SA(X) static_assert((X),#X) -SA(alignof(aligned_storage<8,1>::type) == 1); -SA(alignof(aligned_storage<8,2>::type) == 2); -SA(alignof(aligned_storage<8,4>::type) == 4); -SA(alignof(aligned_storage<8,8>::type) == 8); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-6.C deleted file mode 100644 index 54071d5ed..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-6.C +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (C) 2002 Free Software Foundation. -// -// Test that the nothrow attribute is working correctly. -// -// Written by Richard Henderson, 26 May 2002. - -// { dg-do link { target c++11} } -extern void foo [[gnu::nothrow]] (); -extern void link_error(); - -int main() -{ - try { - foo(); - } catch (...) { - link_error(); - } -} - -void foo() { } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-7.C deleted file mode 100644 index 334125068..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-7.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-do compile { target c++11 } } -// { dg-options "-Wunused-parameter" } - -void f (int i [[gnu::__unused__]]) {} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-8.C deleted file mode 100644 index aa1491aed..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-8.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=c++11 -pedantic" } -// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } } - -extern int * ([[gnu::stdcall]] *fooPtr)( void); // { dg-error "expected" } -int * [[gnu::stdcall]] myFn01( void) { return 0; }// { dg-warning "ignored" } - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-9.C deleted file mode 100644 index 3dc51eef9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gen-attrs-9.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-do compile { target c++11 } } - -class C; -struct S; -union U; -enum e {}; -enum [[gnu::unused]] e; // { dg-warning "already defined" } - -struct [[gnu::unused]] B *p; // { dg-warning "attributes" } - -template <class T> struct A { }; -struct [[gnu::unused]] A<int>; // { dg-warning "attributes" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gnu_fext-numeric-literals.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gnu_fext-numeric-literals.C deleted file mode 100644 index ad98db9f8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gnu_fext-numeric-literals.C +++ /dev/null @@ -1,115 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++11" } - -// Integer imaginary... - -constexpr unsigned long long -operator"" i(unsigned long long n) // { dg-warning "shadowed by implementation" } -{ return 4 * n + 0; } - -constexpr unsigned long long -operator"" I(unsigned long long n) // { dg-warning "shadowed by implementation" } -{ return 4 * n + 1; } - -constexpr unsigned long long -operator"" j(unsigned long long n) // { dg-warning "shadowed by implementation" } -{ return 4 * n + 2; } - -constexpr unsigned long long -operator"" J(unsigned long long n) // { dg-warning "shadowed by implementation" } -{ return 4 * n + 3; } - -// Floating-point imaginary... - -constexpr long double -operator"" i(long double n) // { dg-warning "shadowed by implementation" } -{ return 4.0L * n + 0.0L; } - -constexpr long double -operator"" I(long double n) // { dg-warning "shadowed by implementation" } -{ return 4.0L * n + 1.0L; } - -constexpr long double -operator"" j(long double n) // { dg-warning "shadowed by implementation" } -{ return 4.0L * n + 2.0L; } - -constexpr long double -operator"" J(long double n) // { dg-warning "shadowed by implementation" } -{ return 4.0L * n + 3.0L; } - -// Fixed-point... - -constexpr long double -operator"" k(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 1) + 0; } - -constexpr long double -operator"" K(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 1) + 1; } - -constexpr long double -operator"" r(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 1) + 2; } - -constexpr long double -operator"" R(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 1) + 3; } - -// Machine-defined... - -constexpr long double -operator"" w(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 2) + 0; } - -constexpr long double -operator"" W(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 2) + 1; } - -constexpr long double -operator"" q(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 2) + 2; } - -constexpr long double -operator"" Q(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 2) + 3; } - -int -main() -{ - auto ii = 1i; - auto Ii = 1I; - auto ji = 1j; - auto Ji = 1J; - - auto ifp = 1.0i; - auto Ifp = 1.0I; - auto jfp = 1.0j; - auto Jfp = 1.0J; - - auto kfp = 1.0k; // { dg-error "fixed-point types not supported" } - auto Kfp = 1.0K; // { dg-error "fixed-point types not supported" } - auto rfp = 1.0r; // { dg-error "fixed-point types not supported" } - auto Rfp = 1.0R; // { dg-error "fixed-point types not supported" } - - auto wfp = 1.0w; // { dg-error "unsupported" "" { target { ! has_w_floating_suffix } } } - auto Wfp = 1.0W; // { dg-error "unsupported" "" { target { ! has_w_floating_suffix } } } - auto qfp = 1.0q; // { dg-error "unsupported" "" { target { ! has_q_floating_suffix } } } - auto Qfp = 1.0Q; // { dg-error "unsupported" "" { target { ! has_q_floating_suffix } } } -} - -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 7 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 11 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 15 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 19 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 25 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 29 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 33 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 37 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 43 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 47 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 51 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 55 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 61 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 65 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 69 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 73 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gnu_fno-ext-numeric-literals.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gnu_fno-ext-numeric-literals.C deleted file mode 100644 index 94fd8fce2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/gnu_fno-ext-numeric-literals.C +++ /dev/null @@ -1,115 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=gnu++11 -fno-ext-numeric-literals" } - -// Integer imaginary... - -constexpr unsigned long long -operator"" i(unsigned long long n) -{ return 4 * n + 0; } - -constexpr unsigned long long -operator"" I(unsigned long long n) -{ return 4 * n + 1; } - -constexpr unsigned long long -operator"" j(unsigned long long n) -{ return 4 * n + 2; } - -constexpr unsigned long long -operator"" J(unsigned long long n) -{ return 4 * n + 3; } - -// Floating-point imaginary... - -constexpr long double -operator"" i(long double n) -{ return 4.0L * n + 0.0L; } - -constexpr long double -operator"" I(long double n) -{ return 4.0L * n + 1.0L; } - -constexpr long double -operator"" j(long double n) -{ return 4.0L * n + 2.0L; } - -constexpr long double -operator"" J(long double n) -{ return 4.0L * n + 3.0L; } - -// Fixed-point... - -constexpr long double -operator"" k(long double n) -{ return 4 * (n + 1) + 0; } - -constexpr long double -operator"" K(long double n) -{ return 4 * (n + 1) + 1; } - -constexpr long double -operator"" r(long double n) -{ return 4 * (n + 1) + 2; } - -constexpr long double -operator"" R(long double n) -{ return 4 * (n + 1) + 3; } - -// Machine-defined... - -constexpr long double -operator"" w(long double n) -{ return 4 * (n + 2) + 0; } - -constexpr long double -operator"" W(long double n) -{ return 4 * (n + 2) + 1; } - -constexpr long double -operator"" q(long double n) -{ return 4 * (n + 2) + 2; } - -constexpr long double -operator"" Q(long double n) -{ return 4 * (n + 2) + 3; } - -int -main() -{ - auto ii = 1i; - auto Ii = 1I; - auto ji = 1j; - auto Ji = 1J; - - auto ifp = 1.0i; - auto Ifp = 1.0I; - auto jfp = 1.0j; - auto Jfp = 1.0J; - - auto kfp = 1.0k; - auto Kfp = 1.0K; - auto rfp = 1.0r; - auto Rfp = 1.0R; - - auto wfp = 1.0w; - auto Wfp = 1.0W; - auto qfp = 1.0q; - auto Qfp = 1.0Q; -} - -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 7 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 11 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 15 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 19 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 25 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 29 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 33 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 37 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 43 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 47 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 51 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 55 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 61 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 65 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 69 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 73 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit-copy.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit-copy.C deleted file mode 100644 index c3f6b85e2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit-copy.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "--std=c++0x" } -struct S -{ - S(); -private: - S(S const &&); - S & operator=(S const &&); -}; - -void f() -{ - S a; - S b(a); // { dg-error "deleted" } - a = b; // { dg-error "deleted" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit-trivial1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit-trivial1.C deleted file mode 100644 index 64084c148..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit-trivial1.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/46807 -// { dg-options -std=c++0x } -// In C++98/03, B::B(const B&) is trivial because A::A(const A&) is trivial, -// even though doing overload resolution would mean calling the template -// constructor. In C++0x, we do overload resolution to determine triviality. - -struct A -{ - A() {} -private: - template <class T> A(T&); // { dg-error "private" } -}; - -struct B // { dg-error "implicitly deleted|this context" } -{ - mutable A a; -}; - -int main() -{ - B b; - B b2(b); // { dg-error "deleted" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit1.C deleted file mode 100644 index 2efbde6a9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit1.C +++ /dev/null @@ -1,26 +0,0 @@ -// Test for implicitly deleted destructors. -// { dg-options "-std=c++0x" } -// { dg-prune-output "default definition would be ill-formed" } -// { dg-prune-output "within this context" } - -class C -{ - void operator delete (void *); // { dg-error "private" } -public: - virtual ~C(); // { dg-error "overriding" } -}; - -struct D: C { }; // { dg-error "deleted" } -D d; // { dg-error "deleted" } - -struct E -{ - ~E() = delete; // { dg-error "declared here" } -}; - -struct F -{ - virtual ~F(); // { dg-error "overriding" } -}; - -struct G: E, F { }; // { dg-error "deleted" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit10.C deleted file mode 100644 index 721a93dd5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit10.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/46103 -// { dg-options -std=c++0x } - -struct MoveOnly { - MoveOnly(const MoveOnly&) = delete; - MoveOnly(MoveOnly&&) { } - MoveOnly() = default; -}; - -struct A { - MoveOnly mo[1]; - A() = default; - A(A&&) = default; -}; - -int main() { - A a; - A aa = static_cast<A&&>(a); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit11.C deleted file mode 100644 index 7ec8e95dc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit11.C +++ /dev/null @@ -1,17 +0,0 @@ -// Test that we consider base dtors in determining whether -// a derived ctor is deleted even if the ctor is trivial. -// { dg-options -std=c++0x } - -struct A -{ - ~A() = delete; // { dg-error "declared here" } -}; - -struct B: A { }; // { dg-error "deleted" } - -extern B eb; -int main() -{ - B* b1 = new B; // { dg-error "use of deleted function" "" { xfail *-*-* } } - B* b2 = new B(eb); // { dg-error "use of deleted function" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit12.C deleted file mode 100644 index da806e006..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit12.C +++ /dev/null @@ -1,54 +0,0 @@ -// PR c++/50500 -// { dg-options "-std=c++0x" } - -// If a class declares move operations, the implicitly declared copy -// operations are deleted. -struct A -{ - A(); - A(A&&); - A& operator=(A&&); -}; - -// But they can still be explicitly defaulted. -struct B -{ - B(); - B(B&&); - B(const B&) = default; - B& operator=(B&&); - B& operator=(const B&) = default; -}; - -struct C -{ - C(); - C(C&&); -}; - -struct D -{ - D(); - D& operator=(D&&); -}; - -int main() -{ - A a; - A a2 (a); // { dg-error "deleted" } - a2 = a; // { dg-error "deleted" } - - B b; - B b2 (b); - b2 = b; - - C c; - C c2(c); // { dg-error "deleted" } - c2 = c; // { dg-error "deleted" } - - D d; - D d2(d); // { dg-error "deleted" } - d2 = d; // { dg-error "deleted" } -} - -// { dg-prune-output "because" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit13.C deleted file mode 100644 index 3165863c6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit13.C +++ /dev/null @@ -1,32 +0,0 @@ -// Make sure that A's destructor doesn't affect constexpr -// or exception-spec on D's default constructor. -// { dg-do compile { target c++11 } } - -struct A { - constexpr A() noexcept: i(0) { } - int i; - ~A() noexcept(false); -}; - -struct B: A { }; - -// Should get static initialization, so no constructor call. -// { dg-final { scan-assembler-not "_ZN1BC1Ev" } } -B b; - -struct C { C() noexcept; ~C() noexcept(false); }; -struct D: C { }; -extern D d; - -void *operator new(__SIZE_TYPE__, void*) noexcept; - -#define SA(X) static_assert((X),#X) -SA(noexcept(new (&d) D)); - -struct E: virtual C { }; -extern E e; -SA(noexcept (new (&e) E)); - -struct F { C c; }; -extern F f; -SA(noexcept (new (&f) F)); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit14.C deleted file mode 100644 index 8a5624463..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit14.C +++ /dev/null @@ -1,26 +0,0 @@ -// PR c++/54506 -// { dg-do compile { target c++11 } } - -template <class T> -struct A -{ - A() {} - - A(A const volatile &&) = delete; - A &operator =(A const volatile &&) = delete; - - template <class U> A(A<U> &&) {} - template <class U> A &operator =(A<U> &&) { return *this; } -}; - -struct B -{ - A<int> a; - B() = default; -}; - -int main() -{ - B b = B(); - b = B(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit2.C deleted file mode 100644 index f24a78838..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit2.C +++ /dev/null @@ -1,33 +0,0 @@ -// Test that the synthesized C copy constructor calls the A template -// constructor and has the appropriate exception specification. -// { dg-options -std=c++0x } -// { dg-do run } - -int r = 1; - -struct A -{ - A() {} - A(const A&) throw () { } - template <class T> - A(T& t) { r = 0; } -}; - -struct B -{ - B() {} - B(B&) throw () { } -}; - -struct C: A, B { }; - -#define SA(E) static_assert(E, #E) - -C c; -SA (!noexcept(C(c))); - -int main() -{ - (C(c)); - return r; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit3.C deleted file mode 100644 index a43eca708..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit3.C +++ /dev/null @@ -1,56 +0,0 @@ -// Basic runtime test for implicit move constructor -// { dg-do run } -// { dg-options -std=c++0x } - -int m; - -struct A -{ - A() = default; - A(A&&) { ++m; } - A& operator=(A&&) { ++m; return *this; } -}; - -struct B -{ - B() = default; - B(const B&); - B(B&&) { ++m; } - B& operator=(const B&); - B& operator=(B&&) { ++m; return *this; } -}; - -struct C -{ - C() = default; - C(C&); - C(C&&) { ++m; } - C& operator=(C&); - C& operator=(C&&) { ++m; return *this; } -}; - -struct D: public A, public B -{ - C c; - int i; -}; - -struct E: public A, public B -{ - C c; - int i; - E() = default; - E(E&&) = default; - E& operator=(E&&) = default; -}; - -int main() -{ - D d1; - D d2 (static_cast<D&&>(d1)); - d1 = static_cast<D&&>(d2); - E e1; - E e2 (static_cast<E&&>(e1)); - e1 = static_cast<E&&>(e2); - return m != 12; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit4.C deleted file mode 100644 index 47fd56a52..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit4.C +++ /dev/null @@ -1,20 +0,0 @@ -// Test that a base with only a move constructor causes the implicit copy -// constructor to be deleted. -// { dg-options "-std=c++0x" } - -struct A // { dg-message "declares a move" } -{ - A(); - A(A&&); -}; - -struct B: A // { dg-error "use of deleted" } -{ -}; - -int main() -{ - B b1; - B b2(b1); // { dg-error "deleted function .B::B.const" } - B b3(static_cast<B&&>(b1)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit5.C deleted file mode 100644 index d25294831..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit5.C +++ /dev/null @@ -1,19 +0,0 @@ -// Test that the default B copy constructor calls the deleted A -// copy constructor. -// { dg-options -std=c++0x } - -struct A // { dg-message "declares a move" } -{ - A() = default; - A(A&&) = default; - template <class T> - A(const T& t) { t.i; } -}; - -struct B: A { }; // { dg-error "implicitly|use of deleted" } - -int main() -{ - B b; - B b2(b); // { dg-error "deleted" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit6.C deleted file mode 100644 index c7902969d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit6.C +++ /dev/null @@ -1,23 +0,0 @@ -// Circular implicit declarations were causing errors -// { dg-options -std=c++0x } - -struct Ray; - -struct Vector -{ - virtual void f(); // make non-trivially-copyable - Vector(const Ray &) ; -}; - -struct array -{ - Vector v; -}; - -struct Ray -{ - array a; -}; - -extern Ray r1; -Ray r2=r1; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit7.C deleted file mode 100644 index f29e5009f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit7.C +++ /dev/null @@ -1,37 +0,0 @@ -// PR c++/44909 -// { dg-options -std=c++0x } -// Declaring A<D<E>>'s copy ctor means choosing a ctor to initialize D<E>, -// which means choosing a ctor for C<B<E>>, which meant considering -// C(const B<E>&) which means choosing a ctor for B<E>, which means choosing -// a ctor for A<D<E>>. Cycle. - -template<typename T> -struct A -{ - T t; -}; - -template <typename T> -struct B -{ - typename T::U u; -}; - -template <typename T> -struct C -{ - C(const T&); -}; - -template <typename T> -struct D -{ - C<B<T> > v; -}; - -struct E { - typedef A<D<E> > U; -}; - -extern A<D<E> > a; -A<D<E> > a2(a); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit8.C deleted file mode 100644 index c949af210..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit8.C +++ /dev/null @@ -1,32 +0,0 @@ -// The hack for PR c++/44909 breaks this testcase. We need feedback -// from the C++ committee to know how to proceed. -// { dg-options -std=c++0x } - -struct A -{ - A(); - A(A&); -}; - -struct B; -struct BP -{ - BP(const B&); -}; - -struct B -{ - B(); - B(B&&); - B(const BP&); -}; - -// If B(B&&) suppresses the B copy constructor, then copying the B -// subobject of C should use B(const BP&). But we ignore that constructor -// in order to break the cycle in 44909. Perhaps the move ctor shouldn't -// suppress the copy ctor? -// As of DR 1082, it doesn't suppress it. -struct C: A, B { }; // { dg-error "use of deleted" } - -C c; -C c2(c); // { dg-error "deleted" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit9.C deleted file mode 100644 index 3a6dbc558..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/implicit9.C +++ /dev/null @@ -1,12 +0,0 @@ -// Test that private base dtor makes derived ctor deleted -// { dg-options -std=c++0x } - -struct A -{ - A(); -private: - ~A(); // { dg-error "private" } -}; - -struct B: A { }; // { dg-error "implicitly deleted|context" } -B * b = new B; // { dg-error "deleted" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor1.C deleted file mode 100644 index 996031065..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor1.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options -std=c++11 } - -struct A -{ - int i; - constexpr A(int i): i(i) {} -}; - -struct B: A -{ - using A::A; -}; - -constexpr B b(42); - -#define SA(X) static_assert((X),#X) -SA(b.i == 42); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor10.C deleted file mode 100644 index 56c5bd602..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor10.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "-std=c++11 -g" } - -struct A -{ - template <class... Ts> A(Ts...); -}; - -struct B: A -{ - using A::A; -}; - -B b1(42); -B b2(1.0, 42, (void*)0); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor11.C deleted file mode 100644 index 282402ba2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor11.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "-std=c++11" } - -struct A -{ - A(int, ...); // { dg-message "declared here" } -}; - -struct B: A -{ - using A::A; // { dg-warning "ellipsis" } -}; - -B b1(42); -B b2(42, 1.0); // { dg-error "no match" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor12.C deleted file mode 100644 index 257487efb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor12.C +++ /dev/null @@ -1,26 +0,0 @@ -// { dg-options "-std=c++11" } -// { dg-do run } - -struct A -{ - int i; - template <class T> - A(T t) noexcept : i(t) {} -}; - -struct C -{ - C() { throw 42; } -}; - -struct B: A, C -{ - using A::A; -}; - -int main() -{ - try { B b(24); } - catch (int) { return 0; } - __builtin_abort(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor13.C deleted file mode 100644 index 2e18e5d62..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor13.C +++ /dev/null @@ -1,22 +0,0 @@ -// { dg-options "-std=c++11" } - -struct A -{ - int i; - template <class T> A(T t); -}; - -struct C -{ - C() = delete; // { dg-error "declared here" } -}; - -struct B: A, C -{ - using A::A; // { dg-error "C::C" } -}; - -int main() -{ - B b(24); // { dg-error "B::B" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor14.C deleted file mode 100644 index 2032ad3dd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor14.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/55261 -// { dg-options -std=c++11 } - -struct A -{ -}; -struct B : A -{ - using A::A; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor15.C deleted file mode 100644 index cc1055810..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor15.C +++ /dev/null @@ -1,15 +0,0 @@ -// Discussions on the core reflector indicate that not inheriting base copy -// constructors was a deliberate choice. - -// { dg-options -std=c++11 } - -struct A { A(int); }; -struct B: public A -{ - using A::A; -}; - -A a (42); - -B b1 (24); // inherited -B b2 (a); // not inherited { dg-error "no match" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor16.C deleted file mode 100644 index 58e848b9c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor16.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/56285 -// { dg-options -std=c++11 } - -struct foo { - explicit foo(int&&) {} -}; - -struct bar: private foo { - using foo::foo; -}; - -int main() -{ - bar b { 42 }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor17.C deleted file mode 100644 index 22eda3af5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor17.C +++ /dev/null @@ -1,45 +0,0 @@ -// PR c++/56323 -// { dg-do compile { target c++11 } } - -struct A { - A(int i); -}; - -typedef A B; - -struct C : B { - using B::B; -}; - -struct D : B { - using B::A; -}; - -C c(0); -D d(0); - -template <class T> -struct E { - typedef T type; -}; - -template <class T> -struct F : E<T>::type { - using E<T>::type::type; // error: E<T>::type is a typedef -}; - -F<A> f(0); - -template <class T> -struct AT -{ - AT(T); -}; - -template <template <class> class T> -struct G : T<int> -{ - using T<int>::T; -}; - -G<AT> g(0); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor18.C deleted file mode 100644 index 05735559a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor18.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/56358 -// { dg-do compile { target c++11 } } - -struct foo { - explicit foo(int) {} -}; - -template<typename T> -struct bar: T { - using T::T; - - // Bad - explicit bar(): T(0) {} - - void baz() - { - // Also bad - using qux = T; - } -}; - -bar<foo> b, b2(42); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor2.C deleted file mode 100644 index 621ba604c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor2.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options -std=c++11 } - -struct A -{ - int i; - constexpr A(int, int i = num): i(i) {} -private: - static const int num = 42; -}; - -struct B: A -{ - using A::A; -}; - -constexpr B b(24); - -#define SA(X) static_assert((X),#X) -SA(b.i == 42); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor3.C deleted file mode 100644 index 7116e2f07..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor3.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options -std=c++11 } - -struct B1 { - B1(int); -}; -struct B2 { - B2(int); -}; -struct D1 : B1, B2 { - using B1::B1; // { dg-error "inherited" } - using B2::B2; // { dg-error "inherited" } -}; // ill-formed: attempts to declare D1(int) twice -struct D2 : B1, B2 { - using B1::B1; - using B2::B2; - D2(int); // OK: user declaration supersedes both implicit declarations -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor4.C deleted file mode 100644 index b6754dc4a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor4.C +++ /dev/null @@ -1,18 +0,0 @@ -// From N3337 -// { dg-options -std=c++11 } - -struct B1 { - B1(int); -}; -struct B2 { - B2(int = 13, int = 42); -}; -struct D1 : B1 { - using B1::B1; -}; -struct D2 : B2 { - using B2::B2; -}; - -D1 d1(1); -D2 d2a(2), d2b(3,4); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor5.C deleted file mode 100644 index a8aa6d98a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor5.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options "-std=c++11" } - -struct B1 { - B1(int) { } -}; -struct B2 { - B2(double) { } -}; -struct D1 : B1 { // { dg-error "no match" } - using B1::B1; // implicitly declares D1(int) - int x; -}; -void test() { - D1 d(6); // OK: d.x is not initialized - D1 e; // { dg-error "deleted" } D1 has no default constructor -} -struct D2 : B2 { - using B2::B2; // { dg-error "no match" } implicitly declares D2(double) - B1 b; -}; -D2 f(1.0); // { dg-error "deleted" } B1 has no default constructor diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor6.C deleted file mode 100644 index 5ac88d6b7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor6.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=c++11" } - -extern "C" int printf (const char *, ...); -template< class T > -struct D : T { - using T::T; - // declares all constructors from class T - ~D() { printf ("Destroying wrapper\n"); } -}; - -struct A { - A(int); -}; - -D<A> d(42); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor7.C deleted file mode 100644 index 226082467..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor7.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options "-std=c++11" } - -struct A -{ - int i; - template <class T> - constexpr A(T t): i(t) {} -}; - -struct B: A -{ - using A::A; -}; - -constexpr B b(42); - -#define SA(X) static_assert((X),#X) -SA(b.i == 42); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor8.C deleted file mode 100644 index d55d3d2a5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor8.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-options "-std=c++11" } - -struct A -{ - int i; - explicit A(int i): i(i) {} -}; - -struct B: A -{ - using A::A; -}; - -void f(B); - -int main() -{ - f(B(42)); // OK - f(42); // { dg-error "could not convert" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor9.C deleted file mode 100644 index dc5e86b63..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inh-ctor9.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=c++11" } - -class A -{ - int i; -protected: - A(int i): i(i) {} -}; - -struct B: A -{ - using A::A; // { dg-error "protected" } -}; - -B b(42); // { dg-error "this context" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-array2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-array2.C deleted file mode 100644 index 19eec33ac..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-array2.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -typedef int IA[2]; -typedef double DA[2]; - -void f(const IA&) { } -void f(const DA&); - -int main() -{ - f({1,2}); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-array3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-array3.C deleted file mode 100644 index 1a94f4ed5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-array3.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/52743 -// { dg-do compile { target c++11 } } - -void composite (int const (&) [2]); -void composite (int const (&) [3]); - -int main () -{ - composite({0,1}); // { dg-error "ambiguous" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-arrray1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-arrray1.C deleted file mode 100644 index 25113d770..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-arrray1.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } - -typedef int IRT[2]; - -const IRT& ir = IRT{1,2}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-ctor1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-ctor1.C deleted file mode 100644 index 82031cbcc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-ctor1.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/52905 -// { dg-options -std=c++11 } - -#include <initializer_list> - -enum E { e1, e2 }; -struct A -{ - A(std::initializer_list<E>); // { dg-message "A::A" } - A(int, E); // { dg-message "A::A" } -}; - -A a{e1,2}; // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-deduce.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-deduce.C deleted file mode 100644 index 0ffcb3bcb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-deduce.C +++ /dev/null @@ -1,28 +0,0 @@ -// Test for deduction of T as std::initializer_list. This isn't currently -// supported by the working draft, but is necessary for perfect forwarding -// of initializer-lists to things that can take a std::initializer_list. - -// { dg-options "-std=c++0x -fdeduce-init-list" } -// { dg-do run } - -#include <initializer_list> - -struct A -{ - A(std::initializer_list<int>) { } -}; - -void f (A a) { } - -template <class T> -auto g (T&& t) -> decltype (f(t)) // { dg-warning "call" } -{ - return f(t); -} - -int main() -{ - g({1}); // { dg-warning "deduc" } -} - -// { dg-prune-output "-fno-deduce-init-list" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-defarg1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-defarg1.C deleted file mode 100644 index 45eb2d5e1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-defarg1.C +++ /dev/null @@ -1,36 +0,0 @@ -// PR c++/56614 -// { dg-require-effective-target c++11 } - -#include <initializer_list> - -namespace std -{ - template<typename T> - struct allocator - { }; - - template<typename T, typename Alloc = std::allocator<T> > - struct vector - { - vector(std::initializer_list<T>, const Alloc& = Alloc()) { } - }; -} - -void func() { } - -enum E { ee }; - -struct C -{ - template<typename T> - C(T, std::vector<E> = std::vector<E>({ ee })) - { } -}; - -struct G -{ - void gen() - { - C c(&func); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-lifetime1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-lifetime1.C deleted file mode 100644 index e43ce5d62..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-lifetime1.C +++ /dev/null @@ -1,34 +0,0 @@ -// Test that we properly extend the lifetime of the initializer_list -// array even if the initializer_list is a subobject. -// { dg-options -std=c++0x } -// { dg-do run } - -#include <initializer_list> - -extern "C" void abort(); -bool ok; - -bool do_throw; - -struct A { - A(int) { if (do_throw) throw 42; } - ~A() { if (!ok) abort(); } -}; - -typedef std::initializer_list<A> AL; -typedef std::initializer_list<AL> AL2; -typedef std::initializer_list<AL2> AL3; - -struct B { - AL al; - const AL& alr; -}; - -int main(int argc, const char** argv) -{ - do_throw = (argc > 1); // always false, but optimizer can't tell - AL ar[] = {{1,2},{3,4}}; - B b = {{5,6},{7,8}}; - AL3 al3 = {{{1},{2},{3}}}; - ok = true; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-lifetime2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-lifetime2.C deleted file mode 100644 index 16ae1ac6e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-lifetime2.C +++ /dev/null @@ -1,64 +0,0 @@ -// Test that we properly extend the lifetime of the initializer_list -// array even if the initializer_list is a subobject. -// { dg-options -std=c++0x } -// { dg-do run } - -#include <initializer_list> - -extern "C" void abort(); -bool ok; - -bool do_throw; - -struct A { - A(int) { if (do_throw) throw 42; } - ~A() { if (!ok) abort(); } -}; - -typedef std::initializer_list<A> AL; -typedef std::initializer_list<AL> AL2; -typedef std::initializer_list<AL2> AL3; - -struct B { - AL al; - const AL& alr; -}; - -struct A2 -{ - const A& a1; - const A& a2; -}; - -struct C { - AL ar[2]; - B b; - AL3 al3; - A2 a2; - A2 a2r[2]; - C(): - ar{{1,2},{3,4}}, - b{{5,6},{7,8}}, - al3{{{1},{2},{3}}}, - a2{1,2}, - a2r{{1,2},{3,4}} - { ok = true; } -}; - -struct D { - AL ar[2] = {{1,2},{3,4}}; - B b = {{5,6},{7,8}}; - AL3 al3 = {{{1},{2},{3}}}; - A2 a2 = {1,2}; - A2 a2r[2] = {{1,2},{3,4}}; - D() { ok = true; } -}; - -int main(int argc, const char** argv) -{ - do_throw = (argc > 1); // always false, but optimizer can't tell - ok = false; - C c; - ok = false; - D d; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-opt.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-opt.C deleted file mode 100644 index d17cda3f6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-opt.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/41997 -// { dg-options "-std=c++0x -O2 -fdump-tree-optimized" } -// { dg-final { scan-tree-dump-not "_0" "optimized" } } -// { dg-final { cleanup-tree-dump "optimized" } } - -#include <initializer_list> - -inline int max_val(std::initializer_list<int> il) -{ - int i = *(il.begin()); - int j = *(il.begin() + 1); - return (i > j ? i : j); -} - -int main(void) -{ - return max_val({1,2}); -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-postfix-open-square.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-postfix-open-square.C deleted file mode 100644 index 38b17820d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-postfix-open-square.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/51738 -// { dg-options -std=c++0x } - -struct Index -{ - Index(unsigned, unsigned){ } -}; - -struct Matrix -{ - void operator[](Index){ } -}; - -int main() -{ - Matrix m; - m[{0,1}]; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-protected.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-protected.C deleted file mode 100644 index fb5cc6aa8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-protected.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/54325 -// { dg-options -std=c++11 } - -class base -{ - protected: - base() - {} -}; - -class derived : public base -{ - public: - derived() - : base{} // <-- Note the c++11 curly brace syntax - {} -}; - -int main() -{ - derived d1; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-pure.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-pure.C deleted file mode 100644 index 63c341c12..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-pure.C +++ /dev/null @@ -1,25 +0,0 @@ -// PR c++/54325 -// { dg-options -std=c++11 } - -class Base { -public: - Base() {}; - virtual ~Base() {}; - - virtual void do_stuff() = 0; -}; - -class Derived: public Base { -public: - Derived() : Base{} {}; - virtual ~Derived() {}; - - virtual void do_stuff() {}; -}; - -int -main() { - Derived d; - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-value.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-value.C deleted file mode 100644 index 215bb90d4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-value.C +++ /dev/null @@ -1,35 +0,0 @@ -// Test for value-initialization via {} -// { dg-options -std=c++0x } -// { dg-do run } - -void * operator new (__SIZE_TYPE__, void *p) { return p; } -void * operator new[] (__SIZE_TYPE__, void *p) { return p; } - -// Empty base so A isn't an aggregate -struct B {}; -struct A: B { - int i; -}; - -struct C: A { - C(): A{} {} -}; - -int f(A a) { return a.i; } - -int main() -{ - A a{}; - C c; - int space = 42; - A* ap = new (&space) A{}; - int space1[1] = { 42 }; - A* a1p = new (space1) A[1]{}; - if (a.i != 0 - || c.i != 0 - || ap->i != 0 - || a1p[0].i != 0 - || A{}.i != 0 - || f({}) != 0) - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-value2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-value2.C deleted file mode 100644 index 2b78241e9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist-value2.C +++ /dev/null @@ -1,20 +0,0 @@ -// Test that we properly value-initialize a class with a user-provided -// constructor but defaulted default constructor. The FDIS got this -// wrong; see c++std-core-19883. - -// { dg-options -std=c++0x } -// { dg-do run } - -struct A -{ - int i; - A() = default; - A(int); -}; - -int main() -{ - A a{}; - if (a.i != 0) - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist1.C deleted file mode 100644 index ff45f7176..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist1.C +++ /dev/null @@ -1,72 +0,0 @@ -// Basic uses of initializer lists -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -extern "C" void abort(); - -using namespace std; - -struct A { int i,j; A(int _i,int _j): i(_i), j(_j) {} }; -struct B { A a; B(A _a): a(_a) {} }; -struct C { B b; C(B _b): b(_b) {} }; - -struct D -{ - int ia[3]; - D (initializer_list<int> l) - { - const int *p = l.begin(); - for (int i = 0; i < 3; ++i) - ia[i] = *p++; - } -}; - -void f(C c) -{ - if (c.b.a.i != 1) abort(); - if (c.b.a.j != 2) abort(); -} -void f(int); - -void g(D d) -{ - if (d.ia[0] != 1 || d.ia[1] != 2 || d.ia[2] != 3) - abort(); -} - -struct E -{ - int i, j, k; -}; - -void h(E e) -{ - if (e.i != 1 || e.j != 2 || e.k != 3) - abort(); -} - -void i(initializer_list<int> l) -{ - const int *p = l.begin(); - if (*p++ != 1) abort(); - if (*p++ != 2) abort(); - if (*p++ != 3) abort(); - if (p != l.end()) abort(); -} - -struct U { U(int, int) {} }; -U ua[] = { { 3, 2 } }; - -int main() -{ - g({1,2,3}); - - h({1,2,3}); - - f({{{1,2}}}); - f({{A{1,2}}}); - - i({1,2,3}); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist10.C deleted file mode 100644 index bf955f513..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist10.C +++ /dev/null @@ -1,53 +0,0 @@ -// PR c++/38380 -// { dg-options "-std=gnu++0x" } - -namespace std -{ - struct atomic_bool - { - bool _M_i; - - atomic_bool() = default; - ~atomic_bool() = default; - atomic_bool(const atomic_bool&) = delete; - atomic_bool& operator=(const atomic_bool&) = delete; - - explicit atomic_bool(bool __i) { _M_i = __i; } - - operator bool() const volatile - { return true; } - }; -} - -namespace __gnu_test -{ - struct direct_list_initializable - { - template<typename _Ttype, typename _Tvalue> - void - operator()() - { - struct _Concept - { - void __constraint() - { - _Ttype __v1 = { }; // default ctor - _Ttype __v2 { __a }; // single-argument ctor - } - - _Tvalue __a; - }; - - void (_Concept::*__x)() __attribute__((unused)) - = &_Concept::__constraint; - } - }; -} - -int main() -{ - __gnu_test::direct_list_initializable test; - - test.operator()<std::atomic_bool, bool>(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist11.C deleted file mode 100644 index 546a5335f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist11.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/38684 -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -struct Y {}; - -struct X : Y { - X(std::initializer_list<int>) {} -}; - -struct A { - X v; -}; - -int main() { - A a{ {1,2,3} }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist12.C deleted file mode 100644 index f344c780c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist12.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/38698 -// { dg-options "-std=c++0x" } -// { dg-prune-output "note" } - -struct A -{ - int i; -}; - -A a({1,2}); // { dg-error "no match" } - -union U -{ - int i,j; -}; - -U u({1,2}); // { dg-error "no match" } - -union V {}; - -V v({1}); // { dg-error "no match" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist13.C deleted file mode 100644 index bc5ee2c3a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist13.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/39056 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -#include <complex> - -__complex__ int i {0}; -std::complex<int> i2 {0}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist14.C deleted file mode 100644 index bb67f3e54..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist14.C +++ /dev/null @@ -1,19 +0,0 @@ -// Bug: We weren't doing the normal replacement of array with pointer -// for deduction in the context of a call because of the initializer list. -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -struct string -{ - string (const char *); -}; - -template <class T> -struct vector -{ - template <class U> - vector (std::initializer_list<U>); -}; - -vector<string> v = { "a", "b", "c" }; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist15.C deleted file mode 100644 index b75cc8172..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist15.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Just discard errors pointing at header files -// { dg-prune-output "include" } - -#include <vector> -#include <typeinfo> - -using namespace std; - -template< typename ... ArgTypes > -void test( ArgTypes ... args ) { - vector<type_info*> x = { &typeid(ArgTypes)... }; // { dg-error "" } -} - -int main() -{ - test( 1, 3.14f, 2.78 ); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist16.C deleted file mode 100644 index 86a003960..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist16.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-do run } - -extern "C" void abort(); - -void f(int i) { if (i != 42) abort(); } - -int main() -{ - f({42}); - return {0}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist17.C deleted file mode 100644 index 6ea08d150..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist17.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x -pedantic-errors" } - -void f(int i); - -int main() -{ - f({42.0}); // { dg-error "narrowing" } - return {1.0}; // { dg-error "narrowing" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist18.C deleted file mode 100644 index c9a9bcd94..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist18.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/40308, 40311 -// { dg-do run } -// { dg-options "-std=c++0x" } - -template< typename T > -struct test { - test() : data{} {} - - T data; -}; - -int main() -{ - test<int> x; - test<int*> y; - int * a = new int{}; - int * b = new int{5}; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist19.C deleted file mode 100644 index 9cb197c9b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist19.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Allow other errors, too -// { dg-prune-output "error" } - -void f(double); -int main() -{ - f({{1}}); // { dg-error "too many braces" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist2.C deleted file mode 100644 index 2fe477056..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist2.C +++ /dev/null @@ -1,32 +0,0 @@ -// Test that conversion to std::initializer_list takes priority over other -// user-defined conversions. - -// { dg-do link } -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -struct string -{ - string (const char *) {} - template <class Iter> string (Iter, Iter); -}; - -template <class T, class U> -struct pair -{ - pair (T t, U u) {} -}; - -template<class T, class U> -struct map -{ - void insert (pair<T,U>); - void insert (std::initializer_list<pair<T,U> >) {} -}; - -int main() -{ - map<string,string> m; - m.insert({ {"this","that"}, {"me","you"} }); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist20.C deleted file mode 100644 index fcdb73f19..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist20.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/40689 -// { dg-options "-std=c++0x" } - -class X -{ - public: - X(): data {1,2,3,4,5} {} - private: - const short data[5]; -}; - -int main() -{ - const float * pData = new const float[4] { 1.5, 2.5, 3.5, 4.5 }; - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist21.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist21.C deleted file mode 100644 index 9412a0851..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist21.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/40689 -// { dg-options "-std=c++0x" } - -class X -{ - public: - X(): data {1,2} {} // { dg-error "too many initializers" } - private: - const short data[1]; -}; - -int f(int n) -{ - const float * pData = new const float[1] { 1.5, 2.5 }; // { dg-error "too many initializers" } - pData = new const float[n] { 1.5, 2.5 }; // { dg-warning "array size" } - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist22.C deleted file mode 100644 index 0855b59d5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist22.C +++ /dev/null @@ -1,24 +0,0 @@ -// Core issue 934 -// { dg-options "-std=c++0x" } - -int i; - -int& r1{ i }; // OK, direct binding -int&& r2{ i }; // { dg-error "" } binding && to lvalue - -int& r3{ }; // { dg-error "" } reference to temporary -int&& r4{ }; // OK, reference to temporary - -struct A { int i; } a; - -A& r5 { i }; // { dg-error "" } reference to temporary -A&& r6 { i }; // OK, aggregate initialization of temporary -A& r7 { a }; // { dg-error "" } invalid aggregate initializer for A -A&& r8 { a }; // { dg-error "" } invalid aggregate initializer for A - -struct B { B(int); int i; } b(0); - -B& r9 { i }; // { dg-error "" } reference to temporary -B&& r10 { i }; // OK, make temporary with B(int) constructor -B& r11 { b }; // { dg-error "" } reference to temporary -B&& r12 { b }; // OK, make temporary with copy constructor diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist23.C deleted file mode 100644 index 48a997fca..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist23.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -struct A -{ - A& operator=(int i); - A& operator=(std::initializer_list<int> l) { return *this; } -}; - -int main() -{ - A a; - a = { }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist24.C deleted file mode 100644 index 33e97c7df..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist24.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/39923 -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -void test3() -{ - std::initializer_list<int> list{move}; // { dg-error "not declared|could not convert" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist25.C deleted file mode 100644 index 8e5e0065c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist25.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/41754 -// { dg-options -std=c++0x } -// { dg-do run } - -#include <map> -#include <string> -#include <iostream> - -using namespace std; - -int main() -{ - map<string, string> m; - m.insert({{"t", "t"}, {"y", "y"}}); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist26.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist26.C deleted file mode 100644 index bb28bdbd9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist26.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/42059 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -void -foo (int i) -{ - int a[i]; - a = { }; // { dg-error "assign" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist27.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist27.C deleted file mode 100644 index f8536d3e7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist27.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/42061 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -int& i = { j }; // { dg-error "invalid initialization|was not declared" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist28.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist28.C deleted file mode 100644 index d1df7cb00..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist28.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/42060 -// { dg-options "-std=c++0x" } - -void foo() -{ - int a[1]; - throw a = {}; // { dg-error "assign" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist29.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist29.C deleted file mode 100644 index 1568678e0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist29.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/42331 -// { dg-options "-std=c++0x" } - -class Mesh -{ -public: - Mesh(const char*) - { typele={0}; } // { dg-error "" } - -private: - int typele[7][2]; -}; - -Mesh m(0); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist3.C deleted file mode 100644 index 412deb511..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist3.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -template <class T> void f(std::initializer_list<T>); - -void g() -{ - f({1,2,3}); -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist30.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist30.C deleted file mode 100644 index a5bdb2eda..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist30.C +++ /dev/null @@ -1,12 +0,0 @@ -// Testcase for variadic init list deduction. -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -template <class... Ts> -void f (std::initializer_list<Ts>... ls); - -int main() -{ - f({1},{2.0}); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist31.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist31.C deleted file mode 100644 index ffc985567..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist31.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/43028 -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -struct string { string(std::initializer_list<char>) { } }; - -void f() { - auto y = - { - string(Equation()) // { dg-error "not declared" } - }; // { dg-error "unable to deduce" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist32.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist32.C deleted file mode 100644 index 78bbb5ef9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist32.C +++ /dev/null @@ -1,21 +0,0 @@ -// Test that we try normal init if no list ctor is viable. -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -struct B {}; - -struct C -{ - C(B); -}; - -struct A -{ - A(std::initializer_list<int>); - A(B) { } - A(C); -}; - -B b; -A a{b}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist33.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist33.C deleted file mode 100644 index b1c0ba09b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist33.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/44045 -// { dg-options "-std=c++0x" } - -struct base -{ - virtual ~base() { } -}; - -int main() -{ - base ptr_array[1]; - ptr_array = { base() }; // { dg-error "assign" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist34.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist34.C deleted file mode 100644 index 92f5a3a46..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist34.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/44157 -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -template<typename T> -void f(T) { } - -int main() { - std::initializer_list<int> a = { 0 }; - f(a); - - f<std::initializer_list<int> >({ 0 }); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist35.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist35.C deleted file mode 100644 index e5b7cb4bd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist35.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/41510 -// { dg-options "-std=c++0x" } - -struct B -{ - B(int, int); -}; -struct A -{ - A(int, int); - A(const B&); -}; - -void f() -{ - A a = { 1, 2 }; -}; - -template <class T> void g() -{ - A a = { 1, 2 }; -}; - -template void g<int>(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist36.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist36.C deleted file mode 100644 index a703b4590..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist36.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/44358 -// { dg-options "-std=c++0x -pedantic-errors" } - -#include <initializer_list> - -struct A -{ - A(int); -}; - -struct B -{ - B(std::initializer_list<A>); -}; - -void f (B b); -int main() -{ - B b0 = {{1}}; - B b1 = {{1.0}}; // { dg-error "narrowing" } - B b2 {1.0}; // { dg-error "narrowing" } - A a {1.0}; // { dg-error "narrowing" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist37.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist37.C deleted file mode 100644 index 20c6ab631..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist37.C +++ /dev/null @@ -1,24 +0,0 @@ -// DR 990 -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -struct S { - S(std::initializer_list<double>); // #1 - S(std::initializer_list<int>); // #2 - S(); // #3 - // ... -}; -S s1 = { 1.0, 2.0, 3.0 }; // invoke #1 -S s2 = { 1, 2, 3 }; // invoke #2 -S s3 = { }; // invoke #3 (for value-initialization) - - -// Test some other situations, too. -void f (S); -int main() -{ - S s4 { }; - f({ }); - S {}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist38.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist38.C deleted file mode 100644 index 32e20d591..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist38.C +++ /dev/null @@ -1,21 +0,0 @@ -// DR 990 -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -struct A { - A(std::initializer_list<int>); // #1 -}; -struct B { - A a; -}; - -void f (B); -int main() -{ - B{}; - f({}); - B b0 = { }; - B b1 { }; // OK, uses #1 - B b2 { 1 }; // { dg-error "could not convert" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist39.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist39.C deleted file mode 100644 index a6dd1ec43..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist39.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options -std=c++0x } - -struct A { int i; }; - -void f (const A &); -void f (A &&); - -void g (A, int); -void g (A, double); - -int main() -{ - f ( { 1 } ); - g ( { 1 }, 1 ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist4.C deleted file mode 100644 index d1ffab854..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist4.C +++ /dev/null @@ -1,32 +0,0 @@ -// Test for initializer-list 'explicit' rule -// { dg-options "-std=c++0x" } - -struct A -{ - explicit A(int,int); - operator bool(); -}; - -A f(A) -{ - A{1,2}; - A a1{1,2}; - new A{1,2}; - if (A a5{1,2}); - - A({1,2}); // { dg-error "explicit" } - A a2({1,2}); // { dg-error "explicit" } - A a3 = {1,2}; // { dg-error "explicit" } - new A({1,2}); // { dg-error "explicit" } - f({1,2}); // { dg-error "explicit" } - a1 = {1,2}; // { dg-error "explicit" } - if (A a4 = {1,2}); // { dg-error "explicit" } - return {1,2}; // { dg-error "explicit" } -} - -struct B -{ - A a; - B(): a{1,2} {} - B(const B&): a({1,2}) {} // { dg-error "explicit" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist40.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist40.C deleted file mode 100644 index f2703602c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist40.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=c++0x" } - -struct A -{ - explicit A(int = 42); -}; - -int main() -{ - A a1 = { }; - A a2 = { 24 }; // { dg-error "explicit" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist41.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist41.C deleted file mode 100644 index b5385480c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist41.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/44703 -// { dg-options -std=c++0x } - -#include <initializer_list> - -typedef std::initializer_list<int> type ; -void f(type) {} - -int main() -{ -// error: could not convert '{1, 2, 3}' to 'type' - f({1,2,3}) ; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist42.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist42.C deleted file mode 100644 index e63959deb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist42.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options -std=c++0x } - -enum Unscoped { }; -enum class Scoped { }; - -Unscoped bar(Unscoped x) { return x; } -Scoped bar(Scoped x) { return x; } - -auto var1u = bar(Unscoped()); // OK -auto var1s = bar(Scoped()); // OK - -auto var2u = bar(Unscoped{}); // #1 Error, but should work -auto var2s = bar(Scoped{}); // #2 Error, but should work diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist43.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist43.C deleted file mode 100644 index 72a09bdea..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist43.C +++ /dev/null @@ -1,7 +0,0 @@ -// Test that using T{} at file scope doesn't create a static temporary. -// { dg-options -std=c++0x } -// { dg-final { scan-assembler-not "local" } } - -struct A { }; - -A a = A{}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist44.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist44.C deleted file mode 100644 index fbe0ea3fe..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist44.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } - -#include <initializer_list> - -auto value = std::initializer_list<int>{ 1, 2, 3 }; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist45.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist45.C deleted file mode 100644 index 0e34bc189..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist45.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/46289 -// { dg-options -std=c++0x } - -struct A -{ - int i[2]; -}; - -struct B -{ - A a; - B(): a({{1,2}}) { } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist46.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist46.C deleted file mode 100644 index 2b9f07dbd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist46.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/48281 -// { dg-options "-std=c++0x -O2" } -// { dg-do run } - -#include <initializer_list> - -typedef std::initializer_list<int> int1; -typedef std::initializer_list<int1> int2; -static int2 ib = {{42,2,3,4,5},{2,3,4,5,1},{3,4,5,2,1}}; - -int main() -{ - return *(ib.begin()->begin()) != 42; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist47.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist47.C deleted file mode 100644 index b76fb5836..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist47.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options -std=c++0x } - -struct A { ~A() = delete; }; // { dg-error "declared" } - -int main() -{ - typedef const A cA[2]; - cA{}; // { dg-error "deleted" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist48.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist48.C deleted file mode 100644 index 9eb451a82..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist48.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/48726 -// { dg-options -std=c++0x } - -#include <memory> - -struct Foo{ - int i; -}; -typedef std::unique_ptr<Foo> up; - -std::initializer_list<up> il{up{new Foo}, up{new Foo}}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist49.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist49.C deleted file mode 100644 index 752c4331a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist49.C +++ /dev/null @@ -1,18 +0,0 @@ -// Test for non-trivial list-initialization with array new. -// { dg-options -std=c++0x } -// { dg-do run } - -struct A -{ - enum E { c_string, number } e; - A(const char *): e(c_string) {} - A(int): e(number) {} -}; - -int main() -{ - A* ap = new A[2]{1, ""}; - if (ap[0].e != A::number || ap[1].e != A::c_string) - return 1; - delete[] ap; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist5.C deleted file mode 100644 index 51345c73f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist5.C +++ /dev/null @@ -1,35 +0,0 @@ -// Test for narrowing diagnostics -// { dg-options "-std=c++0x -pedantic-errors" } - -#include <initializer_list> - -struct A { int i; int j; }; -A a2 { 1.2 }; // { dg-error "narrowing" } -A a1 { 1, 2 }; // aggregate initialization -struct B { - B(std::initializer_list<int>); -}; -B b1 { 1, 2 }; // creates initializer_list<int> and calls constructor -B b2 { 1, 2.0 }; // { dg-error "narrowing" } -struct C { - C(int i, double j); -}; -C c1 = { 1, 2.2 }; // calls constructor with arguments (1, 2.2) -C c2 = { 1.1, 2 }; // { dg-error "narrowing" } - -int j { 1 }; // initialize to 1 -int k {}; // initialize to 0 - -// PR c++/36963 -double d = 1.1; -float fa[] = { d, 1.1 }; // { dg-error "narrowing conversion of 'd'" } -constexpr double d2 = 1.1; -float fa2[] = { d2, 1.1 }; - -// PR c++/49577 -unsigned u{ -1 }; // { dg-error "narrowing" } -char c = char{ u }; // { dg-error "narrowing" } - -// PR c++/50011 -short unsigned su; -int i { su }; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist50.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist50.C deleted file mode 100644 index 5cb23e2db..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist50.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/45418 -// { dg-options -std=c++0x } - -struct A1 { }; -struct A2 { - A2(); -}; - -template <class T> struct B { - T ar[1]; - B(T t):ar{t} {} -}; - -int main(){ - B<int> bi{1}; - A1 a1; - B<A1> ba1{a1}; - A2 a2; - A2 a2r[1]{{a2}}; - B<A2> ba2{a2}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist51.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist51.C deleted file mode 100644 index 9163dd3a8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist51.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/47184 -// { dg-options -std=c++0x } - -struct S -{ - int a; -}; -struct T -{ - T(S s) {} -}; -int main() -{ - T t(S{1}); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist52.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist52.C deleted file mode 100644 index 17c0cfe3f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist52.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/45378 -// { dg-options "-std=c++0x -pedantic-errors" } - -int main() -{ - int x { 22.2 }; // { dg-error "narrowing" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist53.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist53.C deleted file mode 100644 index 22633f909..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist53.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/49216 -// { dg-options -std=c++0x } -// { dg-do run } - -#include <initializer_list> -extern "C" void abort(); -void * operator new[] (__SIZE_TYPE__, void *p) { return p; } - -bool constructed; - -struct A -{ - A(std::initializer_list<int>) { constructed = true; } -}; - -int main() { - new A[1]{}; - int space[1] = { 42 }; - int *p = new (space) int[1]{}; - if (p[0] != 0 || !constructed) - abort(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist54.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist54.C deleted file mode 100644 index cdb296133..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist54.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/49355 -// { dg-options -std=c++0x } - -#include <string> - -struct T { - std::string foobar; -}; - -int main() -{ - T* x = new T({""}); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist55.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist55.C deleted file mode 100644 index cb42e81ed..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist55.C +++ /dev/null @@ -1,5 +0,0 @@ -// Test for -Wno-narrowing -// { dg-options "-std=c++0x -pedantic-errors -Wno-narrowing" } - -int i; -float d = { i }; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist56.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist56.C deleted file mode 100644 index 862b41bb3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist56.C +++ /dev/null @@ -1,37 +0,0 @@ -// PR c++/47453 -// { dg-options "-std=c++0x -pedantic-errors" } - -// invalid -int a({0}); // { dg-error "" } - -// invalid -int const &b({0}); // { dg-error "" } - -// invalid -struct A1 { int a[2]; A1(); }; -A1::A1():a({1, 2}) { } // { dg-error "" } - -struct A { explicit A(int, int); A(int, long); }; - -// invalid -A c({1, 2}); // { dg-error "" } - -// valid (by copy constructor). -A d({1, 2L}); - -// valid -A e{1, 2}; - -#include <initializer_list> - -struct B { - template<typename ...T> - B(std::initializer_list<int>, T ...); -}; - -// invalid (the first phase only considers init-list ctors) -// (for the second phase, no constructor is viable) -B f{1, 2, 3}; // { dg-error "" } - -// valid (T deduced to <>). -B g({1, 2, 3}); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist57.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist57.C deleted file mode 100644 index d945a4689..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist57.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/50054 -// { dg-options -std=c++0x } - -void g( const int& (a)[1] ) {} // { dg-error "array of references" } - -int main () { - g( { 1, 2 } ); // { dg-error "initializer list" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist58.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist58.C deleted file mode 100644 index dfb9f0cd5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist58.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/50209 -// { dg-options -std=c++0x } - -struct S { int i,j; }; - -struct A -{ - static void f (S = {1,2}); -}; - -void f (S = {3,4}); - -int main() -{ - A::f(); - f(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist59.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist59.C deleted file mode 100644 index 2cc015d1f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist59.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/49996 -// { dg-options -std=c++0x } - -struct A -{ - ~A() - { } -}; - -struct B -{ - const A& ref; -}; - -int main() -{ - B* p = new B{A()}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist6.C deleted file mode 100644 index 523570315..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist6.C +++ /dev/null @@ -1,30 +0,0 @@ -// Test for initlist lifetime -// { dg-options "-std=c++0x" } -// { dg-do run } - -#include <initializer_list> - -int c; - -struct A -{ - A(int,int) { ++c; } - ~A() { --c; } -}; - -void f (std::initializer_list<A> l) { } - -int main() -{ - f({ {1,2}, {3,4} }); - if (c != 0) - return 1; - - { - std::initializer_list<A> l { {1,2}, {3,4} }; - if (c != 2) - return 2; - } - if (c != 0) - return 3; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist61.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist61.C deleted file mode 100644 index 28eccc263..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist61.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-do compile { target c++11 } } - -struct N { N(int); }; -struct A { N i,j; }; - -int main() -{ - A* ap = new A{1,2}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist62.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist62.C deleted file mode 100644 index cabbcd1db..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist62.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/51399 -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -struct A -{ - std::initializer_list<int> x[1] = { 0 }; // { dg-error "could not convert" } - A() {} -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist63.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist63.C deleted file mode 100644 index a72c0ab99..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist63.C +++ /dev/null @@ -1,16 +0,0 @@ -// Origin PR c++/51475 -// { dg-options -std=c++11 } - -#include <initializer_list> - -struct A -{ - A(int*); -}; - -struct B -{ - const std::initializer_list<A>& x; -}; - -B b = {{1}}; // { dg-error "invalid conversion|cannot convert" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist64.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist64.C deleted file mode 100644 index bcf165807..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist64.C +++ /dev/null @@ -1,29 +0,0 @@ -// PR c++/51553 -// { dg-options -std=c++0x } - -struct X -{ - X(); -}; - -struct Y -{ - operator X() const; -}; - -struct Z -{ - explicit operator X() const; -}; - -X a = { Y() }; -X aa = Y(); - -X b{ Y() }; -X bb(Y()); - -X c = { Z() }; // { dg-error "" } -X cc = Z(); // { dg-error "" } - -X d{ Z() }; -X dd( Z() ); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist65.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist65.C deleted file mode 100644 index 36127069d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist65.C +++ /dev/null @@ -1,9 +0,0 @@ -// Core 1270 -// { dg-options -std=c++11 } - -struct A -{ - int i[2]; -}; - -A f() { return {1,2}; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist66.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist66.C deleted file mode 100644 index 4fc162e10..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist66.C +++ /dev/null @@ -1,29 +0,0 @@ -// PR c++/52510 -// { dg-do compile { target c++11 } } - -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -typedef unsigned long long uint64_t; -typedef uint64_t upad64_t; - -typedef struct _pthread_cond { - struct { - uint8_t __pthread_cond_flag[4]; - uint16_t __pthread_cond_type; - uint16_t __pthread_cond_magic; - } __pthread_cond_flags; - upad64_t __pthread_cond_data; -} pthread_cond_t; - -class gtm_rwlock -{ - pthread_cond_t c_readers; - public: - gtm_rwlock(); -}; - -gtm_rwlock::gtm_rwlock() - : c_readers ({{{0, 0, 0, 0}, 0, 0x4356}, 0}) -{ } - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist67.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist67.C deleted file mode 100644 index 491d4cf06..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist67.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/50478 -// { dg-do compile { target c++11 } } - -#include <initializer_list> - -namespace std -{ - template<typename _Key> - struct set - { - void insert(const _Key&); - void insert(initializer_list<_Key>); - }; - - struct string - { - string(const string&, __SIZE_TYPE__, __SIZE_TYPE__ = -1); - string(const char*); - string(initializer_list<char>); - }; -} - -int main() -{ - std::set<std::string> s; - s.insert( { "abc", "def", "hij"} ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist68.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist68.C deleted file mode 100644 index 7cfe1a34b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist68.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/56772 -// { dg-require-effective-target c++11 } - -typedef __SIZE_TYPE__ size_t; -void* operator new[](size_t, void *p) { return p; } -template <typename T = size_t> -void f () -{ - size_t coord [2][2]; - new (&coord) size_t [2][2] - { - {0,0}, - {0,0}, - }; -} - -int main () -{ - f<>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist69.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist69.C deleted file mode 100644 index 5d59dfeaa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist69.C +++ /dev/null @@ -1,29 +0,0 @@ -// PR c++/50261 -// { dg-require-effective-target c++11 } - -template <typename T> -struct ca { - T elem[1]; - - ca(const T (&s)[1]): elem{{s}} { } // { dg-error "braces" } - ca(const T (&s)[1],int): elem({{s}}) { } // { dg-error "paren|invalid" } - ca(const T (&s)[1],char): elem(s) { } // { dg-error "array" } - ca(const T (&s)[1],double): elem{s} { } // { dg-error "invalid" } - - ca(const T &v): elem{{v}} { } // { dg-error "braces" } - ca(const T &v,int): elem{{{v}}} { } // { dg-error "braces" } - ca(const T &v,char): elem{v} { } // OK - ca(const T &v,double): elem({v}) { } // { dg-error "paren" } -}; - -int main() { - int a[1] = {0}; - ca<int> d(a); - ca<int> d1(a,1); - ca<int> d2(a,'2'); - ca<int> d3(a,3.0); - ca<int> e(a[0]); - ca<int> e1(a[0],1); - ca<int> e2(a[0],'2'); - ca<int> e3(a[0],3.0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist7.C deleted file mode 100644 index 55a037186..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist7.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/37932 -// { dg-options "-std=c++0x -pedantic-errors" } - -typedef enum { AA=1, BB=2 } my_enum; - -typedef struct { my_enum a:4 ; unsigned b:28; } stru; - -void foo (char c, my_enum x, int i) -{ - char arr[2] = {c+'0', 0}; // { dg-error "narrowing" } - stru s = {x,0}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist70.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist70.C deleted file mode 100644 index f215b9d79..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist70.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/57196 -// { dg-require-effective-target c++11 } - -#include <initializer_list> - -template<class T> -struct set { - set() = default; - set(std::initializer_list<T>){} -}; - -struct string { - string(const char*){} - ~string(){} -}; - -typedef decltype(sizeof(0)) size_t; - -template <size_t> struct EqHelper { }; - -int IsNullLiteralHelper(...); - -void Fn() { - EqHelper<sizeof IsNullLiteralHelper(set<int>{1})> eq1; // ok - EqHelper<sizeof IsNullLiteralHelper(set<string>())> eq2; // ok - EqHelper<sizeof IsNullLiteralHelper(set<string>{"foo"})> eq3; // error -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist8.C deleted file mode 100644 index db63eee78..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist8.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/37740 -// { dg-options "-std=c++0x" } - -struct A -{ - int i; -}; - -struct B -{ - double d; - A i; -}; - -int main() -{ - A a; - new B{3.2, a}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist9.C deleted file mode 100644 index d596b3915..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/initlist9.C +++ /dev/null @@ -1,29 +0,0 @@ -// PR c++/37860 -// { dg-options "-std=c++0x" } - -struct b -{ - bool t; - - b() = default; - ~b() = default; - b& operator=(const b&) = delete; - b(const b&) = delete; // { dg-error "declared" } - - b(bool _t): t (_t) { } -}; - -int main() -{ - // copy list initialization - b tst1 = { false }; - - // copy initialization. - b tst2 = false; // { dg-error "use" } - - // direct list initialization - b tst3 { false }; - - // default initialization - b tst4; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns1.C deleted file mode 100644 index e422d8970..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns1.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-final { scan-assembler "_ZN1Q2V11fEv" } } -// { dg-final { scan-assembler "_ZN1Q2V11iE" } } - -namespace Q { - inline namespace V1 { - extern int i; - void f(); - } -} -int Q::i = 1; -void Q::f() { } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns2.C deleted file mode 100644 index 17a8bf601..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns2.C +++ /dev/null @@ -1,25 +0,0 @@ -// { dg-options -std=c++0x } - -namespace Q { - inline namespace V1 { - extern int i; // { dg-message "" } - extern int j; // { dg-message "" } - void f(); // { dg-message "" } - void g(); // { dg-message "" } - } - inline namespace V2 { - extern int j; // { dg-message "" } - void g(); // { dg-message "" } - } - extern int i; // { dg-message "" } - void f(); // { dg-message "" } - void h(); -} -namespace R { - using namespace Q; -} -int Q::i = 1; // { dg-error "ambiguous" } -int Q::j = 1; // { dg-error "ambiguous" } -void Q::f() { } // { dg-error "ambiguous" } -void Q::g() { } // { dg-error "ambiguous" } -void R::h() { } // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns3.C deleted file mode 100644 index 7c9d6b9b5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns3.C +++ /dev/null @@ -1,26 +0,0 @@ -// { dg-options -std=c++0x } - -namespace C -{ - void f(); -} - -namespace B -{ - using namespace C; - - inline namespace B1 - { - void f(); - } -} - -namespace A -{ - using namespace B; -} - -int main() -{ - A::f(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns4.C deleted file mode 100644 index 25caefc0a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns4.C +++ /dev/null @@ -1,2 +0,0 @@ -// { dg-options "-std=gnu++98 -pedantic" } -inline namespace { } // { dg-warning "inline namespaces" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns5.C deleted file mode 100644 index 20a3dc6bb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/inline-ns5.C +++ /dev/null @@ -1,2 +0,0 @@ -// { dg-options "-std=gnu++98 -pedantic-errors" } -inline namespace { } // { dg-error "inline namespaces" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/iop.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/iop.C deleted file mode 100644 index 834cd314a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/iop.C +++ /dev/null @@ -1,41 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test that the implicit object parameter is *not* an rvalue reference, but is instead -// identical to that specified in C++03. That is, the implicit object parameter is -// an lvalue reference that can bind to an rvalue. :-\ -// See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html under the -// section "Revision 1 Summary and Rationale" for more details. - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; - -struct os -{ - one operator<<(int); -}; - -struct A -{ - A(int); -}; - -two operator<<(os&, const A&); - -void test() -{ - os o; - sa<sizeof(o << 1) == 1 * sizeof(long)> t1; // Calls os::operator<<(int) - // Would be ambiguous if the implicit object parameter - // was an rvalue reference. -} - -int main() -{ - return 0; -} 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() -{ - [](){}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/linkage2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/linkage2.C deleted file mode 100644 index f41c21a77..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/linkage2.C +++ /dev/null @@ -1,33 +0,0 @@ -// DR 743: A type without linkage shall not be used as the type of a -// variable or function with linkage, unless -// o the variable or function has extern "C" linkage (7.5 [dcl.link]), or -// o the variable or function is not used (3.2 [basic.def.odr]) or is -// defined in the same translation unit. - -// { dg-options -std=c++0x } - -template <typename T> struct B { - void g(T){} - void h(T); // { dg-error "never defined" } - friend void i(B, T){} - static T t1; // { dg-error "never defined" } - static T t2; -}; - -template <typename T> T B<T>::t2 = { }; - -enum {} e1; // OK, defined -extern enum {} e2; // { dg-error "never defined" } -extern "C" enum {} e3; // OK, extern "C" - -void f() { - struct A { int x; }; // no linkage - A a = {1}; - B<A> ba; // declares B<A>::g(A) and B<A>::h(A) - ba.t1 = a; // error, B<T>::t never defined - ba.t2 = a; // OK - ba.g(a); // OK - ba.h(a); // error, B<T>::h never defined - i(ba, a); // OK - e1+e2+e3; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/local-targ1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/local-targ1.C deleted file mode 100644 index 588149a2c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/local-targ1.C +++ /dev/null @@ -1,31 +0,0 @@ -// PR c++/51884 -// { dg-do compile { target c++11 } } -// { dg-final { scan-assembler "_ZN1BIZN3fooIivE3barILb1EEEvvE1CEC1ERKS4_" } } - -template<typename TT> - struct test { static const int value = 0; }; -template<int I> - struct enable_if { typedef void type; }; - -struct A { virtual void f() {} }; -template<typename U> struct B : A { B(); B(const B&); }; -template<typename U> B<U>::B() { } -template<typename U> B<U>::B(const B&) { } - -template<class T> void g(T) { } - -template<typename T, typename = void> struct foo; -template<typename T> -struct foo<T,typename enable_if<test<T>::value>::type> -{ - template <bool P> void bar() { - struct C { } c; - B<C> b; - g(b); - } -}; - -int main() { - foo<int> f; - f.bar<true>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/long_long.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/long_long.C deleted file mode 100644 index 3ef710df4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/long_long.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=c++0x -pedantic" } - -void foo() -{ - long long x = 17; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/move1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/move1.C deleted file mode 100644 index 12e363a8c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/move1.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=c++0x -pedantic-errors" } - -#include <utility> - -class A { }; - -static void g ( A && ) { } - -template < class T > class B { -public: - void f ( ) { - A a; - g ( std :: move ( a ) ); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/named.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/named.C deleted file mode 100644 index 2dff24ca4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/named.C +++ /dev/null @@ -1,42 +0,0 @@ -// { dg-options "--std=c++0x" } -// { dg-do link } - -template<typename _Tp> -inline _Tp&& -movel(_Tp& __t) -{ return static_cast<_Tp&&>(__t); } - -struct S {}; -struct T -{ - T(S && s_) : s(movel(s_)) {} - S && get() { return movel(s); } - operator S&&() { return movel(s); } - S && s; - S s2; -}; - -void named(S const &) {} -void named(S&&); - -void unnamed(S const &); -void unnamed(S&&) {} - -void f(S && p) -{ - S && s(movel(p)); - T t(movel(s)); - - named(s); // variable reference - named(p); // parameter reference - named(t.s); // class member access - - unnamed(t.get()); // function return - unnamed(t); // implicit conversion - unnamed(static_cast<S&&>(s)); // cast to rvalue - unnamed(static_cast<T&&>(t).s2); // cast to rvalue -} - -int main() -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/named_refs.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/named_refs.C deleted file mode 100644 index 697867e11..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/named_refs.C +++ /dev/null @@ -1,28 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test: Named rvalue references are treated as lvalues. - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; - -struct A {}; - -one foo(const A&) {return one();} -two foo(A&&) {return two();} - -int test1(A&& a) -{ - sa<sizeof(foo(a)) == 1 * sizeof(long)> t1; - return 0; -} - -int main() -{ - return test1(A()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept01.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept01.C deleted file mode 100644 index b6be1ef7a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept01.C +++ /dev/null @@ -1,83 +0,0 @@ -// Test for noexcept-expression -// { dg-options "-std=c++0x -O2" } - -#include <typeinfo> - -#define SA(X) static_assert(X, #X) - -void f(); -void g() throw(); -SA(noexcept(g())); -SA(!noexcept(f())); -SA(!noexcept(throw 1)); -SA(noexcept(42)); - -struct A -{ - virtual ~A(); -}; - -struct B: public A -{ - virtual ~B(); -}; - -A* ap; - -struct C { }; -C* cp; - -SA (noexcept (dynamic_cast<B*>(ap))); -SA (!noexcept (dynamic_cast<B&>(*ap))); -SA (!noexcept (typeid (*ap))); -SA (noexcept (typeid (*cp))); - -SA (!noexcept (true ? 1 : throw 1)); -SA (!noexcept (true || true ? 1 : throw 1)); - -SA (noexcept (C())); - -struct D -{ - D() throw(); -}; - -SA (noexcept (D())); - -struct E -{ - E() throw(); - ~E(); -}; - -SA (noexcept (E())); - -struct F -{ - virtual void f(); -}; - -SA (noexcept (F())); - -struct G -{ - G() = default; - ~G() = default; -}; - -SA (noexcept (G())); - -template <class T, bool b> -void tf() -{ - SA (noexcept (T()) == b); -} - -template void tf<int,true>(); -template void tf<E, true>(); - -// Make sure that noexcept uses the declared exception-specification, not -// any knowledge we might have about whether or not the function really -// throws. -void h() { } -SA(!noexcept(h())); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept02.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept02.C deleted file mode 100644 index ffbb09192..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept02.C +++ /dev/null @@ -1,54 +0,0 @@ -// Test for noexcept-specification -// { dg-options "-std=c++0x" } - -#define SA(X) static_assert(X, #X) - -void f(); -void f() noexcept(false); -void f() noexcept(1 == 0); -void f(); - -SA(!noexcept(f())); - -void g() throw (int); // { dg-error "previous declaration" } -void g() noexcept(false); // { dg-error "different exception" } -void g(); - -void h() throw(); -void h() noexcept; -void h() throw(); -void h() noexcept; - -template <class T> -void g (T) noexcept(noexcept(T())); // { dg-error "previous declaration" } -template <class T> -void g (T) noexcept(noexcept(T(0))); // { dg-error "different exception" } - -template <class T> -void f (T) noexcept(noexcept(T()) && noexcept(T())); -template <class T> -void f (T) noexcept(noexcept(T()) && noexcept(T())); -template <class T> -void f2(T a) noexcept (noexcept (f (a))); - -struct A { A(); }; -SA(noexcept(f(1))); -SA(!noexcept(f(A()))); -SA(noexcept(f2(1))); -SA(!noexcept(f2(A()))); - -template <class... Ts> -void f3(Ts... ts) noexcept (noexcept (f(ts...))); - -SA(noexcept(f3(1))); -SA(!noexcept(f3(A()))); - -template <class T1, class T2> -void f (T1, T2) noexcept(noexcept(T1(), T2())); - -struct B { }; - -SA(noexcept(f3(1,B()))); -SA(!noexcept(f3(1,A()))); -SA(!noexcept(f3(A(),1))); -SA(!noexcept(f3(A(),A()))); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept03.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept03.C deleted file mode 100644 index 41c442e90..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept03.C +++ /dev/null @@ -1,51 +0,0 @@ -// Runtime test for noexcept-specification. -// { dg-options "-std=c++0x -Wnoexcept" } -// { dg-do run { target nonpic } } - -#include <exception> -#include <cstdlib> - -void my_terminate () -{ - std::exit (0); -} - -void my_unexpected () -{ - throw; -} - -void g() { throw 1; } -void (*p)() = g; -void f () noexcept (false) -{ - p(); -} - -template <class T> -void f(T) noexcept (noexcept (T())) // { dg-warning "false" } -{ - p(); -} - -template <class T> -void f2(T a) noexcept (noexcept (f (a))) -{ - f(a); -} - -struct A { A() { } }; // { dg-warning "does not throw" } - -int main() -{ - // noexcept(false) allows throw. - try { f(); } catch (int) { } - // noexcept(noexcept(A())) == noexcept(false). - try { f(A()); } catch (int) { } - try { f2(A()); } catch (int) { } - - std::set_terminate (my_terminate); - // noexcept(noexcept(int())) == noexcept(true). - try { f2(1); } catch (...) { } - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept04.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept04.C deleted file mode 100644 index 8df818610..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept04.C +++ /dev/null @@ -1,31 +0,0 @@ -// Make sure that we call terminate when a noexcept spec is violated. -// The function pointers are there to make sure that -// the compiler doesn't get clever about optimizing the calls based on -// knowledge about the called functions. - -// { dg-options "-std=c++0x" } -// { dg-do run } - -#include <exception> -#include <cstdlib> - -void my_terminate () -{ - std::exit (0); -} - -void g() { throw 1; } -void (*p1)() = g; -void f() noexcept { p1(); } -void (*p2)() = f; -void h() { p2(); } - -int main() -{ - std::set_terminate (my_terminate); - - try { h(); } - catch (int) { } - - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept05.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept05.C deleted file mode 100644 index 6acea4327..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept05.C +++ /dev/null @@ -1,19 +0,0 @@ -// Make sure that we force an LSDA for a noexcept spec so -// that the personality routine will call terminate. Also check that we -// optimize away the EH cleanup for var because the personality routine -// will call terminate before unwinding: there should not be an EH region -// (i.e. LEHB/LEHE labels) around the call to g(). - -// { dg-final { scan-assembler-not "_ZSt9terminatev" } } -// { dg-final { scan-assembler-not "EHB" } } -// { dg-final { scan-assembler "LSDA" } } - -// { dg-options "-std=c++0x" } - -struct A { ~A(); }; -void g(); -void f() noexcept -{ - A var; - g(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept06.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept06.C deleted file mode 100644 index 3babdffda..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept06.C +++ /dev/null @@ -1,30 +0,0 @@ -// Test that checking of a nothrow specification uses the one on the -// definition. -// { dg-options "-std=c++0x" } -// { dg-do run } - -#include <exception> -#include <cstdlib> - -void my_unexpected () -{ - std::abort (); -} -void my_terminate () -{ - std::exit (0); -} - -void f() throw(); -void f() noexcept -{ - throw 1; -} - -int main() -{ - std::set_unexpected (my_unexpected); - std::set_terminate (my_terminate); - f(); - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept07.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept07.C deleted file mode 100644 index 0a5773fc8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept07.C +++ /dev/null @@ -1,25 +0,0 @@ -// Test that checking of a nothrow specification uses the one on the -// definition. -// { dg-options "-std=c++0x" } -// { dg-do run } - -#include <exception> -#include <cstdlib> - -void my_unexpected () -{ - std::exit (0); -} - -void f() noexcept; -void f() throw() -{ - throw 1; -} - -int main() -{ - std::set_unexpected (my_unexpected); - f(); - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept08.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept08.C deleted file mode 100644 index 1df85efff..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept08.C +++ /dev/null @@ -1,56 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-prune-output "overriding" } - -struct A -{ - virtual void f(); - virtual void g() throw(); - virtual void h() noexcept; - virtual void i() noexcept(false); - virtual void j() throw(int); -}; - -struct B: A -{ - void f() noexcept; - void g() noexcept; - void h() noexcept; - void i() noexcept; - void j() noexcept; -}; - -struct C: A -{ - void f() throw(); - void g() throw(); - void h() throw(); - void i() throw(); - void j() throw(); -}; - -struct D: A -{ - void f() noexcept(false); - void g() noexcept(false); // { dg-error "looser" } - void h() noexcept(false); // { dg-error "looser" } - void i() noexcept(false); - void j() noexcept(false); // { dg-error "looser" } -}; - -struct E: A -{ - void f() throw(int); - void g() throw(int); // { dg-error "looser" } - void h() throw(int); // { dg-error "looser" } - void i() throw(int); - void j() throw(int); -}; - -struct F: A -{ - void f(); - void g(); // { dg-error "looser" } - void h(); // { dg-error "looser" } - void i(); - void j(); // { dg-error "looser" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept09.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept09.C deleted file mode 100644 index 2a4525cbd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept09.C +++ /dev/null @@ -1,14 +0,0 @@ -// Test that -Wnoexcept works with templates -// { dg-options "-std=c++0x -Wnoexcept" } - -template <class T> -T f (T t) { return t; } // { dg-warning "does not throw" } - -#define SA(X) static_assert(X, #X) - -SA (!noexcept(f(1))); // { dg-warning "noexcept" } - -int main() -{ - f(1); // Use f(int) so it gets instantiated -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept10.C deleted file mode 100644 index 058a387d7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept10.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/49082 -// { dg-options -std=c++0x } - -namespace std { template <class T> T&& declval() noexcept; } - -struct Base -{ - Base(const Base&) noexcept(false); - Base(Base&&) noexcept(false); - ~Base() noexcept(false); -}; - -struct Derived -: Base -{ - // Derived(const Derived&) = default; - // Derived(Derived&&) = default; -}; - -static_assert(!noexcept(Base(std::declval<const Base&>())), "Error"); -static_assert(!noexcept(Derived(std::declval<const Derived&>())), "Error"); // Error - -static_assert(!noexcept(Base(std::declval<Base&&>())), "Error"); -static_assert(!noexcept(Derived(std::declval<Derived&&>())), "Error"); // Error - -static_assert(!noexcept(std::declval<Base&>().~Base()), "Error"); // OK -static_assert(!noexcept(std::declval<Derived&>().~Derived()), "Error"); // Error diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept11.C deleted file mode 100644 index b7c64a6ef..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept11.C +++ /dev/null @@ -1,53 +0,0 @@ -// PR c++/49107 -// { dg-options -std=c++0x } - -template<typename _Tp> -_Tp declval() noexcept; - -template<typename _Tp , typename = decltype(_Tp(declval<_Tp&&>()))> -struct trait -{ - static const bool value=true; -}; - -template<class _T2> -struct pair -{ - _T2 second; - void swap(pair& __p) - noexcept(trait<_T2>::value); -}; - -template < class R_ > -struct Main -{ - Main() {} - Main(const typename R_::Sub1T& r) ; - Main(const typename R_::Sub2T& l) ; -}; - -template < class R_ > -class Sub1 -{ - typedef pair<typename R_::MainT> Rep; - Rep base; -}; - -template < class R_ > -struct Sub2 -{ - typedef pair<typename R_::MainT> Rep; - Rep base; -}; - -struct Kernel -{ - typedef Main<Kernel> MainT; - typedef Sub1<Kernel> Sub1T; - typedef Sub2<Kernel> Sub2T; -}; - -Main<Kernel> f() -{ - return Main<Kernel> (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept12.C deleted file mode 100644 index 1fd1b032f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept12.C +++ /dev/null @@ -1,11 +0,0 @@ -// Test that we handle merging with deferred noexcept. -// { dg-options -std=c++0x } - -template <class U> -struct O -{ - template <class T> - void f() noexcept(noexcept(T())); -}; - -template<> template<> void O<int>::f<int>() noexcept { } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept13.C deleted file mode 100644 index 7d51c82b5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept13.C +++ /dev/null @@ -1,78 +0,0 @@ -// PR c++/49107 -// { dg-options -std=c++0x } - -namespace std -{ - template<typename _Tp> _Tp&& declval() noexcept; - - struct true_type { static const bool value = true; }; - struct false_type { static const bool value = false; }; - - template<typename _Tp, typename _Arg> - struct __is_direct_constructible_impl - { - template<typename _Tp2, typename _Arg2, typename - = decltype(::new _Tp2(declval<_Arg2>()))> - static true_type __test(int); - - template<typename, typename> - static false_type __test(...); - - typedef decltype(__test<_Tp, _Arg>(0)) type; - }; - - template<typename _Tp, typename _Arg> - struct __is_direct_constructible_new_safe - : public __is_direct_constructible_impl<_Tp, _Arg>::type - { }; - - template<class _T1, class _T2> - struct pair - { - pair() = default; - constexpr pair(const pair&) = default; - - pair(pair&& __p) - noexcept(__is_direct_constructible_new_safe<_T2,_T2&&>::value); - }; -} - -template <class R_> -struct Vector3 -{ - typedef typename R_::Ray_3 Ray_3; - Vector3() {} - explicit Vector3(const Ray_3& r); -}; - -template < class R_ > class LineC3 -{ - typedef typename R_::Vector_3 Vector_3; - std::pair<int, Vector_3> x; -}; - -template < class R_ > class RayH3 -{ - typedef typename R_::Vector_3 Vector_3; - std::pair<int, Vector_3> x; -}; - -template <typename Kernel > -struct Homogeneous_base -{ - typedef LineC3<Kernel> Line_3; - typedef RayH3<Kernel> Ray_3; -}; - -template < typename RT_> -struct Simple_homogeneous -: public Homogeneous_base< Simple_homogeneous<RT_> > -{ - typedef Vector3<Simple_homogeneous<RT_> > Vector_3; -}; - -int main() -{ - typedef Simple_homogeneous<double> R; - R::Line_3 l3; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept14.C deleted file mode 100644 index eba2c4080..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept14.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/50309 -// { dg-options -std=c++0x } - -void foo () noexcept () { } // { dg-error "expected" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept15.C deleted file mode 100644 index c735b9e53..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept15.C +++ /dev/null @@ -1,34 +0,0 @@ -// PR c++/50391 -// { dg-options -std=c++0x } - -#include <type_traits> - -template<class Tp> - struct single - { - Tp elem; // { dg-error "incomplete type" } - - constexpr single(const Tp& e) - : elem(e) { } // { dg-error "invalid field" } - - single(single&& s) - noexcept(std::is_nothrow_move_constructible<Tp>::value) - : elem(s.elem) { } // { dg-error "invalid field|no member" } - }; - -template<class Tp> - constexpr single<typename std::decay<Tp>::type> - make_single(Tp&& x) - { - return single<typename std::decay<Tp>::type>(x); - } - -class Blob; // { dg-error "forward declaration" } - -void -foo(Blob *b) -{ - make_single(*b); -} - -// { dg-prune-output "include" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept16.C deleted file mode 100644 index 10e0be958..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept16.C +++ /dev/null @@ -1,130 +0,0 @@ -// PR c++/50972 -// { dg-do compile { target c++11 } } -// Ignore all errors, we're just testing that this doesn't ICE -// { dg-prune-output "error" } - -namespace std -typedef long unsigned int size_t; -template<typename...> -struct __and_; -template<typename _Tp> -struct is_nothrow_move_constructible -{ -}; -template<typename _Tp> -struct is_nothrow_move_assignable -struct __add_rvalue_reference_helper<_Tp, true> -{ typedef _Tp&& type; }; -template<typename _Tp> -struct add_rvalue_reference - : public __add_rvalue_reference_helper<_Tp> -{ -}; -template<typename _Tp> -inline typename add_rvalue_reference<_Tp>::type -declval() noexcept -{ -} -} -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -template<typename _Tp> -class new_allocator -{ -}; -} -namespace std __attribute__ ((__visibility__ ("default"))) -class allocator: public __gnu_cxx::new_allocator<_Tp> -{ - template<typename _Tp1> - struct rebind - { typedef allocator<_Tp1> other; }; -}; -} -namespace std __attribute__ ((__visibility__ ("default"))) -template<typename _Alloc, typename _Tp> -struct __alloctr_rebind<_Alloc, _Tp, true> -{ - typedef typename _Alloc::template rebind<_Tp>::other __type; -}; -template<typename _Alloc> -struct allocator_traits -{ - template<typename _Tp> - struct __rebind_alloc - { - typedef typename __alloctr_rebind<_Alloc, _Tp>::__type __type; - }; -} - } -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) -template<typename _Alloc> -struct __alloc_traits -{ - typedef std::allocator_traits<_Alloc> _Base_type; - static constexpr bool _S_nothrow_swap() - { - return !_S_propagate_on_swap() - || noexcept(swap(std::declval<_Alloc&>(), std::declval<_Alloc&>())); - } - template<typename _Tp> - struct rebind - { typedef typename _Base_type::template __rebind_alloc<_Tp>::__type other; }; -}; -} -namespace std __attribute__ ((__visibility__ ("default"))) -template<typename _Tp, typename _Alloc> -struct _Vector_base -{ - typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template - rebind<_Tp>::other _Tp_alloc_type; -}; -template<typename _Tp, typename _Alloc = std::allocator<_Tp> > -class vector : protected _Vector_base<_Tp, _Alloc> -{ - typedef _Vector_base<_Tp, _Alloc> _Base; - typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; - typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; - swap(vector& __x) - noexcept(_Alloc_traits::_S_nothrow_swap()); -}; -} -namespace lexertl -namespace detail -} -namespace detail -template<typename id_type> -struct basic_internals -{ - typedef std::vector<id_type> id_type_vector; -}; -}; -template<typename char_type, typename id_type = std::size_t> -class basic_state_machine -{ - typedef detail::basic_internals<id_type> internals; - void minimise () - { - minimise_dfa (dfa_alphabet_, *dfa_, size_); - } - typedef typename internals::id_type_vector id_type_vector; - void minimise_dfa (const id_type dfa_alphabet_, - id_type_vector &dfa_, std::size_t size_) - { - id_type_vector new_dfa_ (front_, front_ + dfa_alphabet_); - dfa_.swap (new_dfa_); - } -} - } -namespace std __attribute__ ((__visibility__ ("default"))) -template<typename _Tp> -void -swap(_Tp&, _Tp&) - noexcept(__and_<is_nothrow_move_constructible<_Tp>, - is_nothrow_move_assignable<_Tp>>::value) - ; -typedef lexertl::basic_state_machine<char32_t> lexstate; -lexstate m_state_machine; -GenerateLexer() -{ - m_state_machine.minimise(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept17.C deleted file mode 100644 index 82cd844c0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept17.C +++ /dev/null @@ -1,54 +0,0 @@ -// PR c++/50043 -// { dg-options -std=c++11 } - -struct True1 {}; -struct True2 { ~True2(); }; -struct True3 { ~True3(){ throw 0; } }; -struct False { ~False() noexcept(false); }; - -template <typename Base> -struct A : Base -{ -}; - -template <typename Member> -struct B -{ - Member mem; -}; - -template <typename Base, typename Member> -struct C : Base -{ - Member mem; -}; - -#define SA(X) static_assert(X, #X) - -SA( noexcept(True1())); -SA( noexcept(True2())); -SA( noexcept(True3())); -SA(!noexcept(False())); - -SA( noexcept(A<True1>())); -SA( noexcept(A<True2>())); -SA( noexcept(A<True3>())); -SA(!noexcept(A<False>())); - -SA( noexcept(B<True1>())); -SA( noexcept(B<True2>())); -SA( noexcept(B<True3>())); -SA(!noexcept(B<False>())); - -SA( noexcept(C<True1, True2>())); -SA( noexcept(C<True1, True3>())); -SA( noexcept(C<True2, True3>())); -SA( noexcept(C<True2, True1>())); -SA( noexcept(C<True3, True1>())); -SA( noexcept(C<True3, True2>())); -SA(!noexcept(C<False, True1>())); -SA(!noexcept(C<False, True2>())); -SA(!noexcept(C<False, True3>())); -SA(!noexcept(C<True1, False>())); -SA(!noexcept(C<True2, False>())); -SA(!noexcept(C<True3, False>())); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept18.C deleted file mode 100644 index 953fb0ec8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept18.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/54207 -// { dg-do compile } -// { dg-options "-std=c++11" } - -typedef bool B; -constexpr B foo () { return true; } - -void -bar () noexcept (foo ()) -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept19.C deleted file mode 100644 index 12ff86e0d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept19.C +++ /dev/null @@ -1,29 +0,0 @@ -// PR c++/55652 -// { dg-do compile } -// { dg-options "-std=c++11" } - -template <typename T> -struct A -{ - static const bool a = false; -}; - -template <typename X, typename Y = A <X>> -struct B -{ - B () noexcept (A <Y>::a) {} -}; - -template <typename X, typename Y> -struct C -{ - X x; - Y y; -}; - -struct D -{ - D () throw (int); -}; - -C <D, B <D>> c; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept20.C deleted file mode 100644 index b86760292..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/noexcept20.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/56071 -// { dg-options -std=c++11 } - -class B -{ - template <typename T> friend struct A; - B() {} -}; - -template <typename T> -struct A -{ - A() noexcept(noexcept(B())) { } -}; - -struct C -{ - C() - { - static_assert( !noexcept(A<int>()), "" ); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nolinkage1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nolinkage1.C deleted file mode 100644 index b69b6ddc4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nolinkage1.C +++ /dev/null @@ -1,22 +0,0 @@ -// DR 757 allows using types without linkage in declarations with linkage. -// Test that this doesn't lead to link-time collisions. - -// { dg-additional-sources "nolinkage1a.cc" } -// { dg-do link } -// { dg-options -std=c++0x } - -#include "nolinkage1.h" - -typedef struct { int i; } *AP; - -void f(AP) { } - -A<AP> a; - -static void g() -{ - struct B { }; - A<B> a; -} - -int main() { g(); f(0); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nolinkage1.h b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nolinkage1.h deleted file mode 100644 index 3cb5f63b3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nolinkage1.h +++ /dev/null @@ -1,8 +0,0 @@ -template <class T> -struct A -{ - A(); -}; - -template <class T> -A<T>::A() { } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc deleted file mode 100644 index f8528f3e6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc +++ /dev/null @@ -1,15 +0,0 @@ -#include "nolinkage1.h" - -typedef struct { double d; } *BP; - -void f(BP) { } - -A<BP> b; - -static void g() -{ - struct B { }; - A<B> a; -} - -int dummy() { g(); f(0); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/not_special.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/not_special.C deleted file mode 100644 index 2b510bb9a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/not_special.C +++ /dev/null @@ -1,52 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test that move constructor and move assignement are special. -// That is, their presence should cause compiler declared -// copy ctor or assignment to be deleted. - -// { dg-options "-std=c++0x" } - -#include <assert.h> - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {char x[1];}; -struct two {char x[2];}; - -int copy = 0; -int assign = 0; - -struct base -{ - base() {} - base(const base&) {++copy;} - base& operator=(const base&) {++assign; return *this;} -}; - -struct derived // { dg-message "declares a move" } - : base -{ - derived() {} - derived(derived&&) {} - derived& operator=(derived&&) {return *this;} -}; - -int test1() -{ - derived d; - derived d2(static_cast<derived&&>(d)); // should not call base::(const base&) - assert(copy == 0); - derived d3(d); // { dg-error "deleted" } - assert(copy == 1); - d2 = static_cast<derived&&>(d); // should not call base::operator= - assert(assign == 0); - d3 = d; // { dg-error "deleted" } - assert(assign == 1); - return 0; -} - -int main() -{ - return test1(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-const1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-const1.C deleted file mode 100644 index ddf9f04c5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-const1.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/50707 -// { dg-options -std=c++0x } - -int g; - -struct S { - int const v=g; -}; - -S s; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer1.C deleted file mode 100644 index b3d9b9357..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer1.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options -std=c++0x } - -#define SA(X) static_assert(X,#X) - -struct A -{ - int i = f(); - int j { f() }; - static constexpr int f() { return 42; } -}; - -constexpr A a; -SA(a.i == 42); -SA(a.j == 42); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer2.C deleted file mode 100644 index 1951262f9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer2.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - int i = f(); - static int f(int i = 42) { return i; } -}; - -A a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer3.C deleted file mode 100644 index 2777fb5d8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer3.C +++ /dev/null @@ -1,19 +0,0 @@ -// Do NSDMI get deferred instantiation? -// { dg-options -std=c++0x } - -template <class T> -struct A -{ - T t = T(42); - constexpr A() { } - A(T t): t(t) { } -}; - -struct B { }; - -#define SA(X) static_assert(X,#X) - -constexpr A<int> a1; -SA(a1.t == 42); - -A<B> a2 {B()}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer4.C deleted file mode 100644 index 65b2e7380..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer4.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-do run } - -struct A -{ - int i = 42; - int j = f(); - int k = this->f(); - int f() { return i++; } -}; - -A a; - -int main() -{ - if (a.j != 42 || a.k != 43 || a.i != 44) - __builtin_abort(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer5.C deleted file mode 100644 index 85abfbf86..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer5.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/51666 (DR 325) -// { dg-options -std=c++0x } - -template<typename T, typename U> -struct tuple -{ - tuple(T, U) { } -}; - -struct Y -{ - tuple<int, int> tt = tuple<int, int>{1, 2}; -}; - -struct A -{ - int i = 0; - int j = i < 42, k; // OK, declares j and k - int l = i < 42, 24; // { dg-error "" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer6.C deleted file mode 100644 index 033c14264..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer6.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-do compile { target c++11 } } - -struct A // { dg-error "non-static data member" } -{ - int i = (A(), 42); // { dg-message "required here" } -}; - -A a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-eh1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-eh1.C deleted file mode 100644 index 09c92d2f1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-eh1.C +++ /dev/null @@ -1,18 +0,0 @@ -// Core issue 1351 -// { dg-do run { xfail *-*-* } } -// { dg-options -std=c++0x } - -bool fail; -struct A -{ - int i = fail ? throw "noooooooo" : 42; -}; - -int main() -{ - A a1; - if (a1.i != 42) return 1; - fail = true; - try { A a2; } - catch (...) { } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-list1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-list1.C deleted file mode 100644 index 526f29ae2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-list1.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/50563 -// { dg-options -std=c++0x } - -struct S1 { - int a{10}, b{20}; // OK -}; - -struct S2 { - int a, b = 20; // OK -}; - -struct S3 { - int a = 10, b = 20; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-list2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-list2.C deleted file mode 100644 index a6321ffb6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-list2.C +++ /dev/null @@ -1,32 +0,0 @@ -// PR c++/50930 -// { dg-options -std=c++0x } - -struct nmc { - nmc() = default; - nmc(nmc&&) = delete; // line 3 -}; - -struct A { // line 6 - nmc n{}; - nmc n2 = {}; -} a; // line 8 - -// ------ - -struct lock_t { - int lock[4]; -}; - -struct pthread_mutex_t { - volatile lock_t __spinlock; -}; - -struct mutex { - pthread_mutex_t m = { }; - mutex() = default; -}; - -int main() -{ - mutex mx; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-template1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-template1.C deleted file mode 100644 index 04f1e0391..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-template1.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-do run } -// { dg-options -std=c++0x } - -struct base -{ - int calc_avg() { return 42; } -}; - -template <class T> struct nsdmi : T -{ - nsdmi() {} - int avg() { return avg_; } - int avg_ = this->calc_avg(); -}; - -int main() -{ - nsdmi<base> x; - if (x.avg() != 42) - __builtin_abort(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-template2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-template2.C deleted file mode 100644 index 27b0aa5f9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-template2.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/50614 -// { dg-options "-std=c++0x -fcompare-debug" } - -struct A -{ - int f (); -}; - -template <int> struct B : A -{ - int i = this->f (); -}; - -B<0> b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-virtual1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-virtual1.C deleted file mode 100644 index 4aa8d482d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi-virtual1.C +++ /dev/null @@ -1,26 +0,0 @@ -// PR c++/51611 -// { dg-options -std=c++0x } -// { dg-do run } - -struct A -{ - A(): i(42) { } - int i; - int f() { return i; } -}; - -struct B : virtual A -{ - int j = i + f(); - int k = A::i + A::f(); -}; - -struct C: B { int pad; }; - -int main() -{ - C c; - if (c.j != 84 || c.k != 84) - __builtin_abort(); -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi1.C deleted file mode 100644 index 159c16de8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi1.C +++ /dev/null @@ -1,53 +0,0 @@ -// { dg-do run } -// { dg-options -std=c++0x } - -struct A -{ - int i = 42; -}; - -struct B -{ - int i = 42; - B() { } - B(int i): i(i) { } -}; - -template <class T, T t> -struct C -{ - T m = t; -}; - -template <class T, T t> -struct D -{ - T m = t; - D() { } - D(T m):m(m) { } -}; - -int main() -{ - A a1; - if (a1.i != 42) return 1; - A a2{}; - if (a2.i != 42) return 2; - A a3[1]; - if (a3[0].i != 42) return 3; - - B b1; - if (b1.i != 42) return 3; - B b2 (24); - if (b2.i != 24) return 4; - - C<int,3> c1; - if (c1.m != 3) return 5; - C<int,5> c2 {}; - if (c2.m != 5) return 6; - - D<int,3> d1; - if (d1.m != 3) return 7; - D<int,3> d2 (5) ; - if (d2.m != 5) return 8; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi2.C deleted file mode 100644 index 9636bed88..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi2.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - int i; - constexpr A(int i): i(i) {} -}; - -struct B -{ - A a1 = 1; - A a2 { 2 }; - A a3 = { 3 }; -}; - -#define SA(X) static_assert(X,#X) - -constexpr B b; -SA(b.a1.i == 1); -SA(b.a2.i == 2); -SA(b.a3.i == 3); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi3.C deleted file mode 100644 index 73b2bc2e1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi3.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - int i; - explicit constexpr A(int i): i(i) {} -}; - -struct B -{ - A a1 = 1; // { dg-error "" } - A a2 { 2 }; - A a3 = { 3 }; // { dg-error "" } -}; - -constexpr B b; // { dg-error "B::B" } - -// { dg-message "a1. is invalid" "" { target *-*-* } 11 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi4.C deleted file mode 100644 index db365cb55..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi4.C +++ /dev/null @@ -1,24 +0,0 @@ -// { dg-do run } -// { dg-options -std=c++0x } - -int c; - -struct A -{ - A() { } - A(const A&) { } -}; - -A f() { ++c; return A(); } - -struct B -{ - A a = f(); -}; - -int main() -{ - B b1, b2; - if (c != 2) - __builtin_abort(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi5.C deleted file mode 100644 index 62803b081..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi5.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-options -std=c++0x } - -struct X -{ - int x = 5; - int f() { return x; } -}; -struct Y : X -{ - int y = this->x; -}; -template <class T> struct Z : T -{ - int y = this->f(); -}; -int main() -{ - Y foo; - Z<X> bar; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi6.C deleted file mode 100644 index bb455e778..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi6.C +++ /dev/null @@ -1,8 +0,0 @@ -// Origin PR c++/51477 -// { dg-options "-std=c++11" } - -struct A -{ - typedef int int T; // { dg-error "two or more data types in declaration" } - struct T x[1] = { 0 }; // { dg-error "invalid|forward" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi7.C deleted file mode 100644 index ea1957775..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi7.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/53594 -// { dg-do compile } -// { dg-options "-std=c++11 -Wuninitialized" } - -struct A -{ - const int a = 6; // { dg-bogus "non-static const member" } - static int b; - int &c = b; // { dg-bogus "non-static reference" } -}; - -struct B -{ - const int d; // { dg-warning "non-static const member" } - int &e; // { dg-warning "non-static reference" } - int f = 7; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi8.C deleted file mode 100644 index f89bec6d1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nsdmi8.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/55670 -// { dg-do compile { target c++11 } } - -template <class T> using F = T; -struct X { - F<void ()>* fp = nullptr; -}; -int main () { return 0; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr01.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr01.C deleted file mode 100644 index de3860c9e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr01.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test assignment to pointer - -char* const cp1 = nullptr; -char* const cp2 = __null; -char* const cp3 = 0; -decltype(nullptr) mynull = 0; -char* const cp4 = mynull; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr02.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr02.C deleted file mode 100644 index 80977cb2f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr02.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test assignment to nullptr_t - -typedef decltype(nullptr) nullptr_t; - -const nullptr_t np1 = nullptr; -const nullptr_t np2 = __null; -const nullptr_t np3 = 0; -const nullptr_t np4 = np1; -const nullptr_t np5 = np2; -const nullptr_t np6 = np3; -const nullptr_t np7 = np4; -const nullptr_t np8 = np5; -const nullptr_t np9 = np6; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr03.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr03.C deleted file mode 100644 index b6df89637..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr03.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test assignment to int - -const int n1 = nullptr; // { dg-error "cannot convert " } -decltype(nullptr) mynull = 0; -const int n2 = mynull; // { dg-error "cannot convert " } - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr04.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr04.C deleted file mode 100644 index be581bcb6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr04.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test cast to int - -__extension__ typedef __INTPTR_TYPE__ intptr_t; - -const int n4 = static_cast<const int>(nullptr); // { dg-error "invalid static_cast " } -const short int n5 = reinterpret_cast<short int>(nullptr); // { dg-error "loses precision" } -const intptr_t n6 = reinterpret_cast<intptr_t>(nullptr); -const intptr_t n7 = (intptr_t)nullptr; - -decltype(nullptr) mynull = 0; -const int n8 = static_cast<const int>(mynull); // { dg-error "invalid static_cast " } -const short int n9 = reinterpret_cast<short int>(mynull); // { dg-error "loses precision" } -const intptr_t n10 = reinterpret_cast<intptr_t>(mynull); -const intptr_t n11 = (intptr_t)mynull; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr05.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr05.C deleted file mode 100644 index 22a8b51c1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr05.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test assignment to method pointer - -class F { }; - -typedef void (F::*pmf)(); - -const pmf pmf1 = nullptr; -const pmf pmf2 = __null; -const pmf pmf3 = 0; -decltype(nullptr) mynull = 0; -const pmf pmf4 = mynull; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr06.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr06.C deleted file mode 100644 index c50bb9bc1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr06.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test compare to pointer - -#define assert_true(b) do { char c[2 * bool(b) - 1]; } while(0) - -char* const cp1 = nullptr; - -void fun() -{ - assert_true(cp1 == nullptr); - decltype(nullptr) mynull = 0; - assert_true(cp1 == mynull); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr07.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr07.C deleted file mode 100644 index 64d442be3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr07.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test compare to int - -void fun() -{ - int n = 0; - if( n == nullptr ); // { dg-error "invalid operands of types " } - const int m = 1; - if( m == nullptr ); // { dg-error "invalid operands of types " } - decltype(nullptr) mynull = 0; - if( n == mynull ); // { dg-error "invalid operands of types " } - if( m == mynull ); // { dg-error "invalid operands of types " } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr08.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr08.C deleted file mode 100644 index 1e5db278d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr08.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test conversion to bool - -#define assert_true(b) do { char c[2 * bool(b) - 1]; } while(0) - -void fun() -{ - assert_true(nullptr ? false : true); - decltype(nullptr) mynull = 0; - assert_true(mynull ? false : true); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr09.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr09.C deleted file mode 100644 index b35a3c320..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr09.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test compare to literal 0 - -void fun() -{ - if( nullptr == 0 ); - decltype(nullptr) mynull = 0; - if( mynull == 0 ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr10.C deleted file mode 100644 index fa32267ec..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr10.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test arithmetic operations - -void fun() -{ - nullptr = 0; // { dg-error "lvalue required as left operand" } - nullptr + 2; // { dg-error "invalid operands of types " } - decltype(nullptr) mynull = 0; - mynull = 1; // { dg-error "cannot convert" } - mynull = 0; - mynull + 2; // { dg-error "invalid operands of types " } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr11.C deleted file mode 100644 index 5907816a8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr11.C +++ /dev/null @@ -1,40 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test relational operators - -#define assert_true(b) do { char c[2 * bool(b) - 1]; } while(0) -#define assert_false(b) do { char c[1 - 2 * bool(b)]; } while(0) - -void fun() -{ - assert_true(nullptr == nullptr); - assert_false(nullptr != nullptr); - assert_false(nullptr < nullptr); - assert_false(nullptr > nullptr); - assert_true(nullptr <= nullptr); - assert_true(nullptr >= nullptr); - - decltype(nullptr) mynull = 0; - - assert_true(mynull == nullptr); - assert_false(mynull != nullptr); - assert_false(mynull < nullptr); - assert_false(mynull > nullptr); - assert_true(mynull <= nullptr); - assert_true(mynull >= nullptr); - - assert_true(nullptr == mynull); - assert_false(nullptr != mynull); - assert_false(nullptr < mynull); - assert_false(nullptr > mynull); - assert_true(nullptr <= mynull); - assert_true(nullptr >= mynull); - - assert_true(mynull == mynull); - assert_false(mynull != mynull); - assert_false(mynull < mynull); - assert_false(mynull > mynull); - assert_true(mynull <= mynull); - assert_true(mynull >= mynull); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr12.C deleted file mode 100644 index 1713259f1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr12.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test sizeof - -static_assert(sizeof(nullptr) == sizeof(void*), "sizeof(nullptr) is wrong"); -const decltype(nullptr) mynull = 0; -static_assert(sizeof(mynull) == sizeof(void*), "sizeof(nullptr) is wrong"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr13.C deleted file mode 100644 index a9377584c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr13.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test typeid - -#include <typeinfo> - -#define assert_true(b) do { char c[2 * bool(b) - 1]; } while(0) - -void fun() -{ - typeid(nullptr); - const decltype(nullptr) mynull = 0; - typeid(mynull); - assert_true(typeid(nullptr) == typeid(mynull)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr14.C deleted file mode 100644 index 4c4627b54..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr14.C +++ /dev/null @@ -1,25 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test overload preference char*/int - -template <typename T, typename U> struct tType_equal; -template <typename T> struct tType_equal<T, T> { typedef void type; }; - -template <typename T, typename U> -inline typename tType_equal<T, U>::type -type_equal(U) { } - -char* f( char* ); -int f( int ); -long int f( long int ); - -void test_f() -{ - // Overloading cases - // - type_equal<char*>(f(nullptr)); - type_equal<int>(f(0)); - decltype(nullptr) mynull = 0; - type_equal<char*>(f(mynull)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr15.C deleted file mode 100644 index af661ecc3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr15.C +++ /dev/null @@ -1,26 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test template deduction - -template <typename T, typename U> struct tType_equal; -template <typename T> struct tType_equal<T, T> { typedef void type; }; - -template <typename T, typename U> -inline typename tType_equal<T, U>::type -type_equal(U) { } - -template<typename T> T* g( T* t ); // { dg-message "note" } - -void test_g() -{ - // Deduction to nullptr_t, no deduction to pointer type - // - g(nullptr); // { dg-error "no matching function for call to " } - // { dg-message "(candidate|mismatched types)" "candidate note" { target *-*-* } 19 } - type_equal<float*>(g((float*)nullptr)); - decltype(nullptr) mynull = 0; - g(mynull); // { dg-error "no matching function for call to " } - // { dg-message "(candidate|mismatched types)" "candidate note" { target *-*-* } 23 } - type_equal<float*>(g((float*)mynull)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr16.C deleted file mode 100644 index 0ec0b6a12..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr16.C +++ /dev/null @@ -1,25 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test template deduction - -typedef decltype(nullptr) nullptr_t; - -template <typename T, typename U> struct tType_equal; -template <typename T> struct tType_equal<T, T> { typedef void type; }; - -template <typename T, typename U> -inline typename tType_equal<T, U>::type -type_equal(U) { } - -template<typename T> T h( T t ); - -void test_h() -{ - type_equal<int>(h(0)); - type_equal<nullptr_t>(h(nullptr)); - type_equal<float*>(h((float*)nullptr)); - nullptr_t mynull = 0; - type_equal<nullptr_t>(h(mynull)); - type_equal<float*>(h((float*)mynull)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr17.C deleted file mode 100644 index 2e580557b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr17.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test that bool is a better overload match than int - -template <typename T, typename U> struct tType_equal; -template <typename T> struct tType_equal<T, T> { typedef void type; }; - -template <typename T, typename U> -inline typename tType_equal<T, U>::type -type_equal(U) { } - -int i( int ); -long int i( long int ); -bool i( bool ); - -void test_i() -{ - // Overload to bool, not int - type_equal<bool>(i(nullptr)); - decltype(nullptr) mynull = 0; - type_equal<bool>(i(mynull)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr18.C deleted file mode 100644 index b8fa38c71..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr18.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test overload of pointer versus bool when applied on a nullptr_t - -template <typename T, typename U> struct tType_equal; -template <typename T> struct tType_equal<T, T> { typedef void type; }; - -template <typename T, typename U> -inline typename tType_equal<T, U>::type -type_equal(U) { } - -char* j( char* ); -bool j( bool ); - -void test_j() -{ - type_equal<char*>(j(nullptr)); - decltype(nullptr) mynull = 0; - type_equal<char*>(j(mynull)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr19.C deleted file mode 100644 index ecc36139a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr19.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -// Test overload of pointer versus nullptr_t when applied on a literal 0/__null - -typedef decltype(nullptr) nullptr_t; - -char* k( char* ); /* { dg-message "note" } */ -nullptr_t k( nullptr_t ); /* { dg-message "note" } */ - -void test_k() -{ - k(0); /* { dg-error "is ambiguous" } */ - // { dg-message "candidate" "candidate note" { target *-*-* } 13 } - k(__null); /* { dg-error "is ambiguous" } */ - // { dg-message "candidate" "candidate note" { target *-*-* } 15 } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr20.C deleted file mode 100644 index 3e5840677..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr20.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// Test passing to ellipisis - -#include <cstdio> -#include <cstring> - -int main() -{ - char buf1[64]; - char buf2[64]; - char buf3[64]; - - std::sprintf(buf1, "%p", (void*)0); - std::sprintf(buf2, "%p", nullptr); - decltype(nullptr) mynull = 0; - std::sprintf(buf3, "%p", nullptr); - return std::strcmp(buf1, buf2) != 0 || std::strcmp(buf1, buf3) != 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr21.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr21.C deleted file mode 100644 index 8362bd296..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr21.C +++ /dev/null @@ -1,55 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// Test throw and catch - -extern "C" void abort (void); - -typedef decltype(nullptr) nullptr_t; - -int result[2]; - -void __attribute__((noinline)) -foo (int i, int j) -{ - result[i] = j; -} - -int main() -{ - try { - throw nullptr; - } catch (void*) { - foo (0, 1); - } catch (bool) { - foo (0, 2); - } catch (int) { - foo (0, 3); - } catch (long int) { - foo (0, 4); - } catch (nullptr_t) { - foo (0, 5); - } catch (...) { - foo (0, 6); - } - - nullptr_t mynull = 0; - try { - throw mynull; - } catch (void*) { - foo (1, 1); - } catch (bool) { - foo (1, 2); - } catch (int) { - foo (1, 3); - } catch (long int) { - foo (1, 4); - } catch (nullptr_t) { - foo (1, 5); - } catch (...) { - foo (1, 6); - } - - if (result[0] != 5 || result[1] != 5) - abort (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr22.C deleted file mode 100644 index d800f9869..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr22.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x -Wall -Wformat=2 -Wstrict-null-sentinel" } - -// Test various warnings - -void f1(const char*, ...) __attribute__((format(printf, 1, 2))); -void f2(const char*) __attribute__((nonnull)); -void f3(const char*, ...) __attribute__((sentinel)); - -void f() -{ - f1("%p", nullptr); - f2(nullptr); // { dg-warning "null argument where non-null required " } - f3("x", "y", __null); // { dg-warning "missing sentinel in function call" } - f3("x", "y", nullptr); - decltype(nullptr) mynull = 0; - f1("%p", mynull); - f2(mynull); // { dg-warning "null argument where non-null required " } - f3("x", "y", mynull); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr23.C deleted file mode 100644 index a078269de..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr23.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/50361 -// { dg-options -std=c++0x } - -#include <initializer_list> - -struct Foo -{ - Foo(std::initializer_list<Foo>) { }; - - template<class T> Foo(T t) { T u(t); }; - -private: - union Data - { - Data() : null(nullptr) {} - - std::nullptr_t null; - } u_; -}; - -int main() -{ - Foo f = { {} }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr24.C deleted file mode 100644 index f39177966..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr24.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/50371 -// { dg-options -std=c++0x } - -template<decltype(nullptr)> -struct nt; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr25.C deleted file mode 100644 index b8a7f45c6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr25.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options -std=c++0x } - -template<decltype(nullptr)> -struct nt{}; - -nt<nullptr> x; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr26.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr26.C deleted file mode 100644 index b7421b8d0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr26.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/51530 -// { dg-options -std=c++0x } - -template <class T, class U> -void f(T, U); - -template <class T> -void f(T, decltype(nullptr)); - -int main() -{ - f(1, nullptr); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr27.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr27.C deleted file mode 100644 index 1b86868aa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr27.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/52706 -// { dg-options "-std=c++11 -fabi-version=0" } -// { dg-final { scan-assembler "_Z1fIDnLDn0EEiT_" } } - -template<class T, decltype(nullptr) = nullptr> -int f(T); - -int i2 = f(nullptr); // 17 diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr28.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr28.C deleted file mode 100644 index 05fbe57b1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr28.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-do run { target c++11 } } - -typedef decltype(nullptr) nullptr_t; - -int i; -nullptr_t n; -const nullptr_t& f() { ++i; return n; } - -nullptr_t g() { return f(); } - -int main() -{ - g(); - if (i != 1) - __builtin_abort (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr29.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr29.C deleted file mode 100644 index a8e35a9b6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/nullptr29.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/53882 -// { dg-options "-std=gnu++11 -O" } - -void f(decltype(nullptr) &__restrict np) { } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload-conv-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload-conv-1.C deleted file mode 100644 index 778111283..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload-conv-1.C +++ /dev/null @@ -1,29 +0,0 @@ -// { dg-options "--std=c++0x" } -// { dg-do link } - -struct S {}; - -struct T -{ - operator S() { return S(); } -}; - -struct U -{ - operator S&() { return *static_cast<S*>(0); } -}; - -void f(const S&); -void f(S&&) {} - -void g(const S&) {} -void g(S&&); - -int main() -{ - T t; - f(t); - - U u; - g(u); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload-conv-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload-conv-2.C deleted file mode 100644 index 0e622bcac..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload-conv-2.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options "--std=c++0x" } -// { dg-do link } - -struct T {}; -struct S -{ - S(T const &) {} -}; - -void f(const S&); -void f(S&&) {} - -int main() -{ - T t; - f(t); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload.C deleted file mode 100644 index 3782d4a20..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload.C +++ /dev/null @@ -1,708 +0,0 @@ -// { dg-options "--std=c++0x" } -// { dg-do link } -// Generated by overload.py - -template<typename _Tp> -inline _Tp&& -movel(_Tp& __t) -{ return static_cast<_Tp&&>(__t); } - -struct S{}; - -S l; // lvalue (l) -S const cl = l; // const lvalue (cl) -S r() { return l; } // rvalue (r) -S const cr() { return l; } // const rvalue (cr) -S & nl = l; // named lvalue reference (nl) -S const & ncl = l; // named const lvalue reference (ncl) -S && nr = movel(l); // named rvalue reference (nr) -S const && ncr = movel(l); // named const rvalue reference (ncr) -S & ul() { return l; } // unnamed lvalue reference (ul) -S const & ucl() { return l; } // unnamed const lvalue reference (ucl) -S && ur() { return movel(l); } // unnamed rvalue reference (ur) -S const && ucr() { return movel(l); } // unnamed const rvalue reference (ucr) - -void l0001(const S&&) {} - -void l0010(S&&) {} - -void l0011(S&&) {} -void l0011(const S&&); - -void l0100(const S&) {} - -void l0101(const S&) {} -void l0101(const S&&); - -void l0110(const S&) {} -void l0110(S&&); - -void l0111(const S&) {} -void l0111(S&&); -void l0111(const S&&); - -void l1000(S&) {} - -void l1001(S&) {} -void l1001(const S&&); - -void l1010(S&) {} -void l1010(S&&); - -void l1011(S&) {} -void l1011(S&&); -void l1011(const S&&); - -void l1100(S&) {} -void l1100(const S&); - -void l1101(S&) {} -void l1101(const S&); -void l1101(const S&&); - -void l1110(S&) {} -void l1110(const S&); -void l1110(S&&); - -void l1111(S&) {} -void l1111(const S&); -void l1111(S&&); -void l1111(const S&&); - -void cl0001(const S&&) {} - -void cl0011(S&&); -void cl0011(const S&&) {} - -void cl0100(const S&) {} - -void cl0101(const S&) {} -void cl0101(const S&&); - -void cl0110(const S&) {} -void cl0110(S&&); - -void cl0111(const S&) {} -void cl0111(S&&); -void cl0111(const S&&); - -void cl1001(S&); -void cl1001(const S&&) {} - -void cl1011(S&); -void cl1011(S&&); -void cl1011(const S&&) {} - -void cl1100(S&); -void cl1100(const S&) {} - -void cl1101(S&); -void cl1101(const S&) {} -void cl1101(const S&&); - -void cl1110(S&); -void cl1110(const S&) {} -void cl1110(S&&); - -void cl1111(S&); -void cl1111(const S&) {} -void cl1111(S&&); -void cl1111(const S&&); - -void r0001(const S&&) {} - -void r0010(S&&) {} - -void r0011(S&&) {} -void r0011(const S&&); - -void r0100(const S&) {} - -void r0101(const S&); -void r0101(const S&&) {} - -void r0110(const S&); -void r0110(S&&) {} - -void r0111(const S&); -void r0111(S&&) {} -void r0111(const S&&); - -void r1001(S&); -void r1001(const S&&) {} - -void r1010(S&); -void r1010(S&&) {} - -void r1011(S&); -void r1011(S&&) {} -void r1011(const S&&); - -void r1100(S&); -void r1100(const S&) {} - -void r1101(S&); -void r1101(const S&); -void r1101(const S&&) {} - -void r1110(S&); -void r1110(const S&); -void r1110(S&&) {} - -void r1111(S&); -void r1111(const S&); -void r1111(S&&) {} -void r1111(const S&&); - -void cr0001(const S&&) {} - -void cr0011(S&&); -void cr0011(const S&&) {} - -void cr0100(const S&) {} - -void cr0101(const S&); -void cr0101(const S&&) {} - -void cr0110(const S&) {} -void cr0110(S&&); - -void cr0111(const S&); -void cr0111(S&&); -void cr0111(const S&&) {} - -void cr1001(S&); -void cr1001(const S&&) {} - -void cr1011(S&); -void cr1011(S&&); -void cr1011(const S&&) {} - -void cr1100(S&); -void cr1100(const S&) {} - -void cr1101(S&); -void cr1101(const S&); -void cr1101(const S&&) {} - -void cr1110(S&); -void cr1110(const S&) {} -void cr1110(S&&); - -void cr1111(S&); -void cr1111(const S&); -void cr1111(S&&); -void cr1111(const S&&) {} - -void nl0001(const S&&) {} - -void nl0010(S&&) {} - -void nl0011(S&&) {} -void nl0011(const S&&); - -void nl0100(const S&) {} - -void nl0101(const S&) {} -void nl0101(const S&&); - -void nl0110(const S&) {} -void nl0110(S&&); - -void nl0111(const S&) {} -void nl0111(S&&); -void nl0111(const S&&); - -void nl1000(S&) {} - -void nl1001(S&) {} -void nl1001(const S&&); - -void nl1010(S&) {} -void nl1010(S&&); - -void nl1011(S&) {} -void nl1011(S&&); -void nl1011(const S&&); - -void nl1100(S&) {} -void nl1100(const S&); - -void nl1101(S&) {} -void nl1101(const S&); -void nl1101(const S&&); - -void nl1110(S&) {} -void nl1110(const S&); -void nl1110(S&&); - -void nl1111(S&) {} -void nl1111(const S&); -void nl1111(S&&); -void nl1111(const S&&); - -void ncl0001(const S&&) {} - -void ncl0011(S&&); -void ncl0011(const S&&) {} - -void ncl0100(const S&) {} - -void ncl0101(const S&) {} -void ncl0101(const S&&); - -void ncl0110(const S&) {} -void ncl0110(S&&); - -void ncl0111(const S&) {} -void ncl0111(S&&); -void ncl0111(const S&&); - -void ncl1001(S&); -void ncl1001(const S&&) {} - -void ncl1011(S&); -void ncl1011(S&&); -void ncl1011(const S&&) {} - -void ncl1100(S&); -void ncl1100(const S&) {} - -void ncl1101(S&); -void ncl1101(const S&) {} -void ncl1101(const S&&); - -void ncl1110(S&); -void ncl1110(const S&) {} -void ncl1110(S&&); - -void ncl1111(S&); -void ncl1111(const S&) {} -void ncl1111(S&&); -void ncl1111(const S&&); - -void nr0001(const S&&) {} - -void nr0010(S&&) {} - -void nr0011(S&&) {} -void nr0011(const S&&); - -void nr0100(const S&) {} - -void nr0101(const S&) {} -void nr0101(const S&&); - -void nr0110(const S&) {} -void nr0110(S&&); - -void nr0111(const S&) {} -void nr0111(S&&); -void nr0111(const S&&); - -void nr1000(S&) {} - -void nr1001(S&) {} -void nr1001(const S&&); - -void nr1010(S&) {} -void nr1010(S&&); - -void nr1011(S&) {} -void nr1011(S&&); -void nr1011(const S&&); - -void nr1100(S&) {} -void nr1100(const S&); - -void nr1101(S&) {} -void nr1101(const S&); -void nr1101(const S&&); - -void nr1110(S&) {} -void nr1110(const S&); -void nr1110(S&&); - -void nr1111(S&) {} -void nr1111(const S&); -void nr1111(S&&); -void nr1111(const S&&); - -void ncr0001(const S&&) {} - -void ncr0011(S&&); -void ncr0011(const S&&) {} - -void ncr0100(const S&) {} - -void ncr0101(const S&) {} -void ncr0101(const S&&); - -void ncr0110(const S&) {} -void ncr0110(S&&); - -void ncr0111(const S&) {} -void ncr0111(S&&); -void ncr0111(const S&&); - -void ncr1001(S&); -void ncr1001(const S&&) {} - -void ncr1011(S&); -void ncr1011(S&&); -void ncr1011(const S&&) {} - -void ncr1100(S&); -void ncr1100(const S&) {} - -void ncr1101(S&); -void ncr1101(const S&) {} -void ncr1101(const S&&); - -void ncr1110(S&); -void ncr1110(const S&) {} -void ncr1110(S&&); - -void ncr1111(S&); -void ncr1111(const S&) {} -void ncr1111(S&&); -void ncr1111(const S&&); - -void ul0001(const S&&) {} - -void ul0010(S&&) {} - -void ul0011(S&&) {} -void ul0011(const S&&); - -void ul0100(const S&) {} - -void ul0101(const S&) {} -void ul0101(const S&&); - -void ul0110(const S&) {} -void ul0110(S&&); - -void ul0111(const S&) {} -void ul0111(S&&); -void ul0111(const S&&); - -void ul1000(S&) {} - -void ul1001(S&) {} -void ul1001(const S&&); - -void ul1010(S&) {} -void ul1010(S&&); - -void ul1011(S&) {} -void ul1011(S&&); -void ul1011(const S&&); - -void ul1100(S&) {} -void ul1100(const S&); - -void ul1101(S&) {} -void ul1101(const S&); -void ul1101(const S&&); - -void ul1110(S&) {} -void ul1110(const S&); -void ul1110(S&&); - -void ul1111(S&) {} -void ul1111(const S&); -void ul1111(S&&); -void ul1111(const S&&); - -void ucl0001(const S&&) {} - -void ucl0011(S&&); -void ucl0011(const S&&) {} - -void ucl0100(const S&) {} - -void ucl0101(const S&) {} -void ucl0101(const S&&); - -void ucl0110(const S&) {} -void ucl0110(S&&); - -void ucl0111(const S&) {} -void ucl0111(S&&); -void ucl0111(const S&&); - -void ucl1001(S&); -void ucl1001(const S&&) {} - -void ucl1011(S&); -void ucl1011(S&&); -void ucl1011(const S&&) {} - -void ucl1100(S&); -void ucl1100(const S&) {} - -void ucl1101(S&); -void ucl1101(const S&) {} -void ucl1101(const S&&); - -void ucl1110(S&); -void ucl1110(const S&) {} -void ucl1110(S&&); - -void ucl1111(S&); -void ucl1111(const S&) {} -void ucl1111(S&&); -void ucl1111(const S&&); - -void ur0001(const S&&) {} - -void ur0010(S&&) {} - -void ur0011(S&&) {} -void ur0011(const S&&); - -void ur0100(const S&) {} - -void ur0101(const S&); -void ur0101(const S&&) {} - -void ur0110(const S&); -void ur0110(S&&) {} - -void ur0111(const S&); -void ur0111(S&&) {} -void ur0111(const S&&); - -void ur1001(S&); -void ur1001(const S&&) {} - -void ur1010(S&); -void ur1010(S&&) {} - -void ur1011(S&); -void ur1011(S&&) {} -void ur1011(const S&&); - -void ur1100(S&); -void ur1100(const S&) {} - -void ur1101(S&); -void ur1101(const S&); -void ur1101(const S&&) {} - -void ur1110(S&); -void ur1110(const S&); -void ur1110(S&&) {} - -void ur1111(S&); -void ur1111(const S&); -void ur1111(S&&) {} -void ur1111(const S&&); - -void ucr0001(const S&&) {} - -void ucr0011(S&&); -void ucr0011(const S&&) {} - -void ucr0100(const S&) {} - -void ucr0101(const S&); -void ucr0101(const S&&) {} - -void ucr0110(const S&) {} -void ucr0110(S&&); - -void ucr0111(const S&); -void ucr0111(S&&); -void ucr0111(const S&&) {} - -void ucr1001(S&); -void ucr1001(const S&&) {} - -void ucr1011(S&); -void ucr1011(S&&); -void ucr1011(const S&&) {} - -void ucr1100(S&); -void ucr1100(const S&) {} - -void ucr1101(S&); -void ucr1101(const S&); -void ucr1101(const S&&) {} - -void ucr1110(S&); -void ucr1110(const S&) {} -void ucr1110(S&&); - -void ucr1111(S&); -void ucr1111(const S&); -void ucr1111(S&&); -void ucr1111(const S&&) {} - - -int main() -{ - //l0001(l); - //l0010(l); - //l0011(l); - l0100(l); - l0101(l); - l0110(l); - l0111(l); - l1000(l); - l1001(l); - l1010(l); - l1011(l); - l1100(l); - l1101(l); - l1110(l); - l1111(l); - //cl0001(cl); - //cl0011(cl); - cl0100(cl); - cl0101(cl); - cl0110(cl); - cl0111(cl); - //cl1001(cl); - //cl1011(cl); - cl1100(cl); - cl1101(cl); - cl1110(cl); - cl1111(cl); - r0001(r()); - r0010(r()); - r0011(r()); - r0100(r()); - r0101(r()); - r0110(r()); - r0111(r()); - r1001(r()); - r1010(r()); - r1011(r()); - r1100(r()); - r1101(r()); - r1110(r()); - r1111(r()); - cr0001(cr()); - cr0011(cr()); - cr0100(cr()); - cr0101(cr()); - cr0110(cr()); - cr0111(cr()); - cr1001(cr()); - cr1011(cr()); - cr1100(cr()); - cr1101(cr()); - cr1110(cr()); - cr1111(cr()); - //nl0001(nl); - //nl0010(nl); - //nl0011(nl); - nl0100(nl); - nl0101(nl); - nl0110(nl); - nl0111(nl); - nl1000(nl); - nl1001(nl); - nl1010(nl); - nl1011(nl); - nl1100(nl); - nl1101(nl); - nl1110(nl); - nl1111(nl); - //ncl0001(ncl); - //ncl0011(ncl); - ncl0100(ncl); - ncl0101(ncl); - ncl0110(ncl); - ncl0111(ncl); - //ncl1001(ncl); - //ncl1011(ncl); - ncl1100(ncl); - ncl1101(ncl); - ncl1110(ncl); - ncl1111(ncl); - //nr0001(nr); - //nr0010(nr); - //nr0011(nr); - nr0100(nr); - nr0101(nr); - nr0110(nr); - nr0111(nr); - nr1000(nr); - nr1001(nr); - nr1010(nr); - nr1011(nr); - nr1100(nr); - nr1101(nr); - nr1110(nr); - nr1111(nr); - //ncr0001(ncr); - //ncr0011(ncr); - ncr0100(ncr); - ncr0101(ncr); - ncr0110(ncr); - ncr0111(ncr); - //ncr1001(ncr); - //ncr1011(ncr); - ncr1100(ncr); - ncr1101(ncr); - ncr1110(ncr); - ncr1111(ncr); - //ul0001(ul()); - //ul0010(ul()); - //ul0011(ul()); - ul0100(ul()); - ul0101(ul()); - ul0110(ul()); - ul0111(ul()); - ul1000(ul()); - ul1001(ul()); - ul1010(ul()); - ul1011(ul()); - ul1100(ul()); - ul1101(ul()); - ul1110(ul()); - ul1111(ul()); - //ucl0001(ucl()); - //ucl0011(ucl()); - ucl0100(ucl()); - ucl0101(ucl()); - ucl0110(ucl()); - ucl0111(ucl()); - //ucl1001(ucl()); - //ucl1011(ucl()); - ucl1100(ucl()); - ucl1101(ucl()); - ucl1110(ucl()); - ucl1111(ucl()); - ur0001(ur()); - ur0010(ur()); - ur0011(ur()); - ur0100(ur()); - ur0101(ur()); - ur0110(ur()); - ur0111(ur()); - ur1001(ur()); - ur1010(ur()); - ur1011(ur()); - ur1100(ur()); - ur1101(ur()); - ur1110(ur()); - ur1111(ur()); - ucr0001(ucr()); - ucr0011(ucr()); - ucr0100(ucr()); - ucr0101(ucr()); - ucr0110(ucr()); - ucr0111(ucr()); - ucr1001(ucr()); - ucr1011(ucr()); - ucr1100(ucr()); - ucr1101(ucr()); - ucr1110(ucr()); - ucr1111(ucr()); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload2.C deleted file mode 100644 index b335ea2be..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overload2.C +++ /dev/null @@ -1,24 +0,0 @@ -// Core 1321 -// { dg-options -std=c++0x } -// Two dependent names are equivalent even if the overload sets found by -// phase 1 lookup are different. Merging them keeps the earlier set. - -int g1(int); -template <class T> decltype(g1(T())) f1(); -int g1(); -template <class T> decltype(g1(T())) f1() -{ return g1(T()); } -int i1 = f1<int>(); // OK, g1(int) was declared before the first f1 - -template <class T> decltype(g2(T())) f2(); // { dg-error "g2. was not declared" } -int g2(int); -template <class T> decltype(g2(T())) f2() -{ return g2(T()); } -int i2 = f2<int>(); // { dg-error "no match" } - -int g3(); -template <class T> decltype(g3(T())) f3(); // { dg-error "too many arguments" } -int g3(int); -template <class T> decltype(g3(T())) f3() -{ return g3(T()); } -int i3 = f3<int>(); // { dg-error "no match" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overloadn.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overloadn.C deleted file mode 100644 index a42707fe4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/overloadn.C +++ /dev/null @@ -1,708 +0,0 @@ -// { dg-options "--std=c++0x" } -// { dg-do link } -// Generated by overload.py - -template<typename _Tp> -inline _Tp&& -movel(_Tp& __t) -{ return static_cast<_Tp&&>(__t); } - -struct S{}; - -S l; // lvalue (l) -S const cl = l; // const lvalue (cl) -S r() { return l; } // rvalue (r) -S const cr() { return l; } // const rvalue (cr) -S & nl = l; // named lvalue reference (nl) -S const & ncl = l; // named const lvalue reference (ncl) -S && nr = movel(l); // named rvalue reference (nr) -S const && ncr = movel(l); // named const rvalue reference (ncr) -S & ul() { return l; } // unnamed lvalue reference (ul) -S const & ucl() { return l; } // unnamed const lvalue reference (ucl) -S && ur() { return movel(l); } // unnamed rvalue reference (ur) -S const && ucr() { return movel(l); } // unnamed const rvalue reference (ucr) - -void l0001(const S&&) {} // { dg-message "" } - -void l0010(S&&) {} // { dg-message "" } - -void l0011(S&&) {} // { dg-message "" } -void l0011(const S&&); - -void l0100(const S&) {} - -void l0101(const S&) {} -void l0101(const S&&); - -void l0110(const S&) {} -void l0110(S&&); - -void l0111(const S&) {} -void l0111(S&&); -void l0111(const S&&); - -void l1000(S&) {} - -void l1001(S&) {} -void l1001(const S&&); - -void l1010(S&) {} -void l1010(S&&); - -void l1011(S&) {} -void l1011(S&&); -void l1011(const S&&); - -void l1100(S&) {} -void l1100(const S&); - -void l1101(S&) {} -void l1101(const S&); -void l1101(const S&&); - -void l1110(S&) {} -void l1110(const S&); -void l1110(S&&); - -void l1111(S&) {} -void l1111(const S&); -void l1111(S&&); -void l1111(const S&&); - -void cl0001(const S&&) {} // { dg-message "" } - -void cl0011(S&&); -void cl0011(const S&&) {} // { dg-message "" } - -void cl0100(const S&) {} - -void cl0101(const S&) {} -void cl0101(const S&&); - -void cl0110(const S&) {} -void cl0110(S&&); - -void cl0111(const S&) {} -void cl0111(S&&); -void cl0111(const S&&); - -void cl1001(S&); -void cl1001(const S&&) {} // { dg-message "" } - -void cl1011(S&); -void cl1011(S&&); -void cl1011(const S&&) {} // { dg-message "" } - -void cl1100(S&); -void cl1100(const S&) {} - -void cl1101(S&); -void cl1101(const S&) {} -void cl1101(const S&&); - -void cl1110(S&); -void cl1110(const S&) {} -void cl1110(S&&); - -void cl1111(S&); -void cl1111(const S&) {} -void cl1111(S&&); -void cl1111(const S&&); - -void r0001(const S&&) {} - -void r0010(S&&) {} - -void r0011(S&&) {} -void r0011(const S&&); - -void r0100(const S&) {} - -void r0101(const S&); -void r0101(const S&&) {} - -void r0110(const S&); -void r0110(S&&) {} - -void r0111(const S&); -void r0111(S&&) {} -void r0111(const S&&); - -void r1001(S&); -void r1001(const S&&) {} - -void r1010(S&); -void r1010(S&&) {} - -void r1011(S&); -void r1011(S&&) {} -void r1011(const S&&); - -void r1100(S&); -void r1100(const S&) {} - -void r1101(S&); -void r1101(const S&); -void r1101(const S&&) {} - -void r1110(S&); -void r1110(const S&); -void r1110(S&&) {} - -void r1111(S&); -void r1111(const S&); -void r1111(S&&) {} -void r1111(const S&&); - -void cr0001(const S&&) {} - -void cr0011(S&&); -void cr0011(const S&&) {} - -void cr0100(const S&) {} - -void cr0101(const S&); -void cr0101(const S&&) {} - -void cr0110(const S&) {} -void cr0110(S&&); - -void cr0111(const S&); -void cr0111(S&&); -void cr0111(const S&&) {} - -void cr1001(S&); -void cr1001(const S&&) {} - -void cr1011(S&); -void cr1011(S&&); -void cr1011(const S&&) {} - -void cr1100(S&); -void cr1100(const S&) {} - -void cr1101(S&); -void cr1101(const S&); -void cr1101(const S&&) {} - -void cr1110(S&); -void cr1110(const S&) {} -void cr1110(S&&); - -void cr1111(S&); -void cr1111(const S&); -void cr1111(S&&); -void cr1111(const S&&) {} - -void nl0001(const S&&) {} // { dg-message "" } - -void nl0010(S&&) {} // { dg-message "" } - -void nl0011(S&&) {} // { dg-message "" } -void nl0011(const S&&); - -void nl0100(const S&) {} - -void nl0101(const S&) {} -void nl0101(const S&&); - -void nl0110(const S&) {} -void nl0110(S&&); - -void nl0111(const S&) {} -void nl0111(S&&); -void nl0111(const S&&); - -void nl1000(S&) {} - -void nl1001(S&) {} -void nl1001(const S&&); - -void nl1010(S&) {} -void nl1010(S&&); - -void nl1011(S&) {} -void nl1011(S&&); -void nl1011(const S&&); - -void nl1100(S&) {} -void nl1100(const S&); - -void nl1101(S&) {} -void nl1101(const S&); -void nl1101(const S&&); - -void nl1110(S&) {} -void nl1110(const S&); -void nl1110(S&&); - -void nl1111(S&) {} -void nl1111(const S&); -void nl1111(S&&); -void nl1111(const S&&); - -void ncl0001(const S&&) {} // { dg-message "" } - -void ncl0011(S&&); -void ncl0011(const S&&) {} // { dg-message "" } - -void ncl0100(const S&) {} - -void ncl0101(const S&) {} -void ncl0101(const S&&); - -void ncl0110(const S&) {} -void ncl0110(S&&); - -void ncl0111(const S&) {} -void ncl0111(S&&); -void ncl0111(const S&&); - -void ncl1001(S&); -void ncl1001(const S&&) {} // { dg-message "" } - -void ncl1011(S&); -void ncl1011(S&&); -void ncl1011(const S&&) {} // { dg-message "" } - -void ncl1100(S&); -void ncl1100(const S&) {} - -void ncl1101(S&); -void ncl1101(const S&) {} -void ncl1101(const S&&); - -void ncl1110(S&); -void ncl1110(const S&) {} -void ncl1110(S&&); - -void ncl1111(S&); -void ncl1111(const S&) {} -void ncl1111(S&&); -void ncl1111(const S&&); - -void nr0001(const S&&) {} // { dg-message "" } - -void nr0010(S&&) {} // { dg-message "" } - -void nr0011(S&&) {} // { dg-message "" } -void nr0011(const S&&); - -void nr0100(const S&) {} - -void nr0101(const S&) {} -void nr0101(const S&&); - -void nr0110(const S&) {} -void nr0110(S&&); - -void nr0111(const S&) {} -void nr0111(S&&); -void nr0111(const S&&); - -void nr1000(S&) {} - -void nr1001(S&) {} -void nr1001(const S&&); - -void nr1010(S&) {} -void nr1010(S&&); - -void nr1011(S&) {} -void nr1011(S&&); -void nr1011(const S&&); - -void nr1100(S&) {} -void nr1100(const S&); - -void nr1101(S&) {} -void nr1101(const S&); -void nr1101(const S&&); - -void nr1110(S&) {} -void nr1110(const S&); -void nr1110(S&&); - -void nr1111(S&) {} -void nr1111(const S&); -void nr1111(S&&); -void nr1111(const S&&); - -void ncr0001(const S&&) {} // { dg-message "" } - -void ncr0011(S&&); -void ncr0011(const S&&) {} // { dg-message "" } - -void ncr0100(const S&) {} - -void ncr0101(const S&) {} -void ncr0101(const S&&); - -void ncr0110(const S&) {} -void ncr0110(S&&); - -void ncr0111(const S&) {} -void ncr0111(S&&); -void ncr0111(const S&&); - -void ncr1001(S&); -void ncr1001(const S&&) {} // { dg-message "" } - -void ncr1011(S&); -void ncr1011(S&&); -void ncr1011(const S&&) {} // { dg-message "" } - -void ncr1100(S&); -void ncr1100(const S&) {} - -void ncr1101(S&); -void ncr1101(const S&) {} -void ncr1101(const S&&); - -void ncr1110(S&); -void ncr1110(const S&) {} -void ncr1110(S&&); - -void ncr1111(S&); -void ncr1111(const S&) {} -void ncr1111(S&&); -void ncr1111(const S&&); - -void ul0001(const S&&) {} // { dg-message "" } - -void ul0010(S&&) {} // { dg-message "" } - -void ul0011(S&&) {} // { dg-message "" } -void ul0011(const S&&); - -void ul0100(const S&) {} - -void ul0101(const S&) {} -void ul0101(const S&&); - -void ul0110(const S&) {} -void ul0110(S&&); - -void ul0111(const S&) {} -void ul0111(S&&); -void ul0111(const S&&); - -void ul1000(S&) {} - -void ul1001(S&) {} -void ul1001(const S&&); - -void ul1010(S&) {} -void ul1010(S&&); - -void ul1011(S&) {} -void ul1011(S&&); -void ul1011(const S&&); - -void ul1100(S&) {} -void ul1100(const S&); - -void ul1101(S&) {} -void ul1101(const S&); -void ul1101(const S&&); - -void ul1110(S&) {} -void ul1110(const S&); -void ul1110(S&&); - -void ul1111(S&) {} -void ul1111(const S&); -void ul1111(S&&); -void ul1111(const S&&); - -void ucl0001(const S&&) {} // { dg-message "" } - -void ucl0011(S&&); -void ucl0011(const S&&) {} // { dg-message "" } - -void ucl0100(const S&) {} - -void ucl0101(const S&) {} -void ucl0101(const S&&); - -void ucl0110(const S&) {} -void ucl0110(S&&); - -void ucl0111(const S&) {} -void ucl0111(S&&); -void ucl0111(const S&&); - -void ucl1001(S&); -void ucl1001(const S&&) {} // { dg-message "" } - -void ucl1011(S&); -void ucl1011(S&&); -void ucl1011(const S&&) {} // { dg-message "" } - -void ucl1100(S&); -void ucl1100(const S&) {} - -void ucl1101(S&); -void ucl1101(const S&) {} -void ucl1101(const S&&); - -void ucl1110(S&); -void ucl1110(const S&) {} -void ucl1110(S&&); - -void ucl1111(S&); -void ucl1111(const S&) {} -void ucl1111(S&&); -void ucl1111(const S&&); - -void ur0001(const S&&) {} - -void ur0010(S&&) {} - -void ur0011(S&&) {} -void ur0011(const S&&); - -void ur0100(const S&) {} - -void ur0101(const S&); -void ur0101(const S&&) {} - -void ur0110(const S&); -void ur0110(S&&) {} - -void ur0111(const S&); -void ur0111(S&&) {} -void ur0111(const S&&); - -void ur1001(S&); -void ur1001(const S&&) {} - -void ur1010(S&); -void ur1010(S&&) {} - -void ur1011(S&); -void ur1011(S&&) {} -void ur1011(const S&&); - -void ur1100(S&); -void ur1100(const S&) {} - -void ur1101(S&); -void ur1101(const S&); -void ur1101(const S&&) {} - -void ur1110(S&); -void ur1110(const S&); -void ur1110(S&&) {} - -void ur1111(S&); -void ur1111(const S&); -void ur1111(S&&) {} -void ur1111(const S&&); - -void ucr0001(const S&&) {} - -void ucr0011(S&&); -void ucr0011(const S&&) {} - -void ucr0100(const S&) {} - -void ucr0101(const S&); -void ucr0101(const S&&) {} - -void ucr0110(const S&) {} -void ucr0110(S&&); - -void ucr0111(const S&); -void ucr0111(S&&); -void ucr0111(const S&&) {} - -void ucr1001(S&); -void ucr1001(const S&&) {} - -void ucr1011(S&); -void ucr1011(S&&); -void ucr1011(const S&&) {} - -void ucr1100(S&); -void ucr1100(const S&) {} - -void ucr1101(S&); -void ucr1101(const S&); -void ucr1101(const S&&) {} - -void ucr1110(S&); -void ucr1110(const S&) {} -void ucr1110(S&&); - -void ucr1111(S&); -void ucr1111(const S&); -void ucr1111(S&&); -void ucr1111(const S&&) {} - - -int main() -{ - l0001(l); // { dg-error "lvalue" } - l0010(l); // { dg-error "lvalue" } - l0011(l); // { dg-error "lvalue" } - l0100(l); - l0101(l); - l0110(l); - l0111(l); - l1000(l); - l1001(l); - l1010(l); - l1011(l); - l1100(l); - l1101(l); - l1110(l); - l1111(l); - cl0001(cl); // { dg-error "lvalue" } - cl0011(cl); // { dg-error "lvalue" } - cl0100(cl); - cl0101(cl); - cl0110(cl); - cl0111(cl); - cl1001(cl); // { dg-error "lvalue" } - cl1011(cl); // { dg-error "lvalue" } - cl1100(cl); - cl1101(cl); - cl1110(cl); - cl1111(cl); - r0001(r()); - r0010(r()); - r0011(r()); - r0100(r()); - r0101(r()); - r0110(r()); - r0111(r()); - r1001(r()); - r1010(r()); - r1011(r()); - r1100(r()); - r1101(r()); - r1110(r()); - r1111(r()); - cr0001(cr()); - cr0011(cr()); - cr0100(cr()); - cr0101(cr()); - cr0110(cr()); - cr0111(cr()); - cr1001(cr()); - cr1011(cr()); - cr1100(cr()); - cr1101(cr()); - cr1110(cr()); - cr1111(cr()); - nl0001(nl); // { dg-error "lvalue" } - nl0010(nl); // { dg-error "lvalue" } - nl0011(nl); // { dg-error "lvalue" } - nl0100(nl); - nl0101(nl); - nl0110(nl); - nl0111(nl); - nl1000(nl); - nl1001(nl); - nl1010(nl); - nl1011(nl); - nl1100(nl); - nl1101(nl); - nl1110(nl); - nl1111(nl); - ncl0001(ncl); // { dg-error "lvalue" } - ncl0011(ncl); // { dg-error "lvalue" } - ncl0100(ncl); - ncl0101(ncl); - ncl0110(ncl); - ncl0111(ncl); - ncl1001(ncl); // { dg-error "lvalue" } - ncl1011(ncl); // { dg-error "lvalue" } - ncl1100(ncl); - ncl1101(ncl); - ncl1110(ncl); - ncl1111(ncl); - nr0001(nr); // { dg-error "lvalue" } - nr0010(nr); // { dg-error "lvalue" } - nr0011(nr); // { dg-error "lvalue" } - nr0100(nr); - nr0101(nr); - nr0110(nr); - nr0111(nr); - nr1000(nr); - nr1001(nr); - nr1010(nr); - nr1011(nr); - nr1100(nr); - nr1101(nr); - nr1110(nr); - nr1111(nr); - ncr0001(ncr); // { dg-error "lvalue" } - ncr0011(ncr); // { dg-error "lvalue" } - ncr0100(ncr); - ncr0101(ncr); - ncr0110(ncr); - ncr0111(ncr); - ncr1001(ncr); // { dg-error "lvalue" } - ncr1011(ncr); // { dg-error "lvalue" } - ncr1100(ncr); - ncr1101(ncr); - ncr1110(ncr); - ncr1111(ncr); - ul0001(ul()); // { dg-error "lvalue" } - ul0010(ul()); // { dg-error "lvalue" } - ul0011(ul()); // { dg-error "lvalue" } - ul0100(ul()); - ul0101(ul()); - ul0110(ul()); - ul0111(ul()); - ul1000(ul()); - ul1001(ul()); - ul1010(ul()); - ul1011(ul()); - ul1100(ul()); - ul1101(ul()); - ul1110(ul()); - ul1111(ul()); - ucl0001(ucl()); // { dg-error "lvalue" } - ucl0011(ucl()); // { dg-error "lvalue" } - ucl0100(ucl()); - ucl0101(ucl()); - ucl0110(ucl()); - ucl0111(ucl()); - ucl1001(ucl()); // { dg-error "lvalue" } - ucl1011(ucl()); // { dg-error "lvalue" } - ucl1100(ucl()); - ucl1101(ucl()); - ucl1110(ucl()); - ucl1111(ucl()); - ur0001(ur()); - ur0010(ur()); - ur0011(ur()); - ur0100(ur()); - ur0101(ur()); - ur0110(ur()); - ur0111(ur()); - ur1001(ur()); - ur1010(ur()); - ur1011(ur()); - ur1100(ur()); - ur1101(ur()); - ur1110(ur()); - ur1111(ur()); - ucr0001(ucr()); - ucr0011(ucr()); - ucr0100(ucr()); - ucr0101(ucr()); - ucr0110(ucr()); - ucr0111(ucr()); - ucr1001(ucr()); - ucr1011(ucr()); - ucr1100(ucr()); - ucr1101(ucr()); - ucr1110(ucr()); - ucr1111(ucr()); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override1.C deleted file mode 100644 index ba580b5c0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override1.C +++ /dev/null @@ -1,61 +0,0 @@ -// { dg-do compile } -// { dg-options "--std=c++0x" } -struct B -{ - virtual void f() final {} - virtual void g() {} - virtual void x() const {} -}; - -struct B2 -{ - virtual void h() {} -}; - -struct D : B -{ - virtual void g() override final {} // { dg-error "overriding" } -}; - -template <class T> struct D2 : T -{ - void h() override {} // { dg-error "marked override, but does not override" } -}; - -template <class T> struct D3 : T -{ - void h() override {} -}; - -struct D4 : D -{ - void g() {} // { dg-error "virtual function" } -}; - -struct B3 -{ - virtual void f() final final {} // { dg-error "duplicate virt-specifier" } -}; - -struct B4 -{ - void f() final {} // { dg-error "marked final, but is not virtual" } -}; - -struct D5 : B -{ - void ff() override {} // { dg-error "marked override, but does not override" } - virtual void fff() override {} // { dg-error "marked override, but does not override" } - virtual void x() override {} // { dg-error "marked override, but does not override" } - void g() override; -}; - -void D5::g() override {} // { dg-error "not allowed outside a class definition" } -void g() override {} // { dg-error "not allowed outside a class definition" } - -int main() -{ - D2<B> d; - D2<B2> d2; - D3<B2> d3; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override2.C deleted file mode 100644 index 4d5a412ba..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override2.C +++ /dev/null @@ -1,54 +0,0 @@ -// { dg-do compile } -// { dg-options "--std=c++0x" } -struct B1 {}; - -struct B2 final {}; - -struct D1 : B1 {}; - -struct D2 : B2 {}; // { dg-error "cannot derive from 'final' base" } - -template<class T> struct D3 : T {}; - -template<class T> struct D4 : T {}; // { dg-error "cannot derive from 'final' base" } - -template <class T> struct B3 {}; - -template <class T> struct B4 final {}; - -template <class T> struct B5 final {}; - -struct undeclared<int> final { }; // { dg-error "not a class template" } - -struct D5 : B3<D5> {}; - -struct D6 : B4<D6> {}; // { dg-error "cannot derive from 'final' base" } - -struct B6 final final {}; // { dg-error "duplicate virt-specifier" } - -struct B7 override {}; // { dg-error "cannot specify 'override' for a class" } - -namespace N -{ - struct C; -} - -struct N::C final{}; - -int main() -{ - D3<B1> d; - D4<B2> d2; - struct B2 final{}; // { dg-error "previous definition" } - B2 final; // { dg-error "has a previous declaration|previously declared here" } - B2 final2 = final; - struct B2 {}; // { dg-error "redefinition" } - struct B2 final; // { dg-error "redeclaration" } - struct B2 override; // { dg-error "previously declared here" } - struct B2 final {}; // { dg-error "redefinition" } - struct B2 override {}; // { dg-error "cannot specify 'override' for a class" } - B2 override{}; // { dg-error "redeclaration" } - struct foo final {}; // { dg-error "previous definition" } - struct foo final {}; // { dg-error "redefinition" } - foo final; // { dg-error "conflicting declaration" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override3.C deleted file mode 100644 index 2d22cbf2a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override3.C +++ /dev/null @@ -1,24 +0,0 @@ -// { dg-do compile } -// { dg-options "--std=c++98" } - -struct B final {}; // { dg-warning "override controls" } - -struct D : B {}; // { dg-error "cannot derive from 'final' base" } - -struct E __final {}; - -struct F : E {}; // { dg-error "cannot derive from 'final' base" } - -struct G -{ - virtual void f(); -}; - -struct H : G -{ - void f() override; // { dg-warning "override controls" } -}; - -int main() -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override4.C deleted file mode 100644 index aec5c2cdf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/override4.C +++ /dev/null @@ -1,45 +0,0 @@ -// { dg-options "-std=c++11" } -// { dg-prune-output "expected ';'" } -// { dg-prune-output "expected unqualified-id" } -// { dg-prune-output "declaration does not declare anything" } - -struct B -{ - virtual auto f() -> void final; - virtual auto g() -> void; -}; - -struct B2 -{ - virtual auto f() -> void final {} -}; - -struct B3 -{ - virtual auto f() -> final void; // { dg-error "expected type-specifier" } -}; - -struct B4 -{ - virtual auto f() -> final void {} // { dg-error "expected type-specifier" } -}; - -struct D : B -{ - virtual auto g() -> void override; -}; - -struct D2 : B -{ - virtual auto g() -> void override {} -}; - -struct D3 : B -{ - virtual auto g() -> override void; // { dg-error "expected type-specifier" } -}; - -struct D4 : B -{ - virtual auto g() -> override void {} // { dg-error "expected type-specifier" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/parse1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/parse1.C deleted file mode 100644 index 41811853c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/parse1.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/43509 -// { dg-options "-std=c++0x" } - -typedef int B; // { dg-error "" } -B::B() {} // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/parse2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/parse2.C deleted file mode 100644 index 77ea14a92..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/parse2.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/54526 -// { dg-do compile { target c++11 } } - -template <class T> -struct X { }; - -struct A { }; - -int main() -{ - X<::A> x; -} - -int a; -bool b = 0<::a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31431-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31431-2.C deleted file mode 100644 index 076493938..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31431-2.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename, typename..., typename> void foo(); // { dg-message "note" } - -void bar() -{ - foo<int>(); // { dg-error "no matching function" } - // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 6 } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31431.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31431.C deleted file mode 100644 index afd323715..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31431.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename..., typename> void foo(); // { dg-message "note" } - -void bar() -{ - foo<int>(); // { dg-error "no matching function" } - // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 6 } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31432.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31432.C deleted file mode 100644 index 8016ee69d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31432.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename..., typename> struct A // { dg-error "parameter pack" } -{ - static int i; -}; - -A<int, int> a; // { dg-error "mismatch|expected|invalid type" } -A<char,int> b; // { dg-error "mismatch|expected|invalid type" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31434.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31434.C deleted file mode 100644 index 54786167c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31434.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... T> int foo(const T&) // { dg-error "not expanded with|T" } -{ - union { T t; }; // { dg-error "not expanded with|T" } - return t; -} - -void bar() -{ - foo(0); // { dg-error "no matching" } - // { dg-message "(candidate|cannot convert)" "candidate note" { target *-*-* } 10 } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31437.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31437.C deleted file mode 100644 index 956a08b05..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31437.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template <typename... T> struct A // { dg-message "candidates|A" } -{ - A(T* p) { // { dg-error "parameter packs|T" } - (A<T...>*)(p); - } -}; - -A<int> a(0); // { dg-error "no matching" } -// { dg-message "candidate" "candidate note" { target *-*-* } 9 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31438.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31438.C deleted file mode 100644 index 74738830a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31438.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -template<typename> struct A; -template<typename T, typename... U> struct A<T(U)> // { dg-error "parameter packs|U" } -{ - template<typename X> A(X); -}; - -A<void(int)> a(0); // { dg-error "incomplete type" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31439.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31439.C deleted file mode 100644 index c64bc3145..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31439.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename...> struct A; - -template<char> struct A<> {}; // { dg-error "not used in partial specialization|anonymous|declaration" } - -template<typename T, typename... U> struct A<T, U...> : A<U...> {}; // { dg-error "incomplete type" } - -A<int> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31442.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31442.C deleted file mode 100644 index f4e411c45..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31442.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... T, T = 0> struct A {}; // { dg-error "parameter packs|T|the end|parameter packs|anonymous" } - -struct B -{ - template <template <typename...> class C> B(C<int>); -}; - -B b = A<int>(); // { dg-error "mismatch|expected" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31443.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31443.C deleted file mode 100644 index 1eb9d318d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31443.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -template<int, typename... T> struct A -{ - template<int N> void foo(A<N,T>); // { dg-error "parameter packs|T" } -}; - -void bar() -{ - A<0,int>().foo(A<0,int>()); // { dg-error "no member named" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31444.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31444.C deleted file mode 100644 index b1f86fe7a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31444.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... T> struct A -{ - template<int> void foo(A<T>); // { dg-error "not expanded|T" } -}; - -void bar() -{ - A<int>().foo<0>(A<int>()); // { dg-error "no member named" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31445.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31445.C deleted file mode 100644 index b3f2b5b09..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31445.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template <typename... T> struct A -{ - void foo(T...); - A(T... t) { foo(t); } // { dg-error "parameter packs|t" } -}; - -A<int> a(0); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31993.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31993.C deleted file mode 100644 index 94fb9ccda..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr31993.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<typename...> struct A; - -template<template<int> class... T> struct A<T<0>...> -{ - template<int> struct B {}; - B<0> b; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32114.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32114.C deleted file mode 100644 index e78dfdf1d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32114.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename ...T> struct A -{ - typedef typename T::X Y; // { dg-error "not expanded|T" } -}; - -A<int> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32115.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32115.C deleted file mode 100644 index a721eed4e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32115.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename ...T, int = 0> struct A {}; // { dg-error "end of" } - -A<int> a; // { dg-error "mismatch|expected|invalid" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32125.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32125.C deleted file mode 100644 index 210a29c08..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32125.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename...> struct A; - -template<typename...T> struct A<T*> // { dg-error "not expanded|T" } -{ - A(); - A(T); -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32126.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32126.C deleted file mode 100644 index c525cca68..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32126.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename...> struct A; - -template<typename...T> struct A<T> // { dg-error "not expanded|T|" } -{ - static int i; -}; - -A<char> a; // { dg-error "incomplete" } -A<int> b; // { dg-error "incomplete" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32127.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32127.C deleted file mode 100644 index 8e4bc0050..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32127.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename...T> struct A -{ - static T i; // { dg-error "parameter packs|T" } -}; - -int j = A<int>::i; // { dg-error "not a member" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32128.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32128.C deleted file mode 100644 index 5876dbec4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32128.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename...> struct A; - -template<typename...T, typename...U> - struct A<T..., U...> {}; // { dg-error "must be at the end" } - -A<int> a; // { dg-error "incomplete" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32252.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32252.C deleted file mode 100644 index 543dc8873..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32252.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=c++0x" } -int x[5]; - -template<int M, int N, int (&... p)[N]> struct A; - -template<int M> struct A<M,5,x> {}; - -A<0,5,x> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32253.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32253.C deleted file mode 100644 index d8f7b03b9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32253.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } -template<void (*... fp)()> struct A -{ - A() { fp(); } // { dg-error "not expanded|fp" } -}; - -void foo(); - -A<foo> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32566.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32566.C deleted file mode 100644 index f6e7a5b54..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr32566.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-options "-std=c++0x" } -template<int...> struct A; - -template<template<int> class... T> struct A<T...> {}; // { dg-error "mismatch|expected" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33839.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33839.C deleted file mode 100644 index 0a6610ac9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33839.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options -std=c++0x } -template<int> struct A; - -void foo() -{ - __decltype A<0>; // { dg-error "invalid declarator|expected" } - __decltype (A<0>); // { dg-error "must be an expression" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33930.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33930.C deleted file mode 100644 index d1e6fa56b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33930.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=c++0x" } -typedef const int* type; - -float& foo( const type& ggg ); -int& foo( type&& ggg ); - -void bar( int* someptr ) -{ - int& x = foo( someptr ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33955.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33955.C deleted file mode 100644 index cde92dedf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33955.C +++ /dev/null @@ -1,39 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename T> -struct uncvref -{ - typedef T type; -}; - -template<typename... Args> -struct args -{ - static const int size = sizeof...(Args); -}; - -template<typename G, typename E, typename S, typename V, long GN = G::size, long EN = E::size> -struct apply_args; - -template<typename... G, typename... E, typename S, typename V, long N> -struct apply_args<args<G...>, args<E...>, S, V, N, N> -{ - typedef args< - typename G::template apply<typename uncvref<E>::type, S, V>::type... - > type; -}; - -struct or_ -{ - template<typename E, typename S, typename V> - struct apply { - typedef typename E::type type; - }; -}; - -template<typename T> -struct identity -{ - typedef T type; -}; - -apply_args<args<or_>, args<identity<int>>, float, double> a1; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33996.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33996.C deleted file mode 100644 index 07590f06f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr33996.C +++ /dev/null @@ -1,52 +0,0 @@ -// { dg-options "-std=c++0x" } - -#define BUG -struct type -{ - type() { } - type(const type&) { } - -private: - type(type&&); -}; - -template<typename _Tp> - struct identity - { - typedef _Tp type; - }; - -template<typename _Tp> - inline _Tp&& - forward(typename identity<_Tp>::type&& __t) - { return __t; } - -struct vec -{ - template<typename _Args> - void - bar(_Args&& __args) -#ifdef BUG - ; -#else - { - type(forward<_Args>(__args)); - } -#endif -}; - -#ifdef BUG -template<typename _Args> - void - vec::bar(_Args&& __args) - { - type(forward<_Args>(__args)); - } -#endif - -int main() -{ - vec v; - type c; - v.bar(c); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34054.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34054.C deleted file mode 100644 index cfc6c4bdc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34054.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/34054 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<typename... T> T foo() {} // { dg-error "not expanded|T" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34056.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34056.C deleted file mode 100644 index 0e5246b6a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34056.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/34056 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<typename... T> struct A -{ - void foo (T *) { ++p; } // { dg-error "not expanded|T" } - void bar (T **) { } // { dg-error "not expanded|T" } - T *p; // { dg-error "not expanded|T" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34057.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34057.C deleted file mode 100644 index 38da5ff50..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34057.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/34057 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <typename... T> struct A -{ - typedef T X __attribute__ ((vector_size (8))); // { dg-error "not expanded|T" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34058.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34058.C deleted file mode 100644 index 0cf1faec7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34058.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/34058 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <typename...T> struct A -{ - typedef T X; // { dg-error "not expanded|T" } -}; - -A<int> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34060.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34060.C deleted file mode 100644 index 8e0d321b2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34060.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/34060 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <int> struct A -{ - template <typename... > struct B {}; - template <typename... T> struct B <int, T *> {}; // { dg-error "not expanded|T" } -}; - -A<0>::B<int>b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34061.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34061.C deleted file mode 100644 index 7d6e71d0e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr34061.C +++ /dev/null @@ -1,5 +0,0 @@ -// PR c++/34061 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<template<int> class ...T> struct A : T<0> {}; // { dg-error "not expanded|T" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr38646.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr38646.C deleted file mode 100644 index f15fc8c29..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr38646.C +++ /dev/null @@ -1,12 +0,0 @@ -/* PR c++/38646 */ -/* { dg-do compile } */ -/* { dg-options "-std=c++0x" } */ - -template<int...> struct A; - -template<int... N> struct A<N..., N...> /* { dg-error "must be at the end" } */ -{ - template<typename> struct B; - - template<typename T> struct B<T*> {}; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr38795.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr38795.C deleted file mode 100644 index 54fb361d3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr38795.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/38795 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<typename... T> int foo(int i) -{ - return *reinterpret_cast<T*>(i); // { dg-error "not expanded with|T" } -} - -void bar(int i) -{ - foo<int>(i); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr39639.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr39639.C deleted file mode 100644 index 0838a0ba2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr39639.C +++ /dev/null @@ -1,21 +0,0 @@ -// Contributed by Dodji Seketeli <dodji@redhat.com> -// Origin: PR c++/39639 -// { dg-do compile } -// { dg-options "-std=c++0x" } -// { dg-prune-output "template argument 1 is invalid" } - -template <class... Types> -struct S - : S<...Types>, // { dg-error "expected parameter pack before '...'" } - S<...Types...>, // { dg-error "expected parameter pack before '...'" } - S<...> // { dg-error "expected parameter pack before '...'" } -{ - static int f () { return 1;} -}; - -int -main () -{ - return S<void>::f (); -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr42844-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr42844-2.C deleted file mode 100644 index 4425aacf6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr42844-2.C +++ /dev/null @@ -1,42 +0,0 @@ -// PR c++/42844 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -struct A // { dg-message "user-provided default constructor" } -{ - int i; - A() = default; // { dg-message "not user-provided" } -}; - -struct Base -{ - Base() {} -}; - -struct Derived : Base // { dg-message "user-provided default constructor" } -{ - int i; - Derived() = default; // { dg-message "not user-provided" } -}; - -struct Derived2 : Base // { dg-message "user-provided default constructor" } -{ - int i; - Derived2() = default; // { dg-message "not user-provided" } - Derived2( Derived2 const& ) = default; -}; - -struct Derived3 : Base // { dg-message "user-provided default constructor" } -{ - int i; - Derived3( Derived3 const& ) = default; - Derived3() = default; // { dg-message "not user-provided" } -}; - -void f() -{ - const A a; // { dg-error "uninitialized const" } - const Derived d; // { dg-error "uninitialized const" } - const Derived2 d2; // { dg-error "uninitialized const" } - const Derived3 d3; // { dg-error "uninitialized const" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr45908.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr45908.C deleted file mode 100644 index 45399b539..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr45908.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/45908 -// Testcase by Jonathan Wakely <redi@gcc.gnu.org> - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -struct vector { - struct iterator { }; - struct const_iterator { }; - iterator begin(); - const_iterator begin() const; -}; - -class block { - vector v; - auto end() const -> decltype(v.begin()) - { return v.begin(); } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr47416.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr47416.C deleted file mode 100644 index 55426c1f8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr47416.C +++ /dev/null @@ -1,225 +0,0 @@ -// PR c++/47416 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -namespace std -{ - template < typename _Tp, _Tp __v > struct integral_constant - { - static const _Tp value = __v; - }; - typedef integral_constant < bool, false > false_type; - template < typename > struct is_array:false_type - { - }; - template < typename > struct is_function:false_type - { - }; - template < typename _Tp > struct remove_const - { - typedef _Tp type; - }; - template < typename _Tp > struct remove_volatile - { - typedef _Tp type; - }; - template < typename _Tp > struct remove_cv - { - typedef typename remove_const < typename remove_volatile < - _Tp >::type >::type type; - }; - template < typename > struct remove_reference - { - }; - template < typename _Tp > struct remove_reference <_Tp & > - { - typedef _Tp type; - }; - template < typename _Up, bool = is_array < _Up >::value, bool = - is_function < _Up >::value > struct __decay_selector; - template < typename _Up > struct __decay_selector <_Up, false, false > - { - typedef typename remove_cv < _Up >::type __type; - }; - template < typename _Tp > class decay - { - typedef typename remove_reference < _Tp >::type __remove_type; - public:typedef typename __decay_selector < - __remove_type >::__type type; - }; - template < typename _Tp > struct __strip_reference_wrapper - { - typedef _Tp __type; - }; - template < typename _Tp > struct __decay_and_strip - { - typedef typename __strip_reference_wrapper < typename decay < - _Tp >::type >::__type __type; - }; - template < typename _Tp > _Tp forward (typename remove_reference < - _Tp >::type &) - { - } - template < class _T1, class _T2 > struct pair - { - _T1 first; - _T2 second; - constexpr pair (_T1, _T2 &):first (), second (__b) // { dg-error "was not declared in this scope" } - { - } - }; - template < class _T1, - class _T2 > pair < typename __decay_and_strip < _T1 >::__type, - typename __decay_and_strip < _T2 >::__type > make_pair (_T1 && __x, _T2 - && __y) - { - typedef typename __decay_and_strip < _T1 >::__type __ds_type1; - typedef typename __decay_and_strip < _T2 >::__type __ds_type2; - typedef pair < __ds_type1, __ds_type2 > __pair_type; - __pair_type (forward < _T1 > (__x), std::forward < _T2 > (__y)); - } -} - -typedef long size_t; -namespace std -{ - template < typename > class allocator; - template < class > struct char_traits; - template < typename _CharT, typename = char_traits < _CharT >, typename = - allocator < _CharT > >class basic_string; - typedef basic_string < char >string; -} -namespace __gnu_cxx -{ - template < bool > class __pool; - template < template < bool > class, bool > struct __common_pool - { - }; - template < template < bool > class, bool > struct __common_pool_base; - template < template < bool > class _PoolTp > - struct __common_pool_base <_PoolTp, true >:__common_pool < _PoolTp, true > - { - }; - template < template < bool > class _PoolTp, - bool _Thread > struct __common_pool_policy:__common_pool_base < _PoolTp, - _Thread > - { - template < typename, template < bool > class _PoolTp1 = - _PoolTp, bool _Thread1 = _Thread > struct _M_rebind - { - typedef __common_pool_policy < _PoolTp1, _Thread1 > other; - }; - }; - template < typename _Tp > class __mt_alloc_base - { - }; -template < typename _Tp, typename _Poolp = __common_pool_policy < __pool, true > >class __mt_alloc:public __mt_alloc_base < - _Tp - > - { - public:size_t size_type; - typedef _Tp value_type; - template < typename _Tp1, typename _Poolp1 = _Poolp > struct rebind - { - typedef typename _Poolp1::template _M_rebind < _Tp1 >::other pol_type; - typedef __mt_alloc < _Tp1, pol_type > other; - }; - }; -} - -namespace std -{ - template < typename _Tp > class allocator:public __gnu_cxx::__mt_alloc < - _Tp > - { - }; - template < typename, typename > struct unary_function - { - }; - template < typename, typename, typename > struct binary_function - { - }; - template < typename _Tp > struct equal_to:binary_function < _Tp, _Tp, bool > - { - }; -} - -namespace boost -{ - template < class > struct hash; - template < class K, class T, class = hash < K >, class = - std::equal_to < K >, class = - std::allocator < std::pair < const K, T > >>class unordered_map; - template < >struct hash <std::string >:std::unary_function < std::string, - size_t > - { - }; - namespace unordered_detail - { - template < class Alloc, class T > struct rebind_wrap - { - typedef typename Alloc::template rebind < T >::other type; - }; - } - namespace unordered_detail - { - size_t default_bucket_count; - template < class, class > struct map_extractor; - struct ungrouped - { - }; - template < class T > class hash_table:T::buckets, T::buffered_functions - { - }; - template < class, class, class H, class P, class A, class, class G > struct types - { - typedef H hasher; - typedef P key_equal; - typedef A value_allocator; - }; - template < class T > class hash_unique_table:T - { - public:typedef typename T::hasher hasher; - typedef typename T::key_equal key_equal; - typedef typename T::value_allocator value_allocator; - typedef typename T::table table; - hash_unique_table (size_t n, hasher, key_equal, - value_allocator & a):table (n, a) // { dg-error "is not a direct base" } - { - } - }; - template < class K, class H, class P, class A > struct map:types < K, - typename A::value_type, H, P, A, map_extractor < K, - typename A::value_type >, ungrouped > - { - typedef hash_unique_table < map < K, H, P, A > >impl; - typedef hash_table < map < K, H, P, A > >table; - }; - } - template < class K, class T, class H, class P, class A > class unordered_map - { - typedef std::pair < const K, T > value_type; - typedef H hasher; - typedef P key_equal; - typedef A allocator_type; - typedef typename unordered_detail::rebind_wrap < allocator_type, - value_type >::type value_allocator; - typedef boost::unordered_detail::map < K, H, P, value_allocator > types; - typedef typename types::impl table; - typedef size_t size_type; - private:table table_; - public: unordered_map (size_type n = boost::unordered_detail::default_bucket_count, - hasher hf = hasher (), key_equal eql = key_equal (), - allocator_type a = allocator_type ()):table_ (n, hf, eql, a) // { dg-message "required" } - { - } - }; -}; - -void -foo (const int &a) -{ - typedef boost::unordered_map < std::string, int >Name2Port; - Name2Port b; // { dg-message "required" } - std::make_pair (a, b); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr47476.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr47476.C deleted file mode 100644 index 1f6f09ccc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr47476.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/47476 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -int -foo (int a, int b) -{ - const bool c ((a != 0) == (b != 26)); - return c; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr48522.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr48522.C deleted file mode 100644 index 1543d8a28..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr48522.C +++ /dev/null @@ -1,24 +0,0 @@ -// { dg-options "-std=c++0x" } - -template <typename T> -struct Handle -{ - Handle(T& t); -}; - -template<class T> -struct Class { - struct Struct {} data; - void f(); - void g(); -}; - -template<class T> -void Class<T>::f() { - Handle< decltype((data)) > handle(data); -} - -template<class T> -void Class<T>::g() { - Handle< decltype((data)) > handle(data); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr50491.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr50491.C deleted file mode 100644 index 48e7a1f74..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr50491.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options "-std=c++0x" } - -struct GrandParent { - void *get(); -}; - -template<class OBJ> -struct Parent : public GrandParent{ -}; - -template<typename T> -struct Child : public Parent<T> { - using GrandParent::get; - void Foo() { - void* ex = get(); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr50901.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr50901.C deleted file mode 100644 index 439c15cc1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr50901.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<class T> int foo(int a) -{ - const unsigned b = a < 0 ? -a : a; - return 0; -} - -int i = foo<float>(1); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51150.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51150.C deleted file mode 100644 index 37eb166b4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51150.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/51150 -// { dg-options "-std=c++0x" } - -struct Clock { - double Now(); -}; -template <class T> void Foo(Clock* clock) { - const int now = clock->Now(); -} - -template void Foo<float>(Clock*); - -template <class T> void Boo(int val) { - const int now1 = (double)(val); - const int now2 = const_cast<double>(val); // { dg-error "invalid" } - const int now3 = static_cast<double>(val); - const int now4 = reinterpret_cast<double>(val); // { dg-error "invalid" } -} - -template void Boo<float>(int); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51216.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51216.C deleted file mode 100644 index 4bdd07147..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51216.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/51216 -// { dg-options "-std=c++0x" } - -void foo() -{ - int i = ({ if (1) ; }); // { dg-error "ignored" } - int j = ({ for (;;) ; }); // { dg-error "ignored" } - int k = ({ while (1) ; }); // { dg-error "ignored" } - int l = ({ do { } while (1); }); // { dg-error "ignored" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51225.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51225.C deleted file mode 100644 index 6fcf8611f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51225.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/51225 -// { dg-options "-std=c++0x" } - -template<int> struct A {}; - -template<typename> void foo() -{ - A<int(x)> a; // { dg-error "not declared|invalid type" } -} - -template<typename> struct bar -{ - static constexpr A<1> b = A<1>(x); // { dg-error "not declared" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51313.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51313.C deleted file mode 100644 index ff078e02d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51313.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/51313 -// { dg-options "-std=c++0x" } - -class ostream; - -extern "C" { - extern int isdigit (int); -} - -ostream& -operator<<(ostream&, const unsigned char*); - -extern ostream cout; - -int main() -{ - cout << isdigit(0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51420.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51420.C deleted file mode 100644 index aec8cb1fc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51420.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=c++11" } - -void -foo() -{ - float x = operator"" _F(); // { dg-error "was not declared in this scope" } - float y = 0_F; // { dg-error "unable to find numeric literal operator" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51463.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51463.C deleted file mode 100644 index 1e8be3b52..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51463.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/51463 -// { dg-do compile } -// { dg-options "-std=c++11" } - -struct A -{ - static virtual int i = 0; // { dg-error "both virtual and static|declared as" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51547.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51547.C deleted file mode 100644 index 80215f6a3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51547.C +++ /dev/null @@ -1,50 +0,0 @@ -// PR c++/51547 -// { dg-options "-std=c++0x" } - -template <class T> -struct vector -{ - T* - begin() - { return &member; } - - const T* - begin() const - { return &member; } - - T member; -}; - -struct Bar { - int x; -}; - -struct Foo { - const vector<Bar>& bar() const { - return bar_; - } - - vector<Bar> bar_; -}; - -template <class X> -struct Y { - void foo() { - Foo a; - auto b = a.bar().begin(); - auto&& c = b->x; - } -}; - -template <class X> -void foo() { - Foo a; - auto b = a.bar().begin(); - auto&& c = b->x; -} - -int main() { - Y<int> p; - p.foo(); - foo<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51619.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51619.C deleted file mode 100644 index dd5167915..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr51619.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/51619 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -struct A { virtual ~A(); }; -struct B { A a[1][1]; } b; -struct C { A a[3][3]; } c; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr52744.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr52744.C deleted file mode 100644 index 1a01fb295..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr52744.C +++ /dev/null @@ -1,83 +0,0 @@ -// PR c++/52744 -// { dg-do compile { target c++11 } } - -struct T -{ - int a; - void b(){} - int c(int) - { - return 1; - } -}; - -template<typename CT, CT> struct member_helper; - -template<typename FT, FT(T::*mem)> -struct member_helper<FT(T::*), mem> -{ - static const char* worker() - { - return "for members"; - } -}; - -template<typename Return, typename... Args, Return(T::*fun)(Args...)> -struct member_helper<Return(T::*)(Args...), fun> -{ - static const char* worker() - { - return "for member functions returning non void"; - } -}; - -template<typename... Args, void(T::*fun)(Args...)> -struct member_helper<void(T::*)(Args...), fun> -{ - static const char* worker() - { - return "for member functions returning void"; - } -}; - -void member_test() -{ - member_helper<decltype(&T::a), &T::a>::worker(); - member_helper<decltype(&T::b), &T::b>::worker(); - member_helper<decltype(&T::c), &T::c>::worker(); -} - -typedef void lua_State; - -template<typename T, T> class function_helper -{ - static_assert(sizeof(T) != sizeof(T), - "Error: function_helper works with functions (duh)"); -}; - -template<typename Return, typename... Args, Return(*func)(Args...)> -struct function_helper<Return(*)(Args...), func> -{ - static int wrapper(lua_State* l) - { - return 1; - } -}; - -template<typename... Args, void(*func)(Args...)> -struct function_helper<void(*)(Args...), func> -{ - static int wrapper(lua_State* l) - { - return 0; - } -}; - -int ciao(int){ return 0; } -void ciao2(int){} - -void function_test() -{ - function_helper<decltype(&ciao), &ciao>::wrapper(0); - function_helper<decltype(&ciao2), &ciao2>::wrapper(0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr52841.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr52841.C deleted file mode 100644 index f6467f8f7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr52841.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-do compile } - -struct Solvable; -namespace sat -{ - class Solvable - { - public: - typedef bool bool_type; - }; -} - -class Resolvable : public sat::Solvable -{ -public: - using sat::Solvable::bool_type; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr54323.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr54323.C deleted file mode 100644 index 71b6c7192..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/pr54323.C +++ /dev/null @@ -1,37 +0,0 @@ -// PR c++/54323 -// { dg-do compile { target c++11 } } - -template<bool, typename T = void> -struct enable_if { }; - -template<typename T> -struct enable_if<true, T> -{ typedef T type; }; - -template<template<typename> class CRTP, typename T> -class Base -{ -public: - template<template<typename> class CRTP0, typename T0, class> - friend int func(const Base<CRTP0, T0>& rhs); - -protected: - int n; -}; - -template<template<typename> class CRTP0, typename T0, - class = typename enable_if<true>::type> -int func(const Base<CRTP0, T0>& rhs) -{ - return rhs.n; -} - -template<typename T> -class Derived : public Base<Derived, T> {}; - -int main() -{ - Derived<int> x; - func(x); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C deleted file mode 100644 index b6c81d5f4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C +++ /dev/null @@ -1,9 +0,0 @@ -// Origin PR c++/51476 -// { dg-options "-std=c++11" } - -template<int> struct A {}; -struct B -{ - int i; - A<&B::i> a; // { dg-error "could not convert template argument" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for1.C deleted file mode 100644 index 49e2ecd0b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for1.C +++ /dev/null @@ -1,17 +0,0 @@ -// Test for range-based for loop -// Test the loop with an array - -// { dg-do run } -// { dg-options "-std=c++0x" } - -extern "C" void abort(); - -int main() -{ - int a[] = {1,2,3,4}; - int sum = 0; - for (int x : a) - sum += x; - if (sum != 10) - abort(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for10.C deleted file mode 100644 index 662074890..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for10.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/47388 -// { dg-do compile } -// { dg-options "-fno-for-scope -std=c++0x" } - -template <int> -void -foo () -{ - int a[] = { 1, 2, 3, 4 }; - for (int i : a) - ; -} - -void -bar () -{ - foo <0> (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for11.C deleted file mode 100644 index d02519a25..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for11.C +++ /dev/null @@ -1,40 +0,0 @@ -// Test for range-based for loop -// Test the loop with a custom iterator -// with begin/end as member functions - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -struct iterator -{ - int x; - explicit iterator(int v) :x(v) {} - iterator &operator ++() { ++x; return *this; } - int operator *() { return x; } - bool operator != (const iterator &o) { return x != o.x; } -}; - -namespace foo -{ - struct container - { - int min, max; - container(int a, int b) :min(a), max(b) {} - - iterator begin() - { - return iterator(min); - } - iterator end() - { - return iterator(max + 1); - } - }; -} - -int main() -{ - foo::container c(1,4); - for (int it : c) - ; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for12.C deleted file mode 100644 index 9b405dc62..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for12.C +++ /dev/null @@ -1,116 +0,0 @@ -// Test for range-based for loop with templates -// and begin/end as member functions - -// { dg-do run } -// { dg-options "-std=c++0x" } - -/* Preliminary declarations */ -namespace pre -{ - struct iterator - { - int x; - explicit iterator (int v) :x(v) {} - iterator &operator ++() { ++x; return *this; } - int operator *() { return x; } - bool operator != (const iterator &o) { return x != o.x; } - }; - - struct container - { - int min, max; - container(int a, int b) :min(a), max(b) {} - iterator begin() const - { - return iterator(min); - } - iterator end() const - { - return iterator(max); - } - - }; - -} //namespace pre - -using pre::container; -extern "C" void abort(void); - -container run_me_just_once() -{ - static bool run = false; - if (run) - abort(); - run = true; - return container(1,2); -} - -/* Template with dependent expression. */ -template<typename T> int test1(const T &r) -{ - int t = 0; - for (int i : r) - t += i; - return t; -} - -/* Template with non-dependent expression and dependent declaration. */ -template<typename T> int test2(const container &r) -{ - int t = 0; - for (T i : r) - t += i; - return t; -} - -/* Template with non-dependent expression (array) and dependent declaration. */ -template<typename T> int test2(const int (&r)[4]) -{ - int t = 0; - for (T i : r) - t += i; - return t; -} - -/* Template with non-dependent expression and auto declaration. */ -template<typename T> int test3(const container &r) -{ - int t = 0; - for (auto i : r) - t += i; - return t; -} - -/* Template with non-dependent expression (array) and auto declaration. */ -template<typename T> int test3(const int (&r)[4]) -{ - int t = 0; - for (auto i : r) - t += i; - return t; -} - -int main () -{ - container c(1,5); - int a[4] = {5,6,7,8}; - - for (auto x : run_me_just_once()) - ; - - if (test1 (c) != 10) - abort(); - if (test1 (a) != 26) - abort(); - - if (test2<int> (c) != 10) - abort(); - if (test2<int> (a) != 26) - abort(); - - if (test3<int> (c) != 10) - abort(); - if (test3<int> (a) != 26) - abort(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for13.C deleted file mode 100644 index 7ebf0c563..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for13.C +++ /dev/null @@ -1,103 +0,0 @@ -// Test for errors in range-based for loops -// with member begin/end - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -//These should not be used -template<typename T> int *begin(T &t) -{ - T::fail; -} -template<typename T> int *end(T &t) -{ - T::fail; -} - -struct container1 -{ - int *begin(); - //no end -}; - -struct container2 -{ - int *end(); - //no begin -}; - -struct container3 -{ -private: - int *begin(); // { dg-error "is private" } - int *end(); // { dg-error "is private" } -}; - -struct container4 -{ - int *begin; - int *end; -}; - -struct container5 -{ - typedef int *begin; - typedef int *end; -}; - -struct callable -{ - int *operator()(); -}; - -struct container6 -{ - callable begin; - callable end; -}; - -struct container7 -{ - static callable begin; - static callable end; -}; - -struct container8 -{ - static int *begin(); - int *end(); -}; - -struct private_callable -{ -private: - int *operator()(); // { dg-error "is private" } -}; - -struct container9 -{ - private_callable begin; - private_callable end; -}; - -struct container10 -{ - typedef int *(*function)(); - - function begin; - static function end; -}; - -void test1() -{ - for (int x : container1()); // { dg-error "member but not" } - for (int x : container2()); // { dg-error "member but not" } - for (int x : container3()); // { dg-error "within this context" } - for (int x : container4()); // { dg-error "cannot be used as a function" } - for (int x : container5()); // { dg-error "invalid use of" } - for (int x : container6()); - for (int x : container7()); - for (int x : container8()); - for (int x : container9()); // { dg-error "within this context" } - for (int x : container10()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for14.C deleted file mode 100644 index 438555e13..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for14.C +++ /dev/null @@ -1,95 +0,0 @@ -// Test for other range-based for loops with -// begin/end member functions - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -//These should not be used -template<typename T> int *begin(T &t) -{ - T::fail; -} -template<typename T> int *end(T &t) -{ - T::fail; -} - -//Test for defaults - -struct default1 -{ - int *begin(int x); // { dg-message "note" } - int *end(); -}; - -struct default2 -{ - int *begin(int x=0); - int *end(); -}; - -struct default3 -{ - template <typename T> T *begin(); // { dg-message "note" } - int *end(); -}; - -struct default4 -{ - template <typename T=int> T *begin(); - int *end(); -}; - -struct default5 -{ - template <typename T=int> T *begin(int x=0); - int *end(); -}; - -void test1() -{ - for (int x : default1()); // { dg-error "no matching function|note" } - for (int x : default2()); - for (int x : default3()); // { dg-error "no matching function|note" } - for (int x : default4()); - for (int x : default5()); -} - -//Inheritance tests - -struct base_begin -{ - int *begin(); // { dg-message "" } -}; - -struct base_end -{ - int *end(); -}; - -struct derived1 : base_begin, base_end -{ -}; - -struct base_begin2 : base_begin -{ -}; - -struct derived2 : base_begin, base_end, base_begin2 // { dg-warning "" } -{ -}; - -struct base_begin3 : virtual base_begin -{ -}; - -struct derived3 : virtual base_begin, base_end, base_begin3 -{ -}; - -void test2() -{ - for (int x : derived1()); - for (int x : derived2()); // { dg-error "is ambiguous" } - for (int x : derived3()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for15.C deleted file mode 100644 index 38f330771..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for15.C +++ /dev/null @@ -1,59 +0,0 @@ -// Test for range-based for loop with templates -// and begin/end as member (non-)virtual functions - -// { dg-do run } -// { dg-options "-std=c++0x" } - -unsigned int g; - -struct A -{ - virtual int *begin() - { - g |= 1; - return 0; - } - int *end() - { - g |= 2; - return 0; - } -}; - -struct B : A -{ - virtual int *begin() - { - g |= 4; - return 0; - } - int *end() - { - g |= 8; - return 0; - } -}; - -extern "C" void abort(void); - -int main () -{ - A a; - B b; - A &aa = b; - - g = 0; - for (int x : a); - if (g != (1 | 2)) - abort(); - - g = 0; - for (int x : b); - if (g != (4 | 8)) - abort(); - - g = 0; - for (int x : aa); - if (g != (4 | 2)) - abort(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for16.C deleted file mode 100644 index 86cc2a828..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for16.C +++ /dev/null @@ -1,21 +0,0 @@ -// Test for range-based for loop with arrays of -// incomplete type or unknown size - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -extern int a[10]; -extern int b[]; - -struct S; -extern S c[10]; -extern S d[]; - -void test() -{ - for (int n : a); - for (int n : b); // { dg-error "incomplete type" } - for (S &n : c); // { dg-error "incomplete type" } - for (S &n : d); // { dg-error "incomplete type" } - for (int n : *c); // { dg-error "incomplete type" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for17.C deleted file mode 100644 index eb888d9ab..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for17.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options -std=c++0x } - -extern "C" int printf (const char *, ...); - -enum E { e1, e2, e3, X }; -E operator*(E e) { return e; } -E begin(E e) { return e; } -E end(E e) { return X; }; -E operator++(E& e) { return e = E(e+1); } - -int main() -{ - for (auto e: e1) - { - printf ("%d ", e); - } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for18.C deleted file mode 100644 index 386d73d18..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for18.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/48994 - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <typename T> -struct myvec -{ - T* begin() const; - T* end() const; -}; - -void f(const myvec<int>& v) -{ - for (int i : v) - ; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for19.C deleted file mode 100644 index 4306fbda6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for19.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/49838 - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -int main() -{ - auto a; // { dg-error "no initializer" } - for(auto i: a) // { dg-error "deduce" } - ; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for2.C deleted file mode 100644 index 17eb41dba..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for2.C +++ /dev/null @@ -1,41 +0,0 @@ -// Test for range-based for loop -// Test the loop with a custom iterator -// with begin/end in an associated namespace - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -struct iterator -{ - int x; - explicit iterator(int v) :x(v) {} - iterator &operator ++() { ++x; return *this; } - int operator *() { return x; } - bool operator != (const iterator &o) { return x != o.x; } -}; - -namespace foo -{ - struct container - { - int min, max; - container(int a, int b) :min(a), max(b) {} - }; - - iterator begin(container &c) - { - return iterator(c.min); - } - - iterator end(container &c) - { - return iterator(c.max + 1); - } -} - -int main() -{ - foo::container c(1,4); - for (int it : c) - ; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for20.C deleted file mode 100644 index 890eb0aea..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for20.C +++ /dev/null @@ -1,36 +0,0 @@ -// PR c++/49834 -// PR c++/50020 -// { dg-options -std=c++0x } - -struct A -{ - template <typename T> T get_value() const; -}; - -struct B { - A first, second; -}; - -struct C -{ - B* begin() const; - B* end() const; -}; - -template <typename Ret> -struct D -{ - Ret f(const C &p) - { - for (const B &i: p) // OK - i.second.get_value<int>(); - for (const auto &i: p) // ERROR - i.second.get_value<int>(); - return Ret(0); - } -}; - -void g() -{ - D<int>().f(C()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for21.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for21.C deleted file mode 100644 index 07bb95fbf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for21.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/49983 -// { dg-options -std=c++0x } - -template <class T> -void f(T t) -{ - for (auto v : t); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for22.C deleted file mode 100644 index 5fef5e6ac..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for22.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } - -template<int I> void f() { - for (auto i: {I} ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for23.C deleted file mode 100644 index 849682c02..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for23.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/56722 -// { dg-do compile { target c++11 } } - -int main() -{ - for (const auto& i, 21) // { dg-error "has no initializer|expected" } - i; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for24.C deleted file mode 100644 index b4a5b185b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for24.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/56794 -// { dg-require-effective-target c++11 } - -template<int... values> -static void Colors() -{ - static const int colors[] = { values... }; - - for(auto c: colors) { } -} - -int main() -{ - Colors<0,1,2> (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for25.C deleted file mode 100644 index 8ba9f652d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for25.C +++ /dev/null @@ -1,30 +0,0 @@ -// PR c++/57243 -// { dg-require-effective-target c++11 } - -struct snarf -{ - template <class T> - void get() {} -}; - -template <class T> -struct container -{ - snarf * begin() { return nullptr; } - snarf * end() { return nullptr; } -}; - -template <class T> -void foo() -{ - container<int> arr; - - for( auto i : arr ) - i.get<int>(); -} - -int main() -{ - return 0; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for3.C deleted file mode 100644 index 85115a38f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for3.C +++ /dev/null @@ -1,42 +0,0 @@ -// Test for range-based for loop -// Test the loop with a custom iterator -// with begin/end in std - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -struct iterator -{ - int x; - explicit iterator(int v) :x(v) {} - iterator &operator ++() { ++x; return *this; } - int operator *() { return x; } - bool operator != (const iterator &o) { return x != o.x; } -}; - -struct container -{ - int min, max; - container(int a, int b) :min(a), max(b) {} -}; - -namespace std -{ - iterator begin(container &c) - { - return iterator(c.min); - } - - iterator end(container &c) - { - return iterator(c.max + 1); - } -} - -int main() -{ - container c(1,4); - for (int it : c) - { - } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for4.C deleted file mode 100644 index afbcf14b2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for4.C +++ /dev/null @@ -1,116 +0,0 @@ -// Test for range-based for loop with templates - -// { dg-do run } -// { dg-options "-std=c++0x" } - -/* Preliminary declarations */ -namespace pre -{ - struct iterator - { - int x; - iterator (int v) :x(v) {} - iterator &operator ++() { ++x; return *this; } - int operator *() { return x; } - bool operator != (const iterator &o) { return x != o.x; } - }; - - struct container - { - int min, max; - container(int a, int b) :min(a), max(b) {} - }; - - iterator begin(const container &c) - { - return iterator(c.min); - } - - iterator end(const container &c) - { - return iterator(c.max); - } - -} //namespace pre - -using pre::container; -extern "C" void abort(void); - -container run_me_just_once() -{ - static bool run = false; - if (run) - abort(); - run = true; - return container(1,2); -} - -/* Template with dependent expression. */ -template<typename T> int test1(const T &r) -{ - int t = 0; - for (int i : r) - t += i; - return t; -} - -/* Template with non-dependent expression and dependent declaration. */ -template<typename T> int test2(const container &r) -{ - int t = 0; - for (T i : r) - t += i; - return t; -} - -/* Template with non-dependent expression (array) and dependent declaration. */ -template<typename T> int test2(const int (&r)[4]) -{ - int t = 0; - for (T i : r) - t += i; - return t; -} - -/* Template with non-dependent expression and auto declaration. */ -template<typename T> int test3(const container &r) -{ - int t = 0; - for (auto i : r) - t += i; - return t; -} - -/* Template with non-dependent expression (array) and auto declaration. */ -template<typename T> int test3(const int (&r)[4]) -{ - int t = 0; - for (auto i : r) - t += i; - return t; -} - -int main () -{ - container c(1,5); - int a[4] = {5,6,7,8}; - - for (auto x : run_me_just_once()) - ; - - if (test1 (c) != 10) - abort(); - if (test1 (a) != 26) - abort(); - - if (test2<int> (c) != 10) - abort(); - if (test2<int> (a) != 26) - abort(); - - if (test3<int> (c) != 10) - abort(); - if (test3<int> (a) != 26) - abort(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for5.C deleted file mode 100644 index fd6f7618f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for5.C +++ /dev/null @@ -1,54 +0,0 @@ -// Test for errors in range-based for loops - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -struct container -{ -}; - -int *begin(const container &c) -{ - return 0; -} - -int end(const container &c) //Ops! wrong type -{ - return 0; -} - - -struct Implicit -{ - Implicit(int x) - {} -}; -struct Explicit -{ - explicit Explicit(int x) - {} -}; - -void test1() -{ - container c; - for (int x : c) // { dg-error "inconsistent|conversion" } - ; - - int a[2] = {1,2}; - for (Implicit x : a) - ; - for (Explicit x : a) // { dg-error "conversion" } - ; - for (const Implicit &x : a) - ; - for (Implicit &&x : a) - ; - - //Check the correct scopes - int i; - for (int i : a) // { dg-error "previously declared" } - { - int i; // { dg-error "redeclaration" } - } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for6.C deleted file mode 100644 index 775507f8d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for6.C +++ /dev/null @@ -1,29 +0,0 @@ -// Test for range-based for loop -// Test the loop with an initializer_list - -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -extern "C" void abort(); - -template<typename T> T foo() -{ - T sum = 0; - for (T x : {T(1),T(2),T(3),T(4)}) - sum += x; - if (sum != T(10)) - abort(); -} - -int main() -{ - int sum = 0; - for (int x : {1,2,3,4}) - sum += x; - if (sum != 10) - abort(); - - foo<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for7.C deleted file mode 100644 index ad89dc201..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for7.C +++ /dev/null @@ -1,117 +0,0 @@ -// PR c++/46056 -// Check that range-based for loop calls destructors -// when required -// { dg-options "-std=c++0x" } -// { dg-do run } -extern "C" void abort(); - -int value_counter = 0, it_counter = 0, seq_counter = 0; - -struct Int -{ - int x; - Int(int v) - :x(v) - { - ++value_counter; - } - Int(const Int &o) - :x(o.x) - { - ++value_counter; - } - ~Int() - { - --value_counter; - } -}; - -struct iterator -{ - int x; - iterator(int v) - :x(v) - { - ++it_counter; - } - iterator(const iterator &o) - :x(o.x) - { - ++it_counter; - } - ~iterator() - { - --it_counter; - } - iterator &operator ++() { ++x; return *this; } - int operator *() { return x; } - bool operator != (const iterator &o) { return x != o.x; } -}; - -struct container -{ - int min, max; - container(int a, int b) :min(a), max(b) - { - ++seq_counter; - } - container(const container &) = delete; - ~container() - { - --seq_counter; - } -}; - -iterator begin(container &c) -{ - return iterator(c.min); -} - -iterator end(container &c) -{ - return iterator(c.max + 1); -} - -int main() -{ - for (Int x : container(0, 10)) - { - if (value_counter != 1) abort(); - if (it_counter != 2) abort(); - if (seq_counter != 1) abort(); - } - if (value_counter != 0) abort(); - if (it_counter != 0) abort(); - if (seq_counter != 0) abort(); - - try - { - for (Int x : container(0, 10)) - { - if (value_counter != 1) abort(); - if (it_counter != 2) abort(); - if (seq_counter != 1) abort(); - } - if (value_counter != 0) abort(); - if (it_counter != 0) abort(); - if (seq_counter != 0) abort(); - - for (Int x : container(0, 10)) - { - if (value_counter != 1) abort(); - if (it_counter != 2) abort(); - if (seq_counter != 1) abort(); - - if (x.x == 5) - throw 0; - } - } - catch (int) - { - if (value_counter != 0) abort(); - if (it_counter != 0) abort(); - if (seq_counter != 0) abort(); - } - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for8.C deleted file mode 100644 index 641dfe052..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for8.C +++ /dev/null @@ -1,16 +0,0 @@ -// Test for range-based for loop when the declarator declares -// a new type - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -#include <initializer_list> - -void test() -{ - for (struct S { } *x : { (S*)0, (S*)0 } ) - ; - - for (struct S { } x : { S(), S() } ) - ; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for9.C deleted file mode 100644 index c51cbf994..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/range-for9.C +++ /dev/null @@ -1,11 +0,0 @@ -// Test for range-based for loop error in C++98 mode - -// { dg-do compile } -// { dg-options "-std=c++98" } - -void test() -{ - int a[] = {0,1,2}; - for (int x : a) // { dg-error "range-based 'for'" } - ; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual-mangle1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual-mangle1.C deleted file mode 100644 index c6ef0792b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual-mangle1.C +++ /dev/null @@ -1,37 +0,0 @@ -// PR c++/56821 -// { dg-require-effective-target c++11 } - -struct A { - // { dg-final { scan-assembler "_ZNR1A1fEv" } } - void f() & {} - // { dg-final { scan-assembler "_ZNO1A1gEv" } } - void g() && {} - // { dg-final { scan-assembler "_ZNKR1A1hEv" } } - void h() const & {} -}; - -// { dg-final { scan-assembler "_Z1jM1AFvvRE" } } -void j(void (A::*)() &) { } -// { dg-final { scan-assembler "_Z1kM1AFvvOE" } } -void k(void (A::*)() &&) { } -// { dg-final { scan-assembler "_Z1lM1AKFvvRE" } } -void l(void (A::*)() const &) { } - -// { dg-final { scan-assembler "_Z1mIFvvOEEvM1AT_" } } -// { dg-final { scan-assembler "_Z1mIFvvREEvM1AT_" } } -// { dg-final { scan-assembler "_Z1mIKFvvREEvM1AT_" } } -template <typename T> -void m(T A::*) {} - -// { dg-final { scan-assembler "_Z1nIM1AFvvOEEvT_" } } -// { dg-final { scan-assembler "_Z1nIM1AFvvREEvT_" } } -// { dg-final { scan-assembler "_Z1nIM1AKFvvREEvT_" } } -template <typename T> -void n(T) {} - -int main() -{ - j(&A::f); k(&A::g); l(&A::h); - m(&A::f); m(&A::g); m(&A::h); - n(&A::f); n(&A::g); n(&A::h); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual1.C deleted file mode 100644 index 7fa826c3d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual1.C +++ /dev/null @@ -1,30 +0,0 @@ -// { dg-require-effective-target c++11 } - -template <class,class> struct ST; -template <class T> struct ST<T,T> {}; - -struct A -{ - int f() &; - char f() &&; -}; - -template <class T> struct B -{ - int f() &; - char f() &&; -}; - -int main() -{ - A a; - a.f(); - A().f(); - ST<decltype(a.f()), int>(); - ST<decltype(A().f()), char>(); - B<int> b; - b.f(); - B<int>().f(); - ST<decltype(b.f()), int>(); - ST<decltype(B<int>().f()), char>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual10.C deleted file mode 100644 index 1b6c54fd4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual10.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/57252 -// { dg-require-effective-target c++11 } - -struct foo { - void bar() & {} - void bar() && {} -}; - -int main() -{ - auto p = &foo::bar; // { dg-error "" } - (foo{}.*p)(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual11.C deleted file mode 100644 index 15dd049f2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual11.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/57253 -// { dg-require-effective-target c++11 } - -template<typename T> struct foo; - -template<> struct foo<void()&> {}; -template<> struct foo<void()> {}; - -int main() -{} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual12.C deleted file mode 100644 index b0a16fe94..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual12.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/57254 -// { dg-require-effective-target c++11 } - -struct foo { - template<typename T> - void bar(T) &; - - template<typename T> - void bar(T) &&; -}; - -template<typename T> -void foo::bar(T) & {} - -template<typename T> -void foo::bar(T) && {} - -int main() -{ - foo f; - f.bar(0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual13.C deleted file mode 100644 index 84d3b0f2d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual13.C +++ /dev/null @@ -1,29 +0,0 @@ -// PR c++/57388 -// { dg-require-effective-target c++11 } - -template<class> struct A -{ - static constexpr bool value = false; -}; - -template<class Res, class... Args> -struct A<Res(Args...)> -{ - static constexpr bool value = true; -}; - -template<class Res, class... Args> -struct A<Res(Args...) const &> -{ - static constexpr bool value = true; -}; - -template<class Res, class... Args> -struct A<Res(Args...) const &&> -{ - static constexpr bool value = true; -}; - -static_assert(A<void()>::value, "Ouch"); -static_assert(A<void() const &>::value, ""); // #1 -static_assert(A<void() const &&>::value, ""); // #2 diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual2.C deleted file mode 100644 index fa09ab48a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual2.C +++ /dev/null @@ -1,75 +0,0 @@ -// In a .* expression whose object expression is an rvalue, the program is -// ill-formed if the second operand is a pointer to member function with -// ref-qualifier &. In a .* expression whose object expression is an -// lvalue, the program is ill-formed if the second operand is a pointer to -// member function with ref-qualifier &&. - -// { dg-require-effective-target c++11 } - -struct A { - void f() &; - void g() &&; - void h(); -}; - -void one() -{ - A a; - - void (A::*p)() & = &A::f; - (a.*p)(); - (A().*p)(); // { dg-error "" } - - p = &A::g; // { dg-error "" } - p = &A::h; // { dg-error "" } - - void (A::*p2)() && = &A::g; - (A().*p2)(); - (a.*p2)(); // { dg-error "" } - p2 = &A::f; // { dg-error "" } - p2 = &A::h; // { dg-error "" } - - void (A::*p3)() = &A::h; - (a.*p3)(); - (A().*p3)(); - p3 = &A::f; // { dg-error "" } - p3 = &A::g; // { dg-error "" } -} - -template <class T> -struct B { - void f() &; - void g() &&; - void h(); -}; - -template <class T> -void two() -{ - B<T> a; - - void (B<T>::*p)() & = &B<T>::f; - (a.*p)(); - (B<T>().*p)(); // { dg-error "" } - - p = &B<T>::g; // { dg-error "" } - p = &B<T>::h; // { dg-error "" } - - void (B<T>::*p2)() && = &B<T>::g; - (B<T>().*p2)(); - (a.*p2)(); // { dg-error "" } - p2 = &B<T>::f; // { dg-error "" } - p2 = &B<T>::h; // { dg-error "" } - - void (B<T>::*p3)() = &B<T>::h; - (a.*p3)(); - (B<T>().*p3)(); - p3 = &B<T>::f; // { dg-error "" } - p3 = &B<T>::g; // { dg-error "" } -} - -int main() -{ - one(); - two<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual3.C deleted file mode 100644 index 1b2119632..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual3.C +++ /dev/null @@ -1,29 +0,0 @@ -// An explicitly defaulted function can have a ref-qualifier. - -// { dg-require-effective-target c++11 } - -struct A { - A& operator=(const A&) & = default; -}; - -template<class T> -struct B { - B& operator=(const B&) & = default; -}; - -template<class T> -void f() -{ - B<T> b; - b = B<T>(); - B<T>() = b; // { dg-error "" } -} - -int main() -{ - A a; - a = A(); - A() = a; // { dg-error "" } - - f<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual4.C deleted file mode 100644 index 5a0ee162f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual4.C +++ /dev/null @@ -1,14 +0,0 @@ -// 12.1: A constructor shall not be declared with a ref-qualifier. -// 12.4: A destructor shall not be declared with a ref-qualifier. - -// { dg-require-effective-target c++11 } - -struct A { - A() & = default; // { dg-error "constructor" } - ~A() & = default; // { dg-error "destructor" } -}; - -int main() -{ - A a; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual5.C deleted file mode 100644 index e3d26e5a7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual5.C +++ /dev/null @@ -1,13 +0,0 @@ -// 13.1: ...cannot be overloaded if any of them, but not all, have a -// ref-qualifier. - -// { dg-require-effective-target c++11 } - -class Y { - void h() &; - void h() const &; // OK - void h() &&; // OK, all declarations have a ref-qualifier - void i() &; // { dg-message "" } - void i() const; // { dg-error "" } prior declaration of i - // has a ref-qualifier -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual6.C deleted file mode 100644 index 02e3f6e68..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual6.C +++ /dev/null @@ -1,15 +0,0 @@ -// Binding an rvalue to && beats binding it to const& (13.3.3.2). - -// { dg-require-effective-target c++11 } - -struct A -{ - int operator+(int) &&; -}; - -void operator+ (const A&, int); - -int main() -{ - return A() + 42; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual7.C deleted file mode 100644 index 2430665db..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual7.C +++ /dev/null @@ -1,19 +0,0 @@ -// typedef test -// { dg-require-effective-target c++11 } - -typedef void F() &; - -F f; // { dg-error "" } -F* p; // { dg-error "" } -extern F& r; // { dg-error "" } - -struct A { - F f; -}; - -int main() -{ - A a; - a.f(); - A().f(); // { dg-error "" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual8.C deleted file mode 100644 index b4c972b3c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual8.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-require-effective-target c++11 } - -struct A -{ - virtual void f() & = 0; -}; - -struct B: A -{ - void f(); // doesn't override -}; - -B b; // { dg-error "abstract" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual9.C deleted file mode 100644 index cdb8d6856..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/ref-qual9.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/57064 -// { dg-require-effective-target c++11 } - -template <class T> T&& move(T& t); - -struct A { - void p() &; - int p() &&; -}; - -void g(A &&a) -{ - int i = move(a).p(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/reference_collapsing.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/reference_collapsing.C deleted file mode 100644 index 5b682e304..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/reference_collapsing.C +++ /dev/null @@ -1,175 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test the reference collapsing rules. Note that there are recent differences -// for how cv-qualifications are applied to reference types. 7.1.3, 14.3.1 - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -template <class T, T v> -struct integral_constant -{ - static const T value = v; - typedef T value_type; - typedef integral_constant<T, v> type; -}; - -typedef integral_constant<bool, true> true_type; -typedef integral_constant<bool, false> false_type; - -template <class T> struct is_lvalue_reference : public integral_constant<bool, false> {}; -template <class T> struct is_lvalue_reference<T&> : public integral_constant<bool, true> {}; - -template <class T> struct is_rvalue_reference : public integral_constant<bool, false> {}; -template <class T> struct is_rvalue_reference<T&&> : public integral_constant<bool, true> {}; - -template <class T> struct remove_reference {typedef T type;}; -template <class T> struct remove_reference<T&> {typedef T type;}; -template <class T> struct remove_reference<T&&> {typedef T type;}; - -template <class T> struct is_const : public integral_constant<bool, false> {}; -template <class T> struct is_const<T const> : public integral_constant<bool, true> {}; - -template <class T> struct is_volatile : public integral_constant<bool, false> {}; -template <class T> struct is_volatile<T volatile> : public integral_constant<bool, true> {}; - -struct A {}; - -typedef A& Alref; -typedef const A& cAlref; -typedef volatile A& vAlref; -typedef const volatile A& cvAlref; - -typedef A&& Arref; -typedef const A&& cArref; -typedef volatile A&& vArref; -typedef const volatile A&& cvArref; - -template <class T, bool is_lvalue_ref, bool is_rvalue_ref, bool s_const, bool s_volatile> -void test() -{ - sa<is_lvalue_reference<T>::value == is_lvalue_ref> t1; - sa<is_rvalue_reference<T>::value == is_rvalue_ref> t2; - sa<is_const <typename remove_reference<T>::type>::value == s_const> t3; - sa<is_volatile<typename remove_reference<T>::type>::value == s_volatile> t4; - sa<is_const <typename remove_reference<const T>::type>::value == s_const > t5; - sa<is_volatile<typename remove_reference< volatile T>::type>::value == s_volatile> t6; -} - -int main() -{ - // sanity check - test< A&, true, false, false, false>(); - test<const A&, true, false, true, false>(); - test< volatile A&, true, false, false, true>(); - test<const volatile A&, true, false, true, true>(); - test< A&&, false, true, false, false>(); - test<const A&&, false, true, true, false>(); - test< volatile A&&, false, true, false, true>(); - test<const volatile A&&, false, true, true, true>(); - -// lvalue reference test - - // Alref - test< Alref&, true, false, false, false>(); - test<const Alref&, true, false, false, false>(); - test< volatile Alref&, true, false, false, false>(); - test<const volatile Alref&, true, false, false, false>(); - - // cAlref - test< cAlref&, true, false, true, false>(); - test<const cAlref&, true, false, true, false>(); - test< volatile cAlref&, true, false, true, false>(); - test<const volatile cAlref&, true, false, true, false>(); - - // vAlref - test< vAlref&, true, false, false, true>(); - test<const vAlref&, true, false, false, true>(); - test< volatile vAlref&, true, false, false, true>(); - test<const volatile vAlref&, true, false, false, true>(); - - // cvAlref - test< cvAlref&, true, false, true, true>(); - test<const cvAlref&, true, false, true, true>(); - test< volatile cvAlref&, true, false, true, true>(); - test<const volatile cvAlref&, true, false, true, true>(); - - // Arref - test< Arref&, true, false, false, false>(); - test<const Arref&, true, false, false, false>(); - test< volatile Arref&, true, false, false, false>(); - test<const volatile Arref&, true, false, false, false>(); - - // cArref - test< cArref&, true, false, true, false>(); - test<const cArref&, true, false, true, false>(); - test< volatile cArref&, true, false, true, false>(); - test<const volatile cArref&, true, false, true, false>(); - - // vArref - test< vArref&, true, false, false, true>(); - test<const vArref&, true, false, false, true>(); - test< volatile vArref&, true, false, false, true>(); - test<const volatile vArref&, true, false, false, true>(); - - // vArref - test< cvArref&, true, false, true, true>(); - test<const cvArref&, true, false, true, true>(); - test< volatile cvArref&, true, false, true, true>(); - test<const volatile cvArref&, true, false, true, true>(); - -// rvalue reference test - - // Alref - test< Alref&&, true, false, false, false>(); - test<const Alref&&, true, false, false, false>(); - test< volatile Alref&&, true, false, false, false>(); - test<const volatile Alref&&, true, false, false, false>(); - - // cAlref - test< cAlref&&, true, false, true, false>(); - test<const cAlref&&, true, false, true, false>(); - test< volatile cAlref&&, true, false, true, false>(); - test<const volatile cAlref&&, true, false, true, false>(); - - // vAlref - test< vAlref&&, true, false, false, true>(); - test<const vAlref&&, true, false, false, true>(); - test< volatile vAlref&&, true, false, false, true>(); - test<const volatile vAlref&&, true, false, false, true>(); - - // cvAlref - test< cvAlref&&, true, false, true, true>(); - test<const cvAlref&&, true, false, true, true>(); - test< volatile cvAlref&&, true, false, true, true>(); - test<const volatile cvAlref&&, true, false, true, true>(); - - // Arref - test< Arref&&, false, true, false, false>(); - test<const Arref&&, false, true, false, false>(); - test< volatile Arref&&, false, true, false, false>(); - test<const volatile Arref&&, false, true, false, false>(); - - // cArref - test< cArref&&, false, true, true, false>(); - test<const cArref&&, false, true, true, false>(); - test< volatile cArref&&, false, true, true, false>(); - test<const volatile cArref&&, false, true, true, false>(); - - // vArref - test< vArref&&, false, true, false, true>(); - test<const vArref&&, false, true, false, true>(); - test< volatile vArref&&, false, true, false, true>(); - test<const volatile vArref&&, false, true, false, true>(); - - // cvArref - test< cvArref&&, false, true, true, true>(); - test<const cvArref&&, false, true, true, true>(); - test< volatile cvArref&&, false, true, true, true>(); - test<const volatile cvArref&&, false, true, true, true>(); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/README b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/README deleted file mode 100644 index 5c3402e74..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/README +++ /dev/null @@ -1,3 +0,0 @@ -This directory contains tests that were passing in C++98 mode but failing -in C++0x mode; it should be replaced by an improvement to the test harness -to run all tests in both modes. diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/abi-empty7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/abi-empty7.C deleted file mode 100644 index adc71278d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/abi-empty7.C +++ /dev/null @@ -1,20 +0,0 @@ -// Copy of abi/empty7.C. -// { dg-do run { target i?86-*-* x86_64-*-* } } -// { dg-require-effective-target ilp32 } -// { dg-options "-fabi-version=0 -std=c++0x" } - -struct S1 {}; -struct S2 { virtual void f () {} S1 s1[4]; }; -struct S3 : virtual public S2 {}; -struct S4 : virtual public S2 { int i; }; -struct S5 : public S3, virtual public S4 {}; -struct S6 { S5 s5; }; -struct S7 { S1 s1[5]; }; -struct S8 : public S1, public S6, virtual public S7 { }; - -S8 s8; - -int main () { - if ((char *)(S7 *)&s8 - (char *)&s8 != 24) - return 1; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/array1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/array1.C deleted file mode 100644 index 629ab4103..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/array1.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/47808 -// { dg-options -std=c++0x } - -template <typename T> -inline T abs (T const & x) { return x; } - -template <typename T> -void f (T) -{ - typedef int ai[(abs(0.1) > 0) ? 1 : -1]; -} - -int main() -{ - f(1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/bitfield-err1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/bitfield-err1.C deleted file mode 100644 index a2e9d47b5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/bitfield-err1.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/46282 -// { dg-options -std=c++0x } - -template<int> -class A -{ - A : i() {} // { dg-message "" } - int i; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/call1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/call1.C deleted file mode 100644 index 833318b05..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/call1.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/48500 -// { dg-options -std=c++0x } - -struct linked_ptr { -}; -template <typename T> linked_ptr make_linked_ptr(T* ptr); -struct Concrete; -struct NewedClass { - NewedClass(const Concrete& req){} -}; -template<typename ArgT> void AddObjToChange(const ArgT& req) { - linked_ptr p = make_linked_ptr(new NewedClass(req)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/condition1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/condition1.C deleted file mode 100644 index 0346764f7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/condition1.C +++ /dev/null @@ -1,80 +0,0 @@ -// PR c++/47950 -// { dg-options -std=c++0x } - -template <typename T> struct empty -{ - // allow success case to build (not relevant to bug) - operator bool() { return true; } -}; - -template <typename T> struct from_int -{ - from_int(int) {} - - // allow success case to build (not relevant to bug) - operator bool() { return true; } -}; - -template <typename T> -from_int<T> via_function(T v) -{ - return from_int<T>(v); -} - -template <typename T> -void f() -{ - // ********* this section compiles *********** - - // these plain initializers work fine - from_int<int> a = 7; - from_int<int> b = from_int<int>(7); - empty<int> c = empty<int>(); - from_int<T> ta = 7; - from_int<T> tb = from_int<T>(7); - empty<T> tc = empty<T>(); - - // these dependent condition decls work fine - if (empty<T> x = empty<T>()) - ; - if (from_int<T> x = 7) - ; - if (from_int<T> x = from_int<T>(7)) - ; - if (from_int<T> x = via_function(T())) - ; - - // this non-dependent condition decl using conversion works fine - if (from_int<int> x = 7) - ; - - // these non-dependent condition decls using conversion or braced- - // initialization work fine (in c++0x mode only course) - #if __GXX_EXPERIMENTAL_CXX0X__ - if (empty<int> x {}) - ; - if (from_int<int> x {7}) - ; - #endif - - // ********** this section fails in C++0x *********** - - // the following non-dependent condition decls cause an assertion - // failure in - // - // tsubst_copy_and_build, at cp/pt.c:13370 - // - // in C++0x mode - // - if (empty<int> x = empty<int>()) - ; - if (from_int<int> x = from_int<int>(7)) - ; - if (from_int<int> x = via_function(7)) - ; -} - -int main() -{ - f<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ctor1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ctor1.C deleted file mode 100644 index c35d6011f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ctor1.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/49569 -// { dg-options -std=c++0x } - -struct A -{ - virtual void f() = 0; -}; - -struct B: A -{ - int i; - virtual void f() { } -}; - -struct C -{ - B b; - C(): b() { } - C(const B& b): b(b) { } -}; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/debug-debug7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/debug-debug7.C deleted file mode 100644 index d3f14f4e2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/debug-debug7.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-do compile } -// { dg-options -std=c++0x } - -void f (int); - -int -main() { - - int a = 4; - int b = 5; - int (*x)[b] = new int[a][b]; // { dg-error "array size.*must be constant|usable in a constant" } - - x[2][1] = 7; - - for (int i = 0; i < a; ++i) - for (int j = 0; j < b; ++j) - f (x[i][j]); - delete [] x; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/enum1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/enum1.C deleted file mode 100644 index 6e29f9ea9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/enum1.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/47482 -// { dg-options -std=c++0x } - -template<class> -struct K -{ - enum { A = sizeof"A", B = +A }; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C deleted file mode 100644 index cdf994084..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/48212 -// { dg-options -std=c++0x } - -template < bool > void -foo () -{ - const bool b =; // { dg-error "" } - foo < b > (); // { dg-error "constant expression" "const expr" } -}; - -// { dg-error "no match" "no match" { target *-*-* } 8 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ext-cond1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ext-cond1.C deleted file mode 100644 index dc9814ebd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ext-cond1.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/12515 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } -template<int> void foo() { 0 ?: 0; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ext-label10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ext-label10.C deleted file mode 100644 index 652d94af0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ext-label10.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/33836 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<int N> struct A -{ - enum { M = && N }; // { dg-error "referenced outside|cannot appear in|not an integer constant" } -}; - -A<0> a; - -void foo () -{ - __label__ P; - enum { O = && P }; // { dg-error "cannot appear in|not an integer constant" } - P:; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/isnan.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/isnan.C deleted file mode 100644 index 40d07e5de..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/isnan.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/48369 -// { dg-options -std=gnu++0x } - -extern "C" int isnan (double); - -void f(double d) -{ - bool b = isnan(d); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/no-elide1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/no-elide1.C deleted file mode 100644 index 50df95016..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/no-elide1.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/47503 -// { dg-options "-std=c++0x -fno-elide-constructors" } - -struct A -{ - int i; - A (); -}; - -struct B -{ - A a; - B (A &aa) : a (aa) { } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/non-const1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/non-const1.C deleted file mode 100644 index 7fc66a7ae..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/non-const1.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/48015 -// { dg-options -std=c++0x } - -template <typename T> T f(T); -template <typename T> void g() -{ - int const c = f (1); - int i = c - 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/parse-ambig5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/parse-ambig5.C deleted file mode 100644 index 9be2f9258..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/parse-ambig5.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/41786 -// { dg-options -std=c++0x } - -struct A { A(int, char const*); }; -int main() { - int i = 0, *b = &i; - A a(int(b[i]), "hello"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ptrmem1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ptrmem1.C deleted file mode 100644 index 873000b9c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/ptrmem1.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/49298 -// { dg-options -std=c++0x } - -template <class T, int T::*> struct B { }; -template <class T> struct A -{ - int i; - B<A,&A::i> b; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress1.C deleted file mode 100644 index a6fe3999c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress1.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/46903 -// This isn't C++0x code, but it was breaking in C++0x mode. -// { dg-options -std=c++0x } - -struct A {}; -struct B { - void *(*a)(); -}; -template <typename T> void *CreateA() {} -B b = {CreateA<A>}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress2.C deleted file mode 100644 index 470ee1c4c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress2.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/46552 -// { dg-options -std=c++0x } - -struct S -{ - int x; -}; - -template < typename > -void f( void ) -{ - &S::x; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress3.C deleted file mode 100644 index ffbb97f6b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress3.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/47511 -// { dg-options -std=c++0x } - -namespace N { - template <typename T> bool g( T ) { - return true; - } - struct A { }; -} -template <class T> void f(const T&) { - N::A x; - g(x) ; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress4.C deleted file mode 100644 index b56263ae5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress4.C +++ /dev/null @@ -1,62 +0,0 @@ -// PR c++/49663 -// { dg-options -std=c++0x } - -struct Nosm -{ - int m_R; -}; - -namespace dx { - - struct onc - { - typedef void(*Cb)(); - - onc(Cb cb); - }; - - struct grac - { - template<class Derived> static void once(); - }; - - template<class Derived> - struct tonc : onc - { - tonc() : onc(&grac::once<Derived>) {} - - static Derived& get(); - }; - - template<class Derived> void grac::once() - { - tonc<Derived>::get().h(); - } -} - -namespace -{ - template<typename T, int = sizeof(&T::m_R)> - struct has_R { }; - - template<typename T> - inline void - setR(T* m, has_R<T>* = 0) - { } - - inline void setR(...) { } -} - -template<typename M> - struct Qmi - : dx::tonc<Qmi<M> > - { - void h() - { - setR(&msg); - } - - M msg; - }; - -Qmi<Nosm> x; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress5.C deleted file mode 100644 index b1935912d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress5.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - int i; - A(int); -}; - -struct B -{ - virtual void f(); - A ar[3]; -}; - -extern B b; -B b2(b); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress6.C deleted file mode 100644 index 6de64c0b3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/regress6.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/49691 -// { dg-options -std=c++0x } - -struct A { int x; }; -A* f(); -struct B { - void g() - { - int(f()->x); - } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/template-const1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/template-const1.C deleted file mode 100644 index 32db1f831..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/template-const1.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/47897 -// { dg-options -std=c++0x } - -template < typename T, T N > -struct S -{ - static const T value = N; - typedef S< T, value + 1 > next; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/template-const2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/template-const2.C deleted file mode 100644 index 25354b3a5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/template-const2.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/48707 -// { dg-options -std=c++0x } - -struct A { - static int a(); -}; - -template<typename X> -struct B: A { - static int const b; -}; - -template<typename X> -int const B<X>::b=B<X>::a(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/template-function1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/template-function1.C deleted file mode 100644 index e7094d206..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/template-function1.C +++ /dev/null @@ -1,30 +0,0 @@ -// PR c++/38647 -// { dg-do compile } -// { dg-options "-std=c++0x" } -// { dg-prune-output "note" } - -template<const char *, int> struct A {}; -const char func[] = "abc"; -template<int N> struct A<func, N> {}; // { dg-error "cannot appear|is invalid|not a valid|constant expression" } - -char a1[1]; -A<a1, 0> a; - -template<const char *, int> struct B {}; -template<int N> struct B<__FUNCTION__, N> {}; // { dg-error "cannot appear|is invalid|is not a valid|constant expression" } - -char b1[1]; -B<b1, 0> b; - -template<const char *, int> struct C {}; -template<int N> struct C<__PRETTY_FUNCTION__, N> {}; // { dg-error "cannot appear|is invalid|is not a valid|constant expression" } - -char c1[1]; -C<c1, 0> c; - -template<const char *, int> struct D {}; -template<int N> struct D<__func__, N> {}; // { dg-error "(cannot appear|is invalid|is not a valid|function scope|constant expression)" } - // { dg-warning "function scope" "function scope" { target *-*-* } 26 } - -char d1[1]; -D<d1, 0> d; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/value-dep1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/value-dep1.C deleted file mode 100644 index 112389d4a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/regress/value-dep1.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/48265 -// { dg-options -std=c++0x } - -template < int > struct S -{ - S () { const int i = i; i; }; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-bitfield.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-bitfield.C deleted file mode 100644 index ed866f9e1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-bitfield.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - int i : 1; -}; - -int main() -{ - A a; - static_cast<int&&>(a.i); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-bitfield2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-bitfield2.C deleted file mode 100644 index e054151b0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-bitfield2.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/51868 -// { dg-options -std=c++0x } - -struct A { - A() {} - A(const A&) {} - A(A&&) {} -}; - -struct B { - A a; - int f : 1; -}; - -B func() { - return B(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast.C deleted file mode 100644 index 48b7c13ba..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=c++0x" } - -void f(int i) -{ - int&& r = static_cast<int&&>(i); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast2.C deleted file mode 100644 index 94ee4ca84..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast2.C +++ /dev/null @@ -1,21 +0,0 @@ -// Test for const_cast to reference (5.2.11/4). -// { dg-options -std=c++0x } - -template <class T> T&& xval(); -template <class T> T& lval(); -template <class T> T prval(); - -struct A { }; - -int main() -{ - const_cast<int&>(lval<int>()); - const_cast<int&>(xval<int>()); // { dg-error "" } - const_cast<int&>(prval<int>()); // { dg-error "" } - const_cast<int&&>(lval<int>()); - const_cast<int&&>(xval<int>()); - const_cast<int&&>(prval<int>()); // { dg-error "" } - const_cast<A&&>(lval<A>()); - const_cast<A&&>(xval<A>()); - const_cast<A&&>(prval<A>()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C deleted file mode 100644 index 6c70324aa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast3.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/51406 -// { dg-do run { target c++11 } } - -extern "C" int printf(const char *,...); -extern "C" void abort(); - -struct A { int a; A() : a(1) {} }; -struct B { int b; B() : b(2) {} }; -struct X : A, B {}; - -int main() { - X x; - int a=static_cast<A&&>(x).a; - int b=static_cast<B&&>(x).b; - // printf ("%d %d\n", a, b); - if (a!=1 || b!=2) abort(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C deleted file mode 100644 index 13f369d61..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-cast4.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/51161 -// { dg-do compile { target c++11 } } - -struct A{}; -struct B : A{}; -struct C : A{}; -struct D : B, C{}; - -int main() -{ - D d; - static_cast<A &&>(d); // { dg-error "ambiguous" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-conv1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-conv1.C deleted file mode 100644 index 38529913f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-conv1.C +++ /dev/null @@ -1,9 +0,0 @@ -// PR c++/49267 -// { dg-options -std=c++0x } - -struct X { - operator int&(); - operator int&&(); -}; - -int&&x = X(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-deduce.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-deduce.C deleted file mode 100644 index 043543631..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-deduce.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/36816, core issue 873 -// { dg-options -std=c++0x } - -template <class T> void h (T&&) { } - -void (*pf)(int&) = &h; -template <> void h(char&); -template void h(double&); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C deleted file mode 100644 index 160296f64..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/48313 -// { dg-options -std=c++0x } - -template<typename F> -void f(F&&) { } - -void g() { } - -template<typename T> void h() { } - -int main() -{ - f( g ); // OK - void (&p)() = h<int>; - f( p ); // OK - f( h<int> ); // ??? -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-dotstar.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-dotstar.C deleted file mode 100644 index 65aac8da2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-dotstar.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/49389 -// { dg-options -std=c++0x } - -template<class T> T&& val(); - -struct A {}; - -typedef decltype(val<A>().*val<int A::*>()) type; - -template<class> struct assert_type; -template<> struct assert_type<int&&> {}; - -assert_type<type> test; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-func.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-func.C deleted file mode 100644 index db1429611..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-func.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/48457, Core 1238 -// { dg-options -std=c++0x } - -template<class T> -T&& create(); - -template<class T, class Arg> -void test() { - T t(create<Arg>()); - (void) t; -} - -void f (void (&)()); -void f (void (&&)()); - -int main() { - test<void(&)(), void()>(); - test<void(&&)(), void()>(); - // This call should choose the lvalue reference overload. - // { dg-final { scan-assembler-not "_Z1fOFvvE" } } - f(create<void()>()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-func2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-func2.C deleted file mode 100644 index b792342da..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-func2.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/49458 -// { dg-options -std=c++0x } - -typedef void ftype(); - -struct A { - operator ftype&(void); -}; - -ftype &&frvref = A(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-func3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-func3.C deleted file mode 100644 index 8504682d7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-func3.C +++ /dev/null @@ -1,10 +0,0 @@ -// DR 1328 -// { dg-options -std=c++0x } - -template <class T> struct A { - operator T&(); // #1 - operator T&&(); // #2 -}; -typedef int Fn(); -A<Fn> a; -Fn&& f = a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-lvalue-req.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-lvalue-req.C deleted file mode 100644 index a8f424df0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-lvalue-req.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -template <class T> T&& declval(); - -int main() -{ - &declval<int>(); // { dg-error "xvalue" } - declval<int>() = declval<int>(); // { dg-error "xvalue" } - declval<int>()++; // { dg-error "xvalue" } - --declval<int>(); // { dg-error "xvalue" } - declval<int>() += 1; // { dg-error "xvalue" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-reinterpret.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-reinterpret.C deleted file mode 100644 index 5b6e4c3d1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-reinterpret.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-do run } - -void f(int &); -void f(int &&ir) { ir = 42; } -int main() -{ - int x; - f(reinterpret_cast<int&&>(x)); - return (x != 42); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-restrict.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-restrict.C deleted file mode 100644 index 569ee5bb6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-restrict.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/45401 -// { dg-options -std=c++0x } - -typedef int &__restrict restrictLvref; -typedef restrictLvref &&rvrefToRestrictLvref; -typedef restrictLvref rvrefToRestrictLvref; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-return.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-return.C deleted file mode 100644 index 3ab659833..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-return.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/41815 -// { dg-options -std=c++0x } - -template<typename T, typename U> struct same_type; -template<typename T> struct same_type<T, T> {}; - -int const f() { return 0; } - -int &&r = f(); // binding "int&&" to "int" should succeed -same_type<decltype(f()), int> s1; -same_type<decltype(0,f()), int> s2; - -template <class T> -T const g() { return 0; } - -int &&r2 = g<int>(); -same_type<decltype(g<int>()), int> s3; -same_type<decltype(0,g<int>()), int> s4; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-template1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-template1.C deleted file mode 100644 index 11f53bd1c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-template1.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/44870 -// { dg-options -std=c++0x } - -void foo(int&& data); - -template <typename T> -void bar(T t) -{ foo(int()); } - -void baz() -{ bar(0); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C deleted file mode 100644 index cbce7c4dd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C +++ /dev/null @@ -1,33 +0,0 @@ -// { dg-options "-std=c++0x" } -// PR c++/33235 -#include <cassert> - -int move_construct = 0; -int move_assign = 0; - -struct base2 // { dg-message "declares a move" } -{ - base2() {} - base2(base2&&) {++move_construct;} - base2& operator=(base2&&) {++move_assign; return *this;} -}; - -int test2() -{ - base2 b; - base2 b2(b); // { dg-error "deleted" } - assert(move_construct == 0); - base2 b3(static_cast<base2&&>(b)); - base2 b4 = static_cast<base2&&>(b); - assert(move_construct == 2); - b = b2; // { dg-error "deleted" } - assert(move_assign == 0); - b = static_cast<base2&&>(b2); - assert(move_assign == 1); -} - -int main() -{ - test2(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv10.C deleted file mode 100644 index 5e78b1dbb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv10.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -struct A -{ - A() = default; - A(const A&) = delete; -}; - -A&& f(); -void h(A&&); -void g() -{ - A&& arr = f(); - h(f()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv1n.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv1n.C deleted file mode 100644 index 68305ebc9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv1n.C +++ /dev/null @@ -1,169 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {char x[1];}; -struct two {char x[2];}; -struct three {char x[3];}; -struct four {char x[4];}; -struct five {char x[5];}; -struct six {char x[6];}; -struct seven {char x[7];}; -struct eight {char x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 1 at a time - -one sink_1_1( A&); // { dg-error "" } - -int test1_1() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_1_1(ca); // { dg-error "invalid initialization" } - sink_1_1(va); // { dg-error "invalid initialization" } - sink_1_1(cva); // { dg-error "invalid initialization" } - sink_1_1(source()); // { dg-error "invalid initialization" } - sink_1_1(c_source()); // { dg-error "invalid initialization" } - sink_1_1(v_source()); // { dg-error "invalid initialization" } - sink_1_1(cv_source()); // { dg-error "invalid initialization" } - return 0; -} - -two sink_1_2(const A&); // { dg-error "" } - -int test1_2() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_1_2(va); // { dg-error "invalid initialization" } - sink_1_2(cva); // { dg-error "invalid initialization" } - sink_1_2(v_source()); // { dg-error "invalid initialization" } - sink_1_2(cv_source()); // { dg-error "invalid initialization" } - return 0; -} - -three sink_1_3(volatile A&); // { dg-error "" } - -int test1_3() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_1_3(ca); // { dg-error "invalid initialization" } - sink_1_3(cva); // { dg-error "invalid initialization" } - sink_1_3(source()); // { dg-error "invalid initialization" } - sink_1_3(c_source()); // { dg-error "invalid initialization" } - sink_1_3(v_source()); // { dg-error "invalid initialization" } - sink_1_3(cv_source()); // { dg-error "invalid initialization" } - return 0; -} - -four sink_1_4(const volatile A&); // { dg-error "" } - -int test1_4() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_1_4(source()); // { dg-error "invalid initialization" } - sink_1_4(c_source()); // { dg-error "invalid initialization" } - sink_1_4(v_source()); // { dg-error "invalid initialization" } - sink_1_4(cv_source()); // { dg-error "invalid initialization" } - return 0; -} - -five sink_1_5( A&&); // { dg-error "" } - -int test1_5() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_1_5(a); // { dg-error "lvalue" } - sink_1_5(ca); // { dg-error "invalid initialization" } - sink_1_5(va); // { dg-error "invalid initialization" } - sink_1_5(cva); // { dg-error "invalid initialization" } - sink_1_5(c_source()); // { dg-error "invalid initialization" } - sink_1_5(v_source()); // { dg-error "invalid initialization" } - sink_1_5(cv_source()); // { dg-error "invalid initialization" } - return 0; -} - -six sink_1_6(const A&&); // { dg-error "" } - -int test1_6() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_1_6(a); // { dg-error "lvalue" } - sink_1_6(ca); // { dg-error "lvalue" } - sink_1_6(va); // { dg-error "invalid initialization" } - sink_1_6(cva); // { dg-error "invalid initialization" } - sink_1_6(v_source()); // { dg-error "invalid initialization" } - sink_1_6(cv_source()); // { dg-error "invalid initialization" } - return 0; -} - -seven sink_1_7(volatile A&&); // { dg-error "" } - -int test1_7() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_1_7(a); // { dg-error "lvalue" } - sink_1_7(ca); // { dg-error "invalid initialization" } - sink_1_7(va); // { dg-error "lvalue" } - sink_1_7(cva); // { dg-error "invalid initialization" } - sink_1_7(c_source()); // { dg-error "invalid initialization" } - sink_1_7(cv_source()); // { dg-error "invalid initialization" } - return 0; -} - -eight sink_1_8(const volatile A&&); // { dg-error "" } - -int test1_8() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_1_8(a); // { dg-error "lvalue" } - sink_1_8(ca); // { dg-error "lvalue" } - sink_1_8(va); // { dg-error "lvalue" } - sink_1_8(cva); // { dg-error "lvalue" } - return 0; -} - -int main() -{ - return test1_1() + test1_2() + test1_3() + test1_5() + - test1_6() + test1_7(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv1p.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv1p.C deleted file mode 100644 index abe5de0b3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv1p.C +++ /dev/null @@ -1,145 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; -struct three {long x[3];}; -struct four {long x[4];}; -struct five {long x[5];}; -struct six {long x[6];}; -struct seven {long x[7];}; -struct eight {long x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 1 at a time - -one sink_1_1( A&); - -int test1_1() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_1_1(a)) == 1 * sizeof(long)> t1; - return 0; -} - -two sink_1_2(const A&); - -int test1_2() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_1_2(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_1_2(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_1_2(source())) == 2 * sizeof(long)> t5; - sa<sizeof(sink_1_2(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -three sink_1_3(volatile A&); - -int test1_3() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_1_3(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_1_3(va)) == 3 * sizeof(long)> t3; - return 0; -} - -four sink_1_4(const volatile A&); - -int test1_4() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_1_4(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_1_4(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_1_4(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_1_4(cva)) == 4 * sizeof(long)> t4; - return 0; -} - -five sink_1_5( A&&); - -int test1_5() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_1_5(source())) == 5 * sizeof(long)> t5; - return 0; -} - -six sink_1_6(const A&&); - -int test1_6() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_1_6(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_1_6(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -seven sink_1_7(volatile A&&); - -int test1_7() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_1_7(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_1_7(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -eight sink_1_8(const volatile A&&); - -int test1_8() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_1_8(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_1_8(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_1_8(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_1_8(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -int main() -{ - return test1_1() + test1_2() + test1_3() + test1_4() + - test1_5() + test1_6() + test1_7() + test1_8(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv2n.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv2n.C deleted file mode 100644 index a9d37415e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv2n.C +++ /dev/null @@ -1,544 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {char x[1];}; -struct two {char x[2];}; -struct three {char x[3];}; -struct four {char x[4];}; -struct five {char x[5];}; -struct six {char x[6];}; -struct seven {char x[7];}; -struct eight {char x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 2 at a time - -one sink_2_12( A&); // { dg-message "note|argument" } -two sink_2_12(const A&); // { dg-message "note|argument" } - -int test2_12() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_12(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 42 } - sink_2_12(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 44 } - sink_2_12(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 46 } - sink_2_12(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 48 } - return 0; -} - -one sink_2_13( A&); // { dg-message "note|argument" } -three sink_2_13(volatile A&); // { dg-message "note|argument" } - -int test2_13() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_13(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 62 } - sink_2_13(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 64 } - sink_2_13(source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 66 } - sink_2_13(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 68 } - sink_2_13(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 70 } - sink_2_13(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 72 } - return 0; -} - -one sink_2_14( A&); // { dg-message "note|argument" } -four sink_2_14(const volatile A&); // { dg-message "note|argument" } - -int test2_14() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_14(source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 86 } - sink_2_14(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 88 } - sink_2_14(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 90 } - sink_2_14(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 92 } - return 0; -} - -one sink_2_15( A&); // { dg-message "note|argument" } -five sink_2_15( A&&); // { dg-message "note|argument" } - -int test2_15() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_15(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 106 } - sink_2_15(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 108 } - sink_2_15(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 110 } - sink_2_15(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 112 } - sink_2_15(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 114 } - sink_2_15(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 116 } - return 0; -} - -one sink_2_16( A&); // { dg-message "note|argument" } -six sink_2_16(const A&&); // { dg-message "note|argument" } - -int test2_16() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_16(ca); // { dg-error "lvalue" } - sink_2_16(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 131 } - sink_2_16(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 133 } - sink_2_16(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 135 } - sink_2_16(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 137 } - return 0; -} - -one sink_2_17( A&); // { dg-message "note|argument" } -seven sink_2_17(volatile A&&); // { dg-message "note|argument" } - -int test2_17() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_17(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 151 } - sink_2_17(va); // { dg-error "lvalue" } - sink_2_17(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 154 } - sink_2_17(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 156 } - sink_2_17(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 158 } - return 0; -} - -one sink_2_18( A&); -eight sink_2_18(const volatile A&&); // { dg-error "argument" } - -int test2_18() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_18(ca); // { dg-error "lvalue" } - sink_2_18(va); // { dg-error "lvalue" } - sink_2_18(cva); // { dg-error "lvalue" } -} - -two sink_2_23(const A&); // { dg-message "note|argument" } -three sink_2_23(volatile A&); // { dg-message "note|argument" } - -int test2_23() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_23(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 186 } - sink_2_23(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 188 } - sink_2_23(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 190 } - sink_2_23(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 192 } - return 0; -} - -two sink_2_24(const A&); // { dg-message "note|argument" } -four sink_2_24(const volatile A&); // { dg-message "note|argument" } - -int test2_24() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_24(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 206 } - sink_2_24(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 208 } - return 0; -} - -three sink_2_34(volatile A&); // { dg-message "three sink_2_34|no known conversion" } -four sink_2_34(const volatile A&); // { dg-message "note|argument" } - -int test2_34() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_34(source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 222 } - sink_2_34(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 224 } - sink_2_34(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 226 } - sink_2_34(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 228 } - return 0; -} - -two sink_2_25(const A&); // { dg-message "two sink_2_25|no known conversion" } -five sink_2_25( A&&); // { dg-message "note|argument" } - -int test2_25() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_25(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 242 } - sink_2_25(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 244 } - sink_2_25(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 246 } - sink_2_25(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 248 } - return 0; -} - -two sink_2_26(const A&); // { dg-message "two sink_2_26|no known conversion" } -six sink_2_26(const A&&); // { dg-message "note|argument" } - -int test2_26() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_26(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 262 } - sink_2_26(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 264 } - sink_2_26(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 266 } - sink_2_26(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 268 } - return 0; -} - -two sink_2_27(const A&); // { dg-message "two sink_2_27|no known conversion" } -seven sink_2_27(volatile A&&); // { dg-message "note|argument" } - -int test2_27() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_27(va); // { dg-error "lvalue" } - sink_2_27(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 283 } - sink_2_27(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 285 } - return 0; -} - -two sink_2_28(const A&); -eight sink_2_28(const volatile A&&); // { dg-error "argument" } - -int test2_28() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_28(va); // { dg-error "lvalue" } - sink_2_28(cva); // { dg-error "lvalue" } -} - -three sink_2_35(volatile A&); // { dg-message "three sink_2_35|no known conversion" } -five sink_2_35( A&&); // { dg-message "note|argument" } - -int test2_35() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_35(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 312 } - sink_2_35(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 314 } - sink_2_35(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 316 } - sink_2_35(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 318 } - sink_2_35(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 320 } - return 0; -} - -three sink_2_36(volatile A&); // { dg-message "three sink_2_36|no known conversion" } -six sink_2_36(const A&&); // { dg-message "note|argument" } - -int test2_36() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_36(ca); // { dg-error "lvalue" } - sink_2_36(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 335 } - sink_2_36(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 337 } - sink_2_36(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 339 } - return 0; -} - -three sink_2_37(volatile A&); // { dg-message "three sink_2_37|no known conversion" } -seven sink_2_37(volatile A&&); // { dg-message "note|argument" } - -int test2_37() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_37(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 353 } - sink_2_37(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 355 } - sink_2_37(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 357 } - sink_2_37(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 359 } - return 0; -} - -three sink_2_38(volatile A&); -eight sink_2_38(const volatile A&&); // { dg-error "argument" } - -int test2_38() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_38(ca); // { dg-error "lvalue" } - sink_2_38(cva); // { dg-error "lvalue" } -} - -four sink_2_45(const volatile A&); // { dg-message "note" } -five sink_2_45( A&&); // { dg-message "note|argument" } - -int test2_45() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_45(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 386 } - sink_2_45(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 388 } - sink_2_45(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 390 } - return 0; -} - -four sink_2_46(const volatile A&); // { dg-message "note" } -six sink_2_46(const A&&); // { dg-message "note|argument" } - -int test2_46() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_46(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 404 } - sink_2_46(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 406 } - return 0; -} - -four sink_2_47(const volatile A&); // { dg-message "note" } -seven sink_2_47(volatile A&&); // { dg-message "note|argument" } - -int test2_47() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_47(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 420 } - sink_2_47(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 422 } - return 0; -} - -five sink_2_56( A&&); // { dg-message "note|argument" } -six sink_2_56(const A&&); // { dg-message "note|argument" } - -int test2_56() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_56(a); // { dg-error "lvalue" } - sink_2_56(ca); // { dg-error "lvalue" } - sink_2_56(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 438 } - sink_2_56(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 440 } - sink_2_56(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 442 } - sink_2_56(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 444 } - return 0; -} - -five sink_2_57( A&&); // { dg-message "note|argument" } -seven sink_2_57(volatile A&&); // { dg-message "note|argument" } - -int test2_57() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_57(a); // { dg-error "lvalue" } - sink_2_57(va); // { dg-error "lvalue" } - sink_2_57(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 460 } - sink_2_57(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 462 } - sink_2_57(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 464 } - sink_2_57(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 466 } - return 0; -} - -five sink_2_58( A&&); // { dg-error "argument" } -eight sink_2_58(const volatile A&&); // { dg-error "argument" } - -int test2_58() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_58(a); // { dg-error "lvalue" } - sink_2_58(ca); // { dg-error "lvalue" } - sink_2_58(va); // { dg-error "lvalue" } - sink_2_58(cva); // { dg-error "lvalue" } -} - -six sink_2_67(const A&&); // { dg-message "note|argument" } -seven sink_2_67(volatile A&&); // { dg-message "note|argument" } - -int test2_67() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_67(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 495 } - sink_2_67(ca); // { dg-error "lvalue" } - sink_2_67(va); // { dg-error "lvalue" } - sink_2_67(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 499 } - sink_2_67(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 501 } - sink_2_67(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 503 } - return 0; -} - -six sink_2_68(const A&&); // { dg-error "argument" } -eight sink_2_68(const volatile A&&); // { dg-error "argument" } - -int test2_68() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_68(a); // { dg-error "lvalue" } - sink_2_68(ca); // { dg-error "lvalue" } - sink_2_68(va); // { dg-error "lvalue" } - sink_2_68(cva); // { dg-error "lvalue" } -} - -seven sink_2_78(volatile A&&); // { dg-error "argument" } -eight sink_2_78(const volatile A&&); // { dg-error "argument" } - -int test2_78() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_2_78(a); // { dg-error "lvalue" } - sink_2_78(ca); // { dg-error "lvalue" } - sink_2_78(va); // { dg-error "lvalue" } - sink_2_78(cva); // { dg-error "lvalue" } -} - -int main() -{ - return test2_12() + test2_13() + test2_15() + test2_16() + - test2_17() + test2_23() + test2_25() + test2_26() + - test2_27() + test2_35() + test2_36() + test2_37() + - test2_56() + test2_57() + test2_67(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv2p.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv2p.C deleted file mode 100644 index 722d1b8d8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv2p.C +++ /dev/null @@ -1,507 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; -struct three {long x[3];}; -struct four {long x[4];}; -struct five {long x[5];}; -struct six {long x[6];}; -struct seven {long x[7];}; -struct eight {long x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 2 at a time - -one sink_2_12( A&); -two sink_2_12(const A&); - -int test2_12() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_12(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_2_12(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_2_12(source())) == 2 * sizeof(long)> t5; - sa<sizeof(sink_2_12(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -one sink_2_13( A&); -three sink_2_13(volatile A&); - -int test2_13() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_13(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_2_13(va)) == 3 * sizeof(long)> t3; - return 0; -} - -one sink_2_14( A&); -four sink_2_14(const volatile A&); - -int test2_14() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_14(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_2_14(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_2_14(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_2_14(cva)) == 4 * sizeof(long)> t4; - return 0; -} - -one sink_2_15( A&); -five sink_2_15( A&&); - -int test2_15() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_15(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_2_15(source())) == 5 * sizeof(long)> t5; - return 0; -} - -one sink_2_16( A&); -six sink_2_16(const A&&); - -int test2_16() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_16(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_2_16(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_2_16(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_2_17( A&); -seven sink_2_17(volatile A&&); - -int test2_17() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_17(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_2_17(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_2_17(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_2_18( A&); -eight sink_2_18(const volatile A&&); - -int test2_18() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_18(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_2_18(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_2_18(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_2_18(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_2_18(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_2_23(const A&); -three sink_2_23(volatile A&); - -int test2_23() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_23(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_2_23(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_2_23(source())) == 2 * sizeof(long)> t5; - sa<sizeof(sink_2_23(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -two sink_2_24(const A&); -four sink_2_24(const volatile A&); - -int test2_24() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_24(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_2_24(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_2_24(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_2_24(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_2_24(source())) == 2 * sizeof(long)> t5; - sa<sizeof(sink_2_24(c_source())) == 2 * sizeof(long)> t6; -// sa<sizeof(sink_2_24(v_source())) == 4 * sizeof(long)> t7; -// sa<sizeof(sink_2_24(cv_source())) == 4 * sizeof(long)> t8; - return 0; -} - -two sink_2_25(const A&); -five sink_2_25( A&&); - -int test2_25() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_25(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_2_25(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_2_25(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_2_25(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -two sink_2_26(const A&); -six sink_2_26(const A&&); - -int test2_26() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_26(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_2_26(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_2_26(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_2_26(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -two sink_2_27(const A&); -seven sink_2_27(volatile A&&); - -int test2_27() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_27(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_2_27(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_2_27(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_2_27(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_2_27(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_2_28(const A&); -eight sink_2_28(const volatile A&&); - -int test2_28() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_28(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_2_28(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_2_28(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_2_28(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_2_28(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_2_28(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_2_34(volatile A&); -four sink_2_34(const volatile A&); - -int test2_34() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_34(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_2_34(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_2_34(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_2_34(cva)) == 4 * sizeof(long)> t4; -// sa<sizeof(sink_2_34(source())) == 4 * sizeof(long)> t5; -// sa<sizeof(sink_2_34(c_source())) == 4 * sizeof(long)> t6; -// sa<sizeof(sink_2_34(v_source())) == 4 * sizeof(long)> t7; -// sa<sizeof(sink_2_34(cv_source())) == 4 * sizeof(long)> t8; - return 0; -} - -three sink_2_35(volatile A&); -five sink_2_35( A&&); - -int test2_35() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_35(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_2_35(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_2_35(source())) == 5 * sizeof(long)> t5; - return 0; -} - -three sink_2_36(volatile A&); -six sink_2_36(const A&&); - -int test2_36() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_36(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_2_36(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_2_36(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_2_36(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -three sink_2_37(volatile A&); -seven sink_2_37(volatile A&&); - -int test2_37() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_37(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_2_37(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_2_37(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_2_37(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -three sink_2_38(volatile A&); -eight sink_2_38(const volatile A&&); - -int test2_38() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_38(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_2_38(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_2_38(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_2_38(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_2_38(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_2_38(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -four sink_2_45(const volatile A&); -five sink_2_45( A&&); - -int test2_45() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_45(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_2_45(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_2_45(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_2_45(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_2_45(source())) == 5 * sizeof(long)> t5; -// sa<sizeof(sink_2_45(c_source())) == 4 * sizeof(long)> t6; -// sa<sizeof(sink_2_45(v_source())) == 4 * sizeof(long)> t7; -// sa<sizeof(sink_2_45(cv_source())) == 4 * sizeof(long)> t8; - return 0; -} - -four sink_2_46(const volatile A&); -six sink_2_46(const A&&); - -int test2_46() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_46(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_2_46(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_2_46(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_2_46(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_2_46(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_2_46(c_source())) == 6 * sizeof(long)> t6; -// sa<sizeof(sink_2_46(v_source())) == 4 * sizeof(long)> t7; -// sa<sizeof(sink_2_46(cv_source())) == 4 * sizeof(long)> t8; - return 0; -} - -four sink_2_47(const volatile A&); -seven sink_2_47(volatile A&&); - -int test2_47() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_47(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_2_47(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_2_47(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_2_47(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_2_47(source())) == 7 * sizeof(long)> t5; -// sa<sizeof(sink_2_47(c_source())) == 4 * sizeof(long)> t6; - sa<sizeof(sink_2_47(v_source())) == 7 * sizeof(long)> t7; -// sa<sizeof(sink_2_47(cv_source())) == 4 * sizeof(long)> t8; - return 0; -} - -four sink_2_48(const volatile A&); -eight sink_2_48(const volatile A&&); - -int test2_48() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_48(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_2_48(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_2_48(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_2_48(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_2_48(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_2_48(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_2_48(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_2_48(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -five sink_2_56( A&&); -six sink_2_56(const A&&); - -int test2_56() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_56(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_2_56(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -five sink_2_57( A&&); -seven sink_2_57(volatile A&&); - -int test2_57() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_57(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_2_57(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -five sink_2_58( A&&); -eight sink_2_58(const volatile A&&); - -int test2_58() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_58(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_2_58(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_2_58(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_2_58(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -six sink_2_67(const A&&); -seven sink_2_67(volatile A&&); - -int test2_67() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_67(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_2_67(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -six sink_2_68(const A&&); -eight sink_2_68(const volatile A&&); - -int test2_68() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_68(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_2_68(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_2_68(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_2_68(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -seven sink_2_78(volatile A&&); -eight sink_2_78(const volatile A&&); - -int test2_78() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_2_78(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_2_78(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_2_78(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_2_78(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -int main() -{ - return test2_12() + test2_13() + test2_14() + test2_15() + - test2_16() + test2_17() + test2_18() + test2_23() + - test2_24() + test2_25() + test2_26() + test2_27() + - test2_28() + test2_34() + test2_35() + test2_36() + - test2_37() + test2_38() + test2_45() + test2_46() + - test2_47() + test2_48() + test2_56() + test2_57() + - test2_58() + test2_67() + test2_68() + test2_78(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv3n.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv3n.C deleted file mode 100644 index 14b810ae6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv3n.C +++ /dev/null @@ -1,951 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {char x[1];}; -struct two {char x[2];}; -struct three {char x[3];}; -struct four {char x[4];}; -struct five {char x[5];}; -struct six {char x[6];}; -struct seven {char x[7];}; -struct eight {char x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 3 at a time - -one sink_3_123( A&); // { dg-message "one sink_3_123|no known conversion" } -two sink_3_123(const A&); // { dg-message "two sink_3_123|no known conversion" } -three sink_3_123(volatile A&); // { dg-message "three sink_3_123|no known conversion" } - -int test3_123() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_123(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 43 } - sink_3_123(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 45 } - sink_3_123(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 47 } - return 0; -} - -one sink_3_125( A&); // { dg-message "one sink_3_125|no known conversion" } -two sink_3_125(const A&); // { dg-message "two sink_3_125|no known conversion" } -five sink_3_125( A&&); // { dg-message "five sink_3_125|no known conversion" } - -one sink_3_124( A&); // { dg-message "one sink_3_124|no known conversion" } -two sink_3_124(const A&); // { dg-message "two sink_3_124|no known conversion" } -four sink_3_124(const volatile A&); // { dg-message "four sink_3_124|no known conversion" } - -int test3_124() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_124(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 66 } - sink_3_124(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 68 } - return 0; -} - -int test3_125() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_125(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 79 } - sink_3_125(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 81 } - sink_3_125(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 83 } - sink_3_125(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 85 } - return 0; -} - -one sink_3_126( A&); // { dg-message "one sink_3_126|no known conversion" } -two sink_3_126(const A&); // { dg-message "two sink_3_126|no known conversion" } -six sink_3_126(const A&&); // { dg-message "six sink_3_126|no known conversion" } - -int test3_126() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_126(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 100 } - sink_3_126(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 102 } - sink_3_126(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 104 } - sink_3_126(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 106 } - return 0; -} - -one sink_3_127( A&); // { dg-message "one sink_3_127|no known conversion" } -two sink_3_127(const A&); // { dg-message "two sink_3_127|no known conversion" } -seven sink_3_127(volatile A&&); // { dg-message "seven sink_3_127|no known conversion" } - -int test3_127() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_127(va); // { dg-error "lvalue" } - sink_3_127(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 122 } - sink_3_127(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 124 } - return 0; -} - -one sink_3_128( A&); -two sink_3_128(const A&); -eight sink_3_128(const volatile A&&); // { dg-message "" } - -int test3_128() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - - sink_3_128(va); // { dg-error "lvalue" } - sink_3_128(cva); // { dg-error "lvalue" } -} - -one sink_3_134( A&); // { dg-message "one sink_3_134|no known conversion" } -three sink_3_134(volatile A&); // { dg-message "three sink_3_134|no known conversion" } -four sink_3_134(const volatile A&); // { dg-message "four sink_3_134|no known conversion" } - -int test3_134() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_134(source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 154 } - sink_3_134(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 156 } - sink_3_134(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 158 } - sink_3_134(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 160 } - return 0; -} - -one sink_3_135( A&); // { dg-message "one sink_3_135|no known conversion" } -three sink_3_135(volatile A&); // { dg-message "three sink_3_135|no known conversion" } -five sink_3_135( A&&); // { dg-message "five sink_3_135|no known conversion" } - -int test3_135() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_135(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 175 } - sink_3_135(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 177 } - sink_3_135(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 179 } - sink_3_135(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 181 } - sink_3_135(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 183 } - return 0; -} - -one sink_3_136( A&); // { dg-message "one sink_3_136|no known conversion" } -three sink_3_136(volatile A&); // { dg-message "note" } -six sink_3_136(const A&&); // { dg-message "" } - -int test3_136() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_136(ca); // { dg-error "lvalue" } - sink_3_136(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 199 } - sink_3_136(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 201 } - sink_3_136(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 203 } - return 0; -} - -one sink_3_137( A&); // { dg-message "one sink_3_137|no known conversion" } -three sink_3_137(volatile A&); // { dg-message "note" } -seven sink_3_137(volatile A&&); // { dg-message "note" } - -int test3_137() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_137(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 218 } - sink_3_137(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 220 } - sink_3_137(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 222 } - sink_3_137(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 224 } - return 0; -} - -one sink_3_138( A&); -three sink_3_138(volatile A&); -eight sink_3_138(const volatile A&&); // { dg-message "" } - -int test3_138() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_138(ca); // { dg-error "lvalue" } - sink_3_138(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_3_145( A&); // { dg-message "one sink_3_145|no known conversion" } -four sink_3_145(const volatile A&); // { dg-message "note" } -five sink_3_145( A&&); // { dg-message "note" } - -int test3_145() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_145(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 254 } - sink_3_145(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 256 } - sink_3_145(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 258 } - return 0; -} - -one sink_3_146( A&); // { dg-message "one sink_3_146|no known conversion" } -four sink_3_146(const volatile A&); // { dg-message "note" } -six sink_3_146(const A&&); // { dg-message "note" } - -int test3_146() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_146(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 273 } - sink_3_146(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 275 } - return 0; -} - -one sink_3_147( A&); // { dg-message "one sink_3_147|no known conversion" } -four sink_3_147(const volatile A&); // { dg-message "note" } -seven sink_3_147(volatile A&&); // { dg-message "note" } - -int test3_147() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_147(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 290 } - sink_3_147(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 292 } - return 0; -} - -one sink_3_156( A&); // { dg-message "one sink_3_156|no known conversion" } -five sink_3_156( A&&); // { dg-message "note" } -six sink_3_156(const A&&); // { dg-message "" } - -int test3_156() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_156(ca); // { dg-error "lvalue" } - sink_3_156(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 308 } - sink_3_156(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 310 } - sink_3_156(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 312 } - sink_3_156(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 314 } - return 0; -} - -one sink_3_157( A&); // { dg-message "one sink_3_157|no known conversion" } -five sink_3_157( A&&); // { dg-message "note" } -seven sink_3_157(volatile A&&); // { dg-message "" } - -int test3_157() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_157(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 329 } - sink_3_157(va); // { dg-error "lvalue" } - sink_3_157(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 332 } - sink_3_157(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 334 } - sink_3_157(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 336 } - return 0; -} - -one sink_3_158( A&); -five sink_3_158( A&&); -eight sink_3_158(const volatile A&&); // { dg-message "" } - -int test3_158() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_158(ca); // { dg-error "lvalue" } - sink_3_158(va); // { dg-error "lvalue" } - sink_3_158(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_3_167( A&); // { dg-message "one sink_3_167|no known conversion" } -six sink_3_167(const A&&); // { dg-message "" } -seven sink_3_167(volatile A&&); // { dg-message "" } - -int test3_167() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_167(ca); // { dg-error "lvalue" } - sink_3_167(va); // { dg-error "lvalue" } - sink_3_167(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 369 } - sink_3_167(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 371 } - sink_3_167(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 373 } - return 0; -} - -one sink_3_168( A&); -six sink_3_168(const A&&); // { dg-message "" } -eight sink_3_168(const volatile A&&); // { dg-message "" } - -int test3_168() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_168(ca); // { dg-error "lvalue" } - sink_3_168(va); // { dg-error "lvalue" } - sink_3_168(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_3_178( A&); -seven sink_3_178(volatile A&&); // { dg-message "" } -eight sink_3_178(const volatile A&&); // { dg-message "" } - -int test3_178() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_178(ca); // { dg-error "lvalue" } - sink_3_178(va); // { dg-error "lvalue" } - sink_3_178(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_3_234(const A&); // { dg-message "two sink_3_234|no known conversion" } -three sink_3_234(volatile A&); // { dg-message "note" } -four sink_3_234(const volatile A&); // { dg-message "note" } - -int test3_234() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_234(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 420 } - sink_3_234(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 422 } - sink_3_234(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 424 } - return 0; -} - -two sink_3_235(const A&); // { dg-message "two sink_3_235|no known conversion" } -three sink_3_235(volatile A&); // { dg-message "note" } -five sink_3_235( A&&); // { dg-message "note" } - -int test3_235() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_235(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 439 } - sink_3_235(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 441 } - sink_3_235(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 443 } - sink_3_235(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 445 } - return 0; -} - -two sink_3_236(const A&); // { dg-message "two sink_3_236|no known conversion" } -three sink_3_236(volatile A&); // { dg-message "note" } -six sink_3_236(const A&&); // { dg-message "note" } - -int test3_236() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_236(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 460 } - sink_3_236(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 462 } - sink_3_236(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 464 } - sink_3_236(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 466 } - return 0; -} - -two sink_3_237(const A&); // { dg-message "two sink_3_237|no known conversion" } -three sink_3_237(volatile A&); // { dg-message "note" } -seven sink_3_237(volatile A&&); // { dg-message "note" } - -int test3_237() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_237(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 481 } - sink_3_237(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 483 } - sink_3_237(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 485 } - return 0; -} - -two sink_3_238(const A&); // { dg-message "two sink_3_238|no known conversion" } -three sink_3_238(volatile A&); // { dg-message "three sink_3_238|no known conversion" } -eight sink_3_238(const volatile A&&); // { dg-message "eight sink_3_238|no known conversion" } - -int test3_238() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_238(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 500 } - sink_3_238(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_3_245(const A&); // { dg-message "two sink_3_245|no known conversion" } -four sink_3_245(const volatile A&); // { dg-message "four sink_3_245|no known conversion" } -five sink_3_245( A&&); // { dg-message "five sink_3_245|no known conversion" } - -int test3_245() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_245(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 516 } - sink_3_245(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 518 } - return 0; -} - -two sink_3_246(const A&); // { dg-message "two sink_3_246|no known conversion" } -four sink_3_246(const volatile A&); // { dg-message "four sink_3_246|no known conversion" } -six sink_3_246(const A&&); // { dg-message "six sink_3_246|no known conversion" } - -int test3_246() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_246(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 533 } - sink_3_246(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 535 } - return 0; -} - -two sink_3_247(const A&); // { dg-message "two sink_3_247|no known conversion" } -four sink_3_247(const volatile A&); // { dg-message "four sink_3_247|no known conversion" } -seven sink_3_247(volatile A&&); // { dg-message "seven sink_3_247|no known conversion" } - -int test3_247() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_247(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 550 } - return 0; -} - -two sink_3_256(const A&); // { dg-message "two sink_3_256|no known conversion" } -five sink_3_256( A&&); // { dg-message "five sink_3_256|no known conversion" } -six sink_3_256(const A&&); // { dg-message "six sink_3_256|no known conversion" } - -int test3_256() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_256(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 565 } - sink_3_256(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 567 } - sink_3_256(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 569 } - sink_3_256(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 571 } - return 0; -} - -two sink_3_257(const A&); // { dg-message "two sink_3_257|no known conversion" } -five sink_3_257( A&&); // { dg-message "five sink_3_257|no known conversion" } -seven sink_3_257(volatile A&&); // { dg-message "seven sink_3_257|no known conversion" } - -int test3_257() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_257(va); // { dg-error "lvalue" } - sink_3_257(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 587 } - sink_3_257(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 589 } - return 0; -} - -two sink_3_258(const A&); -five sink_3_258( A&&); -eight sink_3_258(const volatile A&&); // { dg-message "" } - -int test3_258() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_258(va); // { dg-error "lvalue" } - sink_3_258(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_3_267(const A&); // { dg-message "two sink_3_267|no known conversion" } -six sink_3_267(const A&&); // { dg-message "six sink_3_267|no known conversion" } -seven sink_3_267(volatile A&&); // { dg-message "seven sink_3_267|no known conversion" } - -int test3_267() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_267(va); // { dg-error "lvalue" } - sink_3_267(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 620 } - sink_3_267(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 622 } - sink_3_267(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 624 } - return 0; -} - -two sink_3_268(const A&); -six sink_3_268(const A&&); -eight sink_3_268(const volatile A&&); // { dg-message "" } - -int test3_268() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_268(va); // { dg-error "lvalue" } - sink_3_268(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_3_278(const A&); -seven sink_3_278(volatile A&&); // { dg-message "" } -eight sink_3_278(const volatile A&&); // { dg-message "" } - -int test3_278() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_278(va); // { dg-error "lvalue" } - sink_3_278(cva); // { dg-error "lvalue" } - return 0; -} - -three sink_3_345(volatile A&); // { dg-message "three sink_3_345|no known conversion" } -four sink_3_345(const volatile A&); // { dg-message "four sink_3_345|no known conversion" } -five sink_3_345( A&&); // { dg-message "five sink_3_345|no known conversion" } - -int test3_345() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_345(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 669 } - sink_3_345(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 671 } - sink_3_345(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 673 } - return 0; -} - -three sink_3_346(volatile A&); // { dg-message "three sink_3_346|no known conversion" } -four sink_3_346(const volatile A&); // { dg-message "four sink_3_346|no known conversion" } -six sink_3_346(const A&&); // { dg-message "six sink_3_346|no known conversion" } - -int test3_346() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_346(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 688 } - sink_3_346(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 690 } - return 0; -} - -three sink_3_347(volatile A&); // { dg-message "three sink_3_347|no known conversion" } -four sink_3_347(const volatile A&); // { dg-message "four sink_3_347|no known conversion" } -seven sink_3_347(volatile A&&); // { dg-message "seven sink_3_347|no known conversion" } - -int test3_347() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_347(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 705 } - sink_3_347(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 707 } - return 0; -} - -three sink_3_356(volatile A&); // { dg-message "three sink_3_356|no known conversion" } -five sink_3_356( A&&); // { dg-message "five sink_3_356|no known conversion" } -six sink_3_356(const A&&); // { dg-message "six sink_3_356|no known conversion" } - -int test3_356() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_356(ca); // { dg-error "lvalue" } - sink_3_356(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 723 } - sink_3_356(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 725 } - sink_3_356(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 727 } - return 0; -} - -three sink_3_357(volatile A&); // { dg-message "three sink_3_357|no known conversion" } -five sink_3_357( A&&); // { dg-message "five sink_3_357|no known conversion" } -seven sink_3_357(volatile A&&); // { dg-message "seven sink_3_357|no known conversion" } - -int test3_357() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_357(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 742 } - sink_3_357(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 744 } - sink_3_357(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 746 } - sink_3_357(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 748 } - return 0; -} - -three sink_3_358(volatile A&); -five sink_3_358( A&&); -eight sink_3_358(const volatile A&&); // { dg-message "" } - -int test3_358() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_358(ca); // { dg-error "lvalue" } - sink_3_358(cva); // { dg-error "lvalue" } - return 0; -} - -three sink_3_367(volatile A&); // { dg-message "three sink_3_367|no known conversion" } -six sink_3_367(const A&&); // { dg-message "six sink_3_367|no known conversion" } -seven sink_3_367(volatile A&&); // { dg-message "seven sink_3_367|no known conversion" } - -int test3_367() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_367(ca); // { dg-error "lvalue" } - sink_3_367(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 779 } - sink_3_367(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 781 } - sink_3_367(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 783 } - return 0; -} - -three sink_3_368(volatile A&); -six sink_3_368(const A&&); // { dg-message "" } -eight sink_3_368(const volatile A&&); // { dg-message "" } - -int test3_368() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_368(ca); // { dg-error "lvalue" } - sink_3_368(cva); // { dg-error "lvalue" } - return 0; -} - -three sink_3_378(volatile A&); -seven sink_3_378(volatile A&&); -eight sink_3_378(const volatile A&&); // { dg-message "" } - -int test3_378() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_378(ca); // { dg-error "lvalue" } - sink_3_378(cva); // { dg-error "lvalue" } - return 0; -} - -four sink_3_456(const volatile A&); // { dg-message "note" } -five sink_3_456( A&&); // { dg-message "note" } -six sink_3_456(const A&&); // { dg-message "note" } - -int test3_456() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_456(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 828 } - sink_3_456(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 830 } - return 0; -} - -four sink_3_457(const volatile A&); // { dg-message "note" } -five sink_3_457( A&&); // { dg-message "note" } -seven sink_3_457(volatile A&&); // { dg-message "note" } - -int test3_457() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_457(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 845 } - sink_3_457(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 847 } - return 0; -} - -four sink_3_467(const volatile A&); // { dg-message "note" } -six sink_3_467(const A&&); // { dg-message "note" } -seven sink_3_467(volatile A&&); // { dg-message "note" } - -int test3_467() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_467(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 862 } - sink_3_467(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 864 } - return 0; -} - -five sink_3_567( A&&); // { dg-message "five sink_3_567|no known conversion" } -six sink_3_567(const A&&); // { dg-message "six sink_3_567|no known conversion" } -seven sink_3_567(volatile A&&); // { dg-message "seven sink_3_567|no known conversion" } - -int test3_567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_567(a); // { dg-error "lvalue" } - sink_3_567(ca); // { dg-error "lvalue" } - sink_3_567(va); // { dg-error "lvalue" } - sink_3_567(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 882 } - sink_3_567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 884 } - return 0; -} - -five sink_3_568( A&&); // { dg-message "" } -six sink_3_568(const A&&); // { dg-message "" } -eight sink_3_568(const volatile A&&); // { dg-message "" } - -int test3_568() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_568(a); // { dg-error "lvalue" } - sink_3_568(ca); // { dg-error "lvalue" } - sink_3_568(va); // { dg-error "lvalue" } - sink_3_568(cva); // { dg-error "lvalue" } - return 0; -} - -five sink_3_578( A&&); // { dg-message "" } -seven sink_3_578(volatile A&&); // { dg-message "" } -eight sink_3_578(const volatile A&&); // { dg-message "" } - -int test3_578() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_578(a); // { dg-error "lvalue" } - sink_3_578(ca); // { dg-error "lvalue" } - sink_3_578(va); // { dg-error "lvalue" } - sink_3_578(cva); // { dg-error "lvalue" } - return 0; -} - -six sink_3_678(const A&&); // { dg-message "six sink_3_678|no known conversion" } -seven sink_3_678(volatile A&&); // { dg-message "seven sink_3_678|no known conversion" } -eight sink_3_678(const volatile A&&); // { dg-message "eight sink_3_678|no known conversion" } - -int test3_678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_3_678(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 933 } - sink_3_678(ca); // { dg-error "lvalue" } - sink_3_678(va); // { dg-error "lvalue" } - sink_3_678(cva); // { dg-error "lvalue" } - sink_3_678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 938 } - return 0; -} - -int main() -{ - return test3_123() + test3_125() + test3_126() + test3_127() + - test3_135() + test3_136() + test3_137() + test3_156() + - test3_157() + test3_167() + test3_234() + test3_235() + - test3_236() + test3_237() + test3_238() + test3_256() + - test3_257() + test3_267() + test3_356() + test3_357() + - test3_367() + test3_467() + test3_567() + test3_678(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv3p.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv3p.C deleted file mode 100644 index fad89e1d9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv3p.C +++ /dev/null @@ -1,1070 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; -struct three {long x[3];}; -struct four {long x[4];}; -struct five {long x[5];}; -struct six {long x[6];}; -struct seven {long x[7];}; -struct eight {long x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 3 at a time - -one sink_3_123( A&); -two sink_3_123(const A&); -three sink_3_123(volatile A&); - -int test3_123() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_123(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_123(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_123(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_123(source())) == 2 * sizeof(long)> t5; - sa<sizeof(sink_3_123(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -one sink_3_124( A&); -two sink_3_124(const A&); -four sink_3_124(const volatile A&); - -int test3_124() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_124(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_124(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_124(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_124(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_124(source())) == 2 * sizeof(long)> t5; - sa<sizeof(sink_3_124(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -one sink_3_125( A&); -two sink_3_125(const A&); -five sink_3_125( A&&); - -int test3_125() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_125(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_125(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_125(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_125(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -one sink_3_126( A&); -two sink_3_126(const A&); -six sink_3_126(const A&&); - -int test3_126() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_126(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_126(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_126(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_3_126(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_3_127( A&); -two sink_3_127(const A&); -seven sink_3_127(volatile A&&); - -int test3_127() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_127(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_127(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_127(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_3_127(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_3_127(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_3_128( A&); -two sink_3_128(const A&); -eight sink_3_128(const volatile A&&); - -int test3_128() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_128(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_128(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_128(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_3_128(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_128(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_128(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_3_134( A&); -three sink_3_134(volatile A&); -four sink_3_134(const volatile A&); - -int test3_134() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_134(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_134(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_134(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_134(cva)) == 4 * sizeof(long)> t4; - return 0; -} - -one sink_3_135( A&); -three sink_3_135(volatile A&); -five sink_3_135( A&&); - -int test3_135() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_135(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_135(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_135(source())) == 5 * sizeof(long)> t5; - return 0; -} - -one sink_3_136( A&); -three sink_3_136(volatile A&); -six sink_3_136(const A&&); - -int test3_136() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_136(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_136(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_136(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_3_136(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_3_137( A&); -three sink_3_137(volatile A&); -seven sink_3_137(volatile A&&); - -int test3_137() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_137(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_137(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_137(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_3_137(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_3_138( A&); -three sink_3_138(volatile A&); -eight sink_3_138(const volatile A&&); - -int test3_138() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_138(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_138(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_138(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_3_138(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_138(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_138(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_3_145( A&); -four sink_3_145(const volatile A&); -five sink_3_145( A&&); - -int test3_145() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_145(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_145(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_145(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_145(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_145(source())) == 5 * sizeof(long)> t5; - return 0; -} - -one sink_3_146( A&); -four sink_3_146(const volatile A&); -six sink_3_146(const A&&); - -int test3_146() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_146(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_146(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_146(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_146(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_146(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_3_146(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_3_147( A&); -four sink_3_147(const volatile A&); -seven sink_3_147(volatile A&&); - -int test3_147() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_147(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_147(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_147(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_147(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_147(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_3_147(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_3_148( A&); -four sink_3_148(const volatile A&); -eight sink_3_148(const volatile A&&); - -int test3_148() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_148(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_148(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_148(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_148(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_148(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_3_148(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_148(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_148(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_3_156( A&); -five sink_3_156( A&&); -six sink_3_156(const A&&); - -int test3_156() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_156(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_156(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_156(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_3_157( A&); -five sink_3_157( A&&); -seven sink_3_157(volatile A&&); - -int test3_157() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_157(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_157(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_157(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_3_158( A&); -five sink_3_158( A&&); -eight sink_3_158(const volatile A&&); - -int test3_158() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_158(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_158(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_158(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_158(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_158(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_3_167( A&); -six sink_3_167(const A&&); -seven sink_3_167(volatile A&&); - -int test3_167() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_167(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_167(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_167(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_3_168( A&); -six sink_3_168(const A&&); -eight sink_3_168(const volatile A&&); - -int test3_168() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_168(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_168(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_3_168(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_168(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_168(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_3_178( A&); -seven sink_3_178(volatile A&&); -eight sink_3_178(const volatile A&&); - -int test3_178() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_178(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_3_178(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_3_178(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_178(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_3_178(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_3_234(const A&); -three sink_3_234(volatile A&); -four sink_3_234(const volatile A&); - -int test3_234() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_234(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_234(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_234(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_234(source())) == 2 * sizeof(long)> t5; - sa<sizeof(sink_3_234(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -two sink_3_235(const A&); -three sink_3_235(volatile A&); -five sink_3_235( A&&); - -int test3_235() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_235(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_235(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_235(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_235(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -two sink_3_236(const A&); -three sink_3_236(volatile A&); -six sink_3_236(const A&&); - -int test3_236() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_236(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_236(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_236(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_3_236(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -two sink_3_237(const A&); -three sink_3_237(volatile A&); -seven sink_3_237(volatile A&&); - -int test3_237() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_237(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_237(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_237(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_3_237(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_3_237(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_3_238(const A&); -three sink_3_238(volatile A&); -eight sink_3_238(const volatile A&&); - -int test3_238() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_238(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_238(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_238(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_3_238(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_238(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_238(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_3_245(const A&); -four sink_3_245(const volatile A&); -five sink_3_245( A&&); - -int test3_245() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_245(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_3_245(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_245(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_245(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_245(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_245(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -two sink_3_246(const A&); -four sink_3_246(const volatile A&); -six sink_3_246(const A&&); - -int test3_246() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_246(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_3_246(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_246(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_246(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_246(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_3_246(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -two sink_3_247(const A&); -four sink_3_247(const volatile A&); -seven sink_3_247(volatile A&&); - -int test3_247() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_247(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_3_247(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_247(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_247(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_247(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_3_247(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_3_247(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_3_248(const A&); -four sink_3_248(const volatile A&); -eight sink_3_248(const volatile A&&); - -int test3_248() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_248(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_3_248(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_248(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_248(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_248(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_3_248(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_248(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_248(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_3_256(const A&); -five sink_3_256( A&&); -six sink_3_256(const A&&); - -int test3_256() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_256(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_3_256(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_256(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_256(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -two sink_3_257(const A&); -five sink_3_257( A&&); -seven sink_3_257(volatile A&&); - -int test3_257() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_257(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_3_257(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_257(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_257(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_3_257(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_3_258(const A&); -five sink_3_258( A&&); -eight sink_3_258(const volatile A&&); - -int test3_258() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_258(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_3_258(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_258(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_258(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_258(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_258(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_3_267(const A&); -six sink_3_267(const A&&); -seven sink_3_267(volatile A&&); - -int test3_267() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_267(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_3_267(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_267(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_267(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_3_268(const A&); -six sink_3_268(const A&&); -eight sink_3_268(const volatile A&&); - -int test3_268() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_268(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_3_268(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_268(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_3_268(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_268(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_268(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_3_278(const A&); -seven sink_3_278(volatile A&&); -eight sink_3_278(const volatile A&&); - -int test3_278() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_278(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_3_278(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_3_278(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_3_278(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_278(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_3_278(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_3_345(volatile A&); -four sink_3_345(const volatile A&); -five sink_3_345( A&&); - -int test3_345() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_345(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_3_345(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_345(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_345(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_345(source())) == 5 * sizeof(long)> t5; - return 0; -} - -three sink_3_346(volatile A&); -four sink_3_346(const volatile A&); -six sink_3_346(const A&&); - -int test3_346() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_346(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_3_346(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_346(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_346(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_346(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_3_346(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -three sink_3_347(volatile A&); -four sink_3_347(const volatile A&); -seven sink_3_347(volatile A&&); - -int test3_347() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_347(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_3_347(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_347(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_347(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_347(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_3_347(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -three sink_3_348(volatile A&); -four sink_3_348(const volatile A&); -eight sink_3_348(const volatile A&&); - -int test3_348() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_348(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_3_348(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_348(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_348(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_348(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_3_348(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_348(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_348(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_3_356(volatile A&); -five sink_3_356( A&&); -six sink_3_356(const A&&); - -int test3_356() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_356(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_3_356(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_356(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_356(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -three sink_3_357(volatile A&); -five sink_3_357( A&&); -seven sink_3_357(volatile A&&); - -int test3_357() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_357(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_3_357(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_357(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_357(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -three sink_3_358(volatile A&); -five sink_3_358( A&&); -eight sink_3_358(const volatile A&&); - -int test3_358() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_358(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_3_358(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_358(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_358(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_358(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_358(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_3_367(volatile A&); -six sink_3_367(const A&&); -seven sink_3_367(volatile A&&); - -int test3_367() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_367(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_3_367(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_367(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_367(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -three sink_3_368(volatile A&); -six sink_3_368(const A&&); -eight sink_3_368(const volatile A&&); - -int test3_368() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_368(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_3_368(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_368(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_3_368(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_368(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_368(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_3_378(volatile A&); -seven sink_3_378(volatile A&&); -eight sink_3_378(const volatile A&&); - -int test3_378() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_378(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_3_378(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_3_378(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_3_378(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_378(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_3_378(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -four sink_3_456(const volatile A&); -five sink_3_456( A&&); -six sink_3_456(const A&&); - -int test3_456() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_456(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_3_456(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_456(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_456(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_456(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_456(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -four sink_3_457(const volatile A&); -five sink_3_457( A&&); -seven sink_3_457(volatile A&&); - -int test3_457() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_457(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_3_457(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_457(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_457(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_457(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_457(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -four sink_3_458(const volatile A&); -five sink_3_458( A&&); -eight sink_3_458(const volatile A&&); - -int test3_458() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_458(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_3_458(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_458(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_458(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_458(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_458(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_458(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_458(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -four sink_3_467(const volatile A&); -six sink_3_467(const A&&); -seven sink_3_467(volatile A&&); - -int test3_467() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_467(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_3_467(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_467(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_467(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_467(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_467(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -four sink_3_468(const volatile A&); -six sink_3_468(const A&&); -eight sink_3_468(const volatile A&&); - -int test3_468() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_468(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_3_468(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_468(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_468(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_468(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_3_468(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_468(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_468(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -four sink_3_478(const volatile A&); -seven sink_3_478(volatile A&&); -eight sink_3_478(const volatile A&&); - -int test3_478() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_478(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_3_478(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_3_478(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_3_478(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_3_478(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_3_478(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_478(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_3_478(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -five sink_3_567( A&&); -six sink_3_567(const A&&); -seven sink_3_567(volatile A&&); - -int test3_567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_567(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_567(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_567(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -five sink_3_568( A&&); -six sink_3_568(const A&&); -eight sink_3_568(const volatile A&&); - -int test3_568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_568(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_568(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_568(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_3_568(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -five sink_3_578( A&&); -seven sink_3_578(volatile A&&); -eight sink_3_578(const volatile A&&); - -int test3_578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_578(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_3_578(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_3_578(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_3_578(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -six sink_3_678(const A&&); -seven sink_3_678(volatile A&&); -eight sink_3_678(const volatile A&&); - -int test3_678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_3_678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_3_678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_3_678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -int main() -{ - return test3_123() + test3_124() + test3_125() + test3_126() + - test3_127() + test3_128() + test3_134() + test3_135() + - test3_136() + test3_137() + test3_138() + test3_145() + - test3_146() + test3_147() + test3_148() + test3_156() + - test3_157() + test3_158() + test3_167() + test3_168() + - test3_178() + test3_234() + test3_235() + test3_236() + - test3_237() + test3_238() + test3_245() + test3_246() + - test3_247() + test3_248() + test3_256() + test3_257() + - test3_258() + test3_267() + test3_268() + test3_278() + - test3_345() + test3_346() + test3_347() + test3_348() + - test3_356() + test3_357() + test3_358() + test3_367() + - test3_368() + test3_378() + test3_456() + test3_457() + - test3_458() + test3_467() + test3_468() + test3_478() + - test3_567() + test3_568() + test3_578() + test3_678(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv4n.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv4n.C deleted file mode 100644 index 076e9a048..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv4n.C +++ /dev/null @@ -1,1072 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {char x[1];}; -struct two {char x[2];}; -struct three {char x[3];}; -struct four {char x[4];}; -struct five {char x[5];}; -struct six {char x[6];}; -struct seven {char x[7];}; -struct eight {char x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 4 at a time - -one sink_4_1234( A&); // { dg-message "one sink_4_1234|no known conversion" } -two sink_4_1234(const A&); // { dg-message "note" } -three sink_4_1234(volatile A&); // { dg-message "note" } -four sink_4_1234(const volatile A&); // { dg-message "note" } - -int test4_1234() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1234(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 44 } - sink_4_1234(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 46 } - return 0; -} - -one sink_4_1235( A&); // { dg-message "one sink_4_1235|no known conversion" } -two sink_4_1235(const A&); // { dg-message "note" } -three sink_4_1235(volatile A&); // { dg-message "note" } -five sink_4_1235( A&&); // { dg-message "note" } - -int test4_1235() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1235(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 62 } - sink_4_1235(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 64 } - sink_4_1235(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 66 } - return 0; -} - -one sink_4_1236( A&); // { dg-message "one sink_4_1236|no known conversion" } -two sink_4_1236(const A&); // { dg-message "note" } -three sink_4_1236(volatile A&); // { dg-message "note" } -six sink_4_1236(const A&&); // { dg-message "note" } - -int test4_1236() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1236(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 82 } - sink_4_1236(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 84 } - sink_4_1236(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 86 } - return 0; -} - -one sink_4_1237( A&); // { dg-message "one sink_4_1237|no known conversion" } -two sink_4_1237(const A&); // { dg-message "note" } -three sink_4_1237(volatile A&); // { dg-message "note" } -seven sink_4_1237(volatile A&&); // { dg-message "note" } - -int test4_1237() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1237(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 102 } - sink_4_1237(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 104 } - return 0; -} - -one sink_4_1238( A&); -two sink_4_1238(const A&); -three sink_4_1238(volatile A&); -eight sink_4_1238(const volatile A&&); // { dg-message "" } - -int test4_1238() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1238(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_4_1245( A&); // { dg-message "one sink_4_1245|no known conversion" } -two sink_4_1245(const A&); // { dg-message "note" } -four sink_4_1245(const volatile A&); // { dg-message "note" } -five sink_4_1245( A&&); // { dg-message "note" } - -int test4_1245() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1245(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 135 } - sink_4_1245(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 137 } - return 0; -} - -one sink_4_1246( A&); // { dg-message "one sink_4_1246|no known conversion" } -two sink_4_1246(const A&); // { dg-message "note" } -four sink_4_1246(const volatile A&); // { dg-message "note" } -six sink_4_1246(const A&&); // { dg-message "note" } - -int test4_1246() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1246(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 153 } - sink_4_1246(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 155 } - return 0; -} - -one sink_4_1247( A&); // { dg-message "one sink_4_1247|no known conversion" } -two sink_4_1247(const A&); // { dg-message "note" } -four sink_4_1247(const volatile A&); // { dg-message "note" } -seven sink_4_1247(volatile A&&); // { dg-message "note" } - -int test4_1247() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1247(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 171 } - return 0; -} - -one sink_4_1256( A&); // { dg-message "one sink_4_1256|no known conversion" } -two sink_4_1256(const A&); // { dg-message "note" } -five sink_4_1256( A&&); // { dg-message "note" } -six sink_4_1256(const A&&); // { dg-message "note" } - -int test4_1256() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1256(va); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 187 } - sink_4_1256(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 189 } - sink_4_1256(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 191 } - sink_4_1256(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 193 } - return 0; -} - -one sink_4_1257( A&); // { dg-message "one sink_4_1257|no known conversion" } -two sink_4_1257(const A&); // { dg-message "note" } -five sink_4_1257( A&&); // { dg-message "note" } -seven sink_4_1257(volatile A&&); // { dg-message "" } - -int test4_1257() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1257(va); // { dg-error "lvalue" } - sink_4_1257(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 210 } - sink_4_1257(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 212 } - return 0; -} - -one sink_4_1258( A&); -two sink_4_1258(const A&); -five sink_4_1258( A&&); -eight sink_4_1258(const volatile A&&); // { dg-message "" } - -int test4_1258() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1258(va); // { dg-error "lvalue" } - sink_4_1258(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_4_1267( A&); // { dg-message "one sink_4_1267|no known conversion" } -two sink_4_1267(const A&); // { dg-message "note" } -six sink_4_1267(const A&&); // { dg-message "note" } -seven sink_4_1267(volatile A&&); // { dg-message "" } - -int test4_1267() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1267(va); // { dg-error "lvalue" } - sink_4_1267(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 245 } - sink_4_1267(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 247 } - sink_4_1267(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 249 } - return 0; -} - -one sink_4_1268( A&); -two sink_4_1268(const A&); -six sink_4_1268(const A&&); -eight sink_4_1268(const volatile A&&); // { dg-message "" } - -int test4_1268() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1268(va); // { dg-error "lvalue" } - sink_4_1268(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_4_1278( A&); -two sink_4_1278(const A&); -seven sink_4_1278(volatile A&&); // { dg-message "" } -eight sink_4_1278(const volatile A&&); // { dg-message "" } - -int test4_1278() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1278(va); // { dg-error "lvalue" } - sink_4_1278(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_4_1345( A&); // { dg-message "one sink_4_1345|no known conversion" } -three sink_4_1345(volatile A&); // { dg-message "note" } -four sink_4_1345(const volatile A&); // { dg-message "note" } -five sink_4_1345( A&&); // { dg-message "note" } - -int test4_1345() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1345(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 297 } - sink_4_1345(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 299 } - sink_4_1345(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 301 } - return 0; -} - -one sink_4_1346( A&); // { dg-message "one sink_4_1346|no known conversion" } -three sink_4_1346(volatile A&); // { dg-message "note" } -four sink_4_1346(const volatile A&); // { dg-message "note" } -six sink_4_1346(const A&&); // { dg-message "note" } - -int test4_1346() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1346(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 317 } - sink_4_1346(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 319 } - return 0; -} - -one sink_4_1347( A&); // { dg-message "one sink_4_1347|no known conversion" } -three sink_4_1347(volatile A&); // { dg-message "note" } -four sink_4_1347(const volatile A&); // { dg-message "note" } -seven sink_4_1347(volatile A&&); // { dg-message "note" } - -int test4_1347() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1347(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 335 } - sink_4_1347(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 337 } - return 0; -} - -one sink_4_1356( A&); // { dg-message "one sink_4_1356|no known conversion" } -three sink_4_1356(volatile A&); // { dg-message "note" } -five sink_4_1356( A&&); // { dg-message "note" } -six sink_4_1356(const A&&); // { dg-message "" } - -int test4_1356() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1356(ca); // { dg-error "lvalue" } - sink_4_1356(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 354 } - sink_4_1356(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 356 } - sink_4_1356(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 358 } - return 0; -} - -one sink_4_1357( A&); // { dg-message "one sink_4_1357|no known conversion" } -three sink_4_1357(volatile A&); // { dg-message "note" } -five sink_4_1357( A&&); // { dg-message "note" } -seven sink_4_1357(volatile A&&); // { dg-message "note" } - -int test4_1357() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1357(ca); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 374 } - sink_4_1357(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 376 } - sink_4_1357(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 378 } - sink_4_1357(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 380 } - return 0; -} - -one sink_4_1358( A&); -three sink_4_1358(volatile A&); -five sink_4_1358( A&&); -eight sink_4_1358(const volatile A&&); // { dg-message "" } - -int test4_1358() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1358(ca); // { dg-error "lvalue" } - sink_4_1358(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_4_1367( A&); // { dg-message "one sink_4_1367|no known conversion" } -three sink_4_1367(volatile A&); // { dg-message "note" } -six sink_4_1367(const A&&); // { dg-message "" } -seven sink_4_1367(volatile A&&); // { dg-message "note" } - -int test4_1367() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1367(ca); // { dg-error "lvalue" } - sink_4_1367(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 413 } - sink_4_1367(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 415 } - sink_4_1367(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 417 } - return 0; -} - -one sink_4_1368( A&); -three sink_4_1368(volatile A&); -six sink_4_1368(const A&&); // { dg-message "" } -eight sink_4_1368(const volatile A&&); // { dg-message "" } - -int test4_1368() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1368(ca); // { dg-error "lvalue" } - sink_4_1368(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_4_1378( A&); -three sink_4_1378(volatile A&); -seven sink_4_1378(volatile A&&); -eight sink_4_1378(const volatile A&&); // { dg-message "" } - -int test4_1378() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1378(ca); // { dg-error "lvalue" } - sink_4_1378(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_4_1456( A&); // { dg-message "one sink_4_1456|no known conversion" } -four sink_4_1456(const volatile A&); // { dg-message "note" } -five sink_4_1456( A&&); // { dg-message "note" } -six sink_4_1456(const A&&); // { dg-message "note" } - -int test4_1456() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1456(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 465 } - sink_4_1456(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 467 } - return 0; -} - -one sink_4_1457( A&); // { dg-message "one sink_4_1457|no known conversion" } -four sink_4_1457(const volatile A&); // { dg-message "note" } -five sink_4_1457( A&&); // { dg-message "note" } -seven sink_4_1457(volatile A&&); // { dg-message "note" } - -int test4_1457() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1457(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 483 } - sink_4_1457(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 485 } - return 0; -} - -one sink_4_1467( A&); // { dg-message "one sink_4_1467|no known conversion" } -four sink_4_1467(const volatile A&); // { dg-message "note" } -six sink_4_1467(const A&&); // { dg-message "note" } -seven sink_4_1467(volatile A&&); // { dg-message "note" } - -int test4_1467() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1467(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 501 } - sink_4_1467(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 503 } - return 0; -} - -one sink_4_1567( A&); // { dg-message "one sink_4_1567|no known conversion" } -five sink_4_1567( A&&); // { dg-message "note" } -six sink_4_1567(const A&&); // { dg-message "" } -seven sink_4_1567(volatile A&&); // { dg-message "" } - -int test4_1567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1567(ca); // { dg-error "lvalue" } - sink_4_1567(va); // { dg-error "lvalue" } - sink_4_1567(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 521 } - sink_4_1567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 523 } - return 0; -} - -one sink_4_1568( A&); -five sink_4_1568( A&&); -six sink_4_1568(const A&&); // { dg-message "" } -eight sink_4_1568(const volatile A&&); // { dg-message "" } - -int test4_1568() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1568(ca); // { dg-error "lvalue" } - sink_4_1568(va); // { dg-error "lvalue" } - sink_4_1568(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_4_1578( A&); -five sink_4_1578( A&&); -seven sink_4_1578(volatile A&&); // { dg-message "" } -eight sink_4_1578(const volatile A&&); // { dg-message "" } - -int test4_1578() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1578(ca); // { dg-error "lvalue" } - sink_4_1578(va); // { dg-error "lvalue" } - sink_4_1578(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_4_1678( A&); -six sink_4_1678(const A&&); // { dg-message "" } -seven sink_4_1678(volatile A&&); // { dg-message "" } -eight sink_4_1678(const volatile A&&); // { dg-message "" } - -int test4_1678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_1678(ca); // { dg-error "lvalue" } - sink_4_1678(va); // { dg-error "lvalue" } - sink_4_1678(cva); // { dg-error "lvalue" } - sink_4_1678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 576 } - return 0; -} - -two sink_4_2345(const A&); // { dg-message "two sink_4_2345|no known conversion" } -three sink_4_2345(volatile A&); // { dg-message "note" } -four sink_4_2345(const volatile A&); // { dg-message "note" } -five sink_4_2345( A&&); // { dg-message "note" } - -int test4_2345() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2345(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 592 } - sink_4_2345(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 594 } - sink_4_2345(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 596 } - return 0; -} - -two sink_4_2346(const A&); // { dg-message "two sink_4_2346|no known conversion" } -three sink_4_2346(volatile A&); // { dg-message "note" } -four sink_4_2346(const volatile A&); // { dg-message "note" } -six sink_4_2346(const A&&); // { dg-message "note" } - -int test4_2346() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2346(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 612 } - sink_4_2346(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 614 } - sink_4_2346(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 616 } - return 0; -} - -two sink_4_2347(const A&); // { dg-message "two sink_4_2347|no known conversion" } -three sink_4_2347(volatile A&); // { dg-message "note" } -four sink_4_2347(const volatile A&); // { dg-message "note" } -seven sink_4_2347(volatile A&&); // { dg-message "note" } - -int test4_2347() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2347(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 632 } - sink_4_2347(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 634 } - return 0; -} - -two sink_4_2348(const A&); // { dg-message "note" } -three sink_4_2348(volatile A&); // { dg-message "note" } -four sink_4_2348(const volatile A&); // { dg-message "note" } -eight sink_4_2348(const volatile A&&); // { dg-message "note" } - -int test4_2348() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2348(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 650 } - return 0; -} - -two sink_4_2356(const A&); // { dg-message "two sink_4_2356|no known conversion" } -three sink_4_2356(volatile A&); // { dg-message "note" } -five sink_4_2356( A&&); // { dg-message "note" } -six sink_4_2356(const A&&); // { dg-message "note" } - -int test4_2356() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2356(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 666 } - sink_4_2356(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 668 } - sink_4_2356(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 670 } - sink_4_2356(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 672 } - return 0; -} - -two sink_4_2357(const A&); // { dg-message "two sink_4_2357|no known conversion" } -three sink_4_2357(volatile A&); // { dg-message "note" } -five sink_4_2357( A&&); // { dg-message "note" } -seven sink_4_2357(volatile A&&); // { dg-message "note" } - -int test4_2357() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2357(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 688 } - sink_4_2357(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 690 } - sink_4_2357(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 692 } - return 0; -} - -two sink_4_2358(const A&); // { dg-message "note" } -three sink_4_2358(volatile A&); // { dg-message "note" } -five sink_4_2358( A&&); // { dg-message "note" } -eight sink_4_2358(const volatile A&&); // { dg-message "" } - -int test4_2358() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2358(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 708 } - sink_4_2358(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_4_2367(const A&); // { dg-message "two sink_4_2367|no known conversion" } -three sink_4_2367(volatile A&); // { dg-message "note" } -six sink_4_2367(const A&&); // { dg-message "note" } -seven sink_4_2367(volatile A&&); // { dg-message "note" } - -int test4_2367() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2367(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 725 } - sink_4_2367(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 727 } - sink_4_2367(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 729 } - sink_4_2367(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 731 } - return 0; -} - -two sink_4_2368(const A&); // { dg-message "note" } -three sink_4_2368(volatile A&); // { dg-message "note" } -six sink_4_2368(const A&&); // { dg-message "note" } -eight sink_4_2368(const volatile A&&); // { dg-message "" } - -int test4_2368() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2368(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 747 } - sink_4_2368(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_4_2378(const A&); // { dg-message "note" } -three sink_4_2378(volatile A&); // { dg-message "note" } -seven sink_4_2378(volatile A&&); // { dg-message "note" } -eight sink_4_2378(const volatile A&&); // { dg-message "" } - -int test4_2378() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2378(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 764 } - sink_4_2378(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_4_2456(const A&); // { dg-message "two sink_4_2456|no known conversion" } -four sink_4_2456(const volatile A&); // { dg-message "note" } -five sink_4_2456( A&&); // { dg-message "note" } -six sink_4_2456(const A&&); // { dg-message "note" } - -int test4_2456() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2456(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 781 } - sink_4_2456(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 783 } - return 0; -} - -two sink_4_2457(const A&); // { dg-message "two sink_4_2457|no known conversion" } -four sink_4_2457(const volatile A&); // { dg-message "note" } -five sink_4_2457( A&&); // { dg-message "note" } -seven sink_4_2457(volatile A&&); // { dg-message "note" } - -int test4_2457() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2457(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 799 } - return 0; -} - -two sink_4_2467(const A&); // { dg-message "two sink_4_2467|no known conversion" } -four sink_4_2467(const volatile A&); // { dg-message "note" } -six sink_4_2467(const A&&); // { dg-message "note" } -seven sink_4_2467(volatile A&&); // { dg-message "note" } - -int test4_2467() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2467(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 815 } - sink_4_2467(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 817 } - return 0; -} - -two sink_4_2567(const A&); // { dg-message "two sink_4_2567|no known conversion" } -five sink_4_2567( A&&); // { dg-message "note" } -six sink_4_2567(const A&&); // { dg-message "note" } -seven sink_4_2567(volatile A&&); // { dg-message "" } - -int test4_2567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2567(va); // { dg-error "lvalue" } - sink_4_2567(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 834 } - sink_4_2567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 836 } - return 0; -} - -two sink_4_2568(const A&); -five sink_4_2568( A&&); -six sink_4_2568(const A&&); -eight sink_4_2568(const volatile A&&); // { dg-message "" } - -int test4_2568() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2568(va); // { dg-error "lvalue" } - sink_4_2568(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_4_2578(const A&); -five sink_4_2578( A&&); -seven sink_4_2578(volatile A&&); // { dg-message "" } -eight sink_4_2578(const volatile A&&); // { dg-message "" } - -int test4_2578() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2578(va); // { dg-error "lvalue" } - sink_4_2578(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_4_2678(const A&); // { dg-message "note" } -six sink_4_2678(const A&&); // { dg-message "note" } -seven sink_4_2678(volatile A&&); // { dg-message "" } -eight sink_4_2678(const volatile A&&); // { dg-message "" } - -int test4_2678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_2678(va); // { dg-error "lvalue" } - sink_4_2678(cva); // { dg-error "lvalue" } - sink_4_2678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 886 } - return 0; -} - -three sink_4_3456(volatile A&); // { dg-message "three sink_4_3456|no known conversion" } -four sink_4_3456(const volatile A&); // { dg-message "note" } -five sink_4_3456( A&&); // { dg-message "note" } -six sink_4_3456(const A&&); // { dg-message "note" } - -int test4_3456() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_3456(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 902 } - sink_4_3456(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 904 } - return 0; -} - -three sink_4_3457(volatile A&); // { dg-message "three sink_4_3457|no known conversion" } -four sink_4_3457(const volatile A&); // { dg-message "note" } -five sink_4_3457( A&&); // { dg-message "note" } -seven sink_4_3457(volatile A&&); // { dg-message "note" } - -int test4_3457() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_3457(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 920 } - sink_4_3457(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 922 } - return 0; -} - -three sink_4_3467(volatile A&); // { dg-message "three sink_4_3467|no known conversion" } -four sink_4_3467(const volatile A&); // { dg-message "note" } -six sink_4_3467(const A&&); // { dg-message "note" } -seven sink_4_3467(volatile A&&); // { dg-message "note" } - -int test4_3467() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_3467(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 938 } - sink_4_3467(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 940 } - return 0; -} - -three sink_4_3567(volatile A&); // { dg-message "three sink_4_3567|no known conversion" } -five sink_4_3567( A&&); // { dg-message "note" } -six sink_4_3567(const A&&); // { dg-message "" } -seven sink_4_3567(volatile A&&); // { dg-message "note" } - -int test4_3567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_3567(ca); // { dg-error "lvalue" } - sink_4_3567(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 957 } - sink_4_3567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 959 } - return 0; -} - -three sink_4_3568(volatile A&); -five sink_4_3568( A&&); -six sink_4_3568(const A&&); // { dg-message "" } -eight sink_4_3568(const volatile A&&); // { dg-message "" } - -int test4_3568() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_3568(ca); // { dg-error "lvalue" } - sink_4_3568(cva); // { dg-error "lvalue" } - return 0; -} - -three sink_4_3578(volatile A&); -five sink_4_3578( A&&); -seven sink_4_3578(volatile A&&); -eight sink_4_3578(const volatile A&&); // { dg-message "" } - -int test4_3578() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_3578(ca); // { dg-error "lvalue" } - sink_4_3578(cva); // { dg-error "lvalue" } - return 0; -} - -three sink_4_3678(volatile A&); -six sink_4_3678(const A&&); // { dg-message "" } -seven sink_4_3678(volatile A&&); // { dg-message "note" } -eight sink_4_3678(const volatile A&&); // { dg-message "" } - -int test4_3678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_3678(ca); // { dg-error "lvalue" } - sink_4_3678(cva); // { dg-error "lvalue" } - sink_4_3678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 1009 } - return 0; -} - -four sink_4_4567(const volatile A&); // { dg-message "note" } -five sink_4_4567( A&&); // { dg-message "note" } -six sink_4_4567(const A&&); // { dg-message "note" } -seven sink_4_4567(volatile A&&); // { dg-message "note" } - -int test4_4567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_4567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 1025 } - return 0; -} - -four sink_4_4678(const volatile A&); -six sink_4_4678(const A&&); // { dg-message "note" } -seven sink_4_4678(volatile A&&); // { dg-message "note" } -eight sink_4_4678(const volatile A&&); // { dg-message "note" } - -int test4_4678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_4678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 1041 } - return 0; -} - -five sink_4_5678( A&&); // { dg-message "" } -six sink_4_5678(const A&&); // { dg-message "" } -seven sink_4_5678(volatile A&&); // { dg-message "" } -eight sink_4_5678(const volatile A&&); // { dg-message "" } - -int test4_5678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_4_5678(a); // { dg-error "lvalue" } - sink_4_5678(ca); // { dg-error "lvalue" } - sink_4_5678(va); // { dg-error "lvalue" } - sink_4_5678(cva); // { dg-error "lvalue" } - return 0; -} - -int main() -{ - return test4_1235() + test4_1236() + test4_1237() + test4_1256() + test4_1257() + - test4_1267() + test4_1356() + test4_1357() + test4_1467() + test4_1567() + - test4_1678() + test4_2345() + test4_2346() + test4_2347() + test4_2348() + - test4_2356() + test4_2357() + test4_2358() + test4_2367() + test4_2368() + - test4_2378() + test4_2467() + test4_2567() + test4_2678() + test4_3467() + - test4_3567() + test4_3678() + test4_4678(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv4p.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv4p.C deleted file mode 100644 index 134ca13e0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv4p.C +++ /dev/null @@ -1,1448 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; -struct three {long x[3];}; -struct four {long x[4];}; -struct five {long x[5];}; -struct six {long x[6];}; -struct seven {long x[7];}; -struct eight {long x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 4 at a time - -one sink_4_1234( A&); -two sink_4_1234(const A&); -three sink_4_1234(volatile A&); -four sink_4_1234(const volatile A&); - -int test4_1234() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1234(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1234(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1234(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1234(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1234(source())) == 2 * sizeof(long)> t5; - sa<sizeof(sink_4_1234(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -one sink_4_1235( A&); -two sink_4_1235(const A&); -three sink_4_1235(volatile A&); -five sink_4_1235( A&&); - -int test4_1235() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1235(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1235(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1235(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1235(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1235(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -one sink_4_1236( A&); -two sink_4_1236(const A&); -three sink_4_1236(volatile A&); -six sink_4_1236(const A&&); - -int test4_1236() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1236(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1236(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1236(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1236(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_4_1236(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_4_1237( A&); -two sink_4_1237(const A&); -three sink_4_1237(volatile A&); -seven sink_4_1237(volatile A&&); - -int test4_1237() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1237(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1237(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1237(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1237(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_4_1237(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_4_1237(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_4_1238( A&); -two sink_4_1238(const A&); -three sink_4_1238(volatile A&); -eight sink_4_1238(const volatile A&&); - -int test4_1238() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1238(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1238(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1238(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1238(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_4_1238(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_1238(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_1238(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1245( A&); -two sink_4_1245(const A&); -four sink_4_1245(const volatile A&); -five sink_4_1245( A&&); - -int test4_1245() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1245(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1245(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1245(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_1245(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1245(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1245(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -one sink_4_1246( A&); -two sink_4_1246(const A&); -four sink_4_1246(const volatile A&); -six sink_4_1246(const A&&); - -int test4_1246() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1246(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1246(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1246(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_1246(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1246(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_4_1246(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_4_1247( A&); -two sink_4_1247(const A&); -four sink_4_1247(const volatile A&); -seven sink_4_1247(volatile A&&); - -int test4_1247() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1247(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1247(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1247(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_1247(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1247(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_4_1247(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_4_1247(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_4_1248( A&); -two sink_4_1248(const A&); -four sink_4_1248(const volatile A&); -eight sink_4_1248(const volatile A&&); - -int test4_1248() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1248(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1248(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1248(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_1248(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1248(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_4_1248(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_1248(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_1248(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1256( A&); -two sink_4_1256(const A&); -five sink_4_1256( A&&); -six sink_4_1256(const A&&); - -int test4_1256() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1256(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1256(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1256(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1256(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_4_1257( A&); -two sink_4_1257(const A&); -five sink_4_1257( A&&); -seven sink_4_1257(volatile A&&); - -int test4_1257() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1257(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1257(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1257(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1257(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_4_1257(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_4_1258( A&); -two sink_4_1258(const A&); -five sink_4_1258( A&&); -eight sink_4_1258(const volatile A&&); - -int test4_1258() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1258(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1258(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1258(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1258(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_1258(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_1258(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1267( A&); -two sink_4_1267(const A&); -six sink_4_1267(const A&&); -seven sink_4_1267(volatile A&&); - -int test4_1267() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1267(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1267(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1267(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_1267(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_4_1268( A&); -two sink_4_1268(const A&); -six sink_4_1268(const A&&); -eight sink_4_1268(const volatile A&&); - -int test4_1268() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1268(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1268(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1268(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_4_1268(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_1268(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_1268(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1278( A&); -two sink_4_1278(const A&); -seven sink_4_1278(volatile A&&); -eight sink_4_1278(const volatile A&&); - -int test4_1278() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1278(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1278(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_1278(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_4_1278(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_1278(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_1278(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1345( A&); -three sink_4_1345(volatile A&); -four sink_4_1345(const volatile A&); -five sink_4_1345( A&&); - -int test4_1345() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1345(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1345(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_1345(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1345(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1345(source())) == 5 * sizeof(long)> t5; - return 0; -} - -one sink_4_1346( A&); -three sink_4_1346(volatile A&); -four sink_4_1346(const volatile A&); -six sink_4_1346(const A&&); - -int test4_1346() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1346(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1346(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_1346(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1346(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1346(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_4_1346(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_4_1347( A&); -three sink_4_1347(volatile A&); -four sink_4_1347(const volatile A&); -seven sink_4_1347(volatile A&&); - -int test4_1347() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1347(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1347(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_1347(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1347(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1347(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_4_1347(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_4_1348( A&); -three sink_4_1348(volatile A&); -four sink_4_1348(const volatile A&); -eight sink_4_1348(const volatile A&&); - -int test4_1348() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1348(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1348(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_1348(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1348(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1348(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_4_1348(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_1348(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_1348(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1356( A&); -three sink_4_1356(volatile A&); -five sink_4_1356( A&&); -six sink_4_1356(const A&&); - -int test4_1356() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1356(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1356(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1356(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1356(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_4_1357( A&); -three sink_4_1357(volatile A&); -five sink_4_1357( A&&); -seven sink_4_1357(volatile A&&); - -int test4_1357() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1357(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1357(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1357(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1357(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_4_1358( A&); -three sink_4_1358(volatile A&); -five sink_4_1358( A&&); -eight sink_4_1358(const volatile A&&); - -int test4_1358() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1358(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1358(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1358(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1358(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_1358(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_1358(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1367( A&); -three sink_4_1367(volatile A&); -six sink_4_1367(const A&&); -seven sink_4_1367(volatile A&&); - -int test4_1367() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1367(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1367(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1367(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_1367(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_4_1368( A&); -three sink_4_1368(volatile A&); -six sink_4_1368(const A&&); -eight sink_4_1368(const volatile A&&); - -int test4_1368() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1368(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1368(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1368(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_4_1368(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_1368(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_1368(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1378( A&); -three sink_4_1378(volatile A&); -seven sink_4_1378(volatile A&&); -eight sink_4_1378(const volatile A&&); - -int test4_1378() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1378(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1378(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_1378(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_4_1378(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_1378(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_1378(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1456( A&); -four sink_4_1456(const volatile A&); -five sink_4_1456( A&&); -six sink_4_1456(const A&&); - -int test4_1456() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1456(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1456(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_1456(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_1456(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1456(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1456(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_4_1457( A&); -four sink_4_1457(const volatile A&); -five sink_4_1457( A&&); -seven sink_4_1457(volatile A&&); - -int test4_1457() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1457(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1457(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_1457(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_1457(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1457(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1457(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_4_1458( A&); -four sink_4_1458(const volatile A&); -five sink_4_1458( A&&); -eight sink_4_1458(const volatile A&&); - -int test4_1458() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1458(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1458(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_1458(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_1458(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1458(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1458(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_1458(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_1458(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1467( A&); -four sink_4_1467(const volatile A&); -six sink_4_1467(const A&&); -seven sink_4_1467(volatile A&&); - -int test4_1467() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1467(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1467(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_1467(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_1467(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1467(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_1467(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_4_1468( A&); -four sink_4_1468(const volatile A&); -six sink_4_1468(const A&&); -eight sink_4_1468(const volatile A&&); - -int test4_1468() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1468(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1468(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_1468(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_1468(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1468(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_4_1468(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_1468(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_1468(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1478( A&); -four sink_4_1478(const volatile A&); -seven sink_4_1478(volatile A&&); -eight sink_4_1478(const volatile A&&); - -int test4_1478() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1478(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1478(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_1478(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_1478(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_1478(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_4_1478(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_1478(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_1478(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1567( A&); -five sink_4_1567( A&&); -six sink_4_1567(const A&&); -seven sink_4_1567(volatile A&&); - -int test4_1567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1567(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1567(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1567(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_1567(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_4_1568( A&); -five sink_4_1568( A&&); -six sink_4_1568(const A&&); -eight sink_4_1568(const volatile A&&); - -int test4_1568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1568(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1568(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1568(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_1568(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_1568(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1578( A&); -five sink_4_1578( A&&); -seven sink_4_1578(volatile A&&); -eight sink_4_1578(const volatile A&&); - -int test4_1578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1578(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1578(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_1578(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_1578(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_1578(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_4_1678( A&); -six sink_4_1678(const A&&); -seven sink_4_1678(volatile A&&); -eight sink_4_1678(const volatile A&&); - -int test4_1678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_1678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_4_1678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_1678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_1678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_4_2345(const A&); -three sink_4_2345(volatile A&); -four sink_4_2345(const volatile A&); -five sink_4_2345( A&&); - -int test4_2345() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2345(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2345(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_2345(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_2345(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_2345(c_source())) == 2 * sizeof(long)> t6; - return 0; -} - -two sink_4_2346(const A&); -three sink_4_2346(volatile A&); -four sink_4_2346(const volatile A&); -six sink_4_2346(const A&&); - -int test4_2346() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2346(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2346(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_2346(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_2346(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_4_2346(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -two sink_4_2347(const A&); -three sink_4_2347(volatile A&); -four sink_4_2347(const volatile A&); -seven sink_4_2347(volatile A&&); - -int test4_2347() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2347(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2347(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_2347(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_2347(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_4_2347(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_4_2347(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_4_2348(const A&); -three sink_4_2348(volatile A&); -four sink_4_2348(const volatile A&); -eight sink_4_2348(const volatile A&&); - -int test4_2348() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2348(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2348(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_2348(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_2348(source())) == 8 * sizeof(long)> t5; - sa<sizeof(sink_4_2348(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_2348(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_2348(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_4_2356(const A&); -three sink_4_2356(volatile A&); -five sink_4_2356( A&&); -six sink_4_2356(const A&&); - -int test4_2356() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2356(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2356(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_2356(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_2356(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -two sink_4_2357(const A&); -three sink_4_2357(volatile A&); -five sink_4_2357( A&&); -seven sink_4_2357(volatile A&&); - -int test4_2357() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2357(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2357(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_2357(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_2357(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_4_2357(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_4_2358(const A&); -three sink_4_2358(volatile A&); -five sink_4_2358( A&&); -eight sink_4_2358(const volatile A&&); - -int test4_2358() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2358(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2358(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_2358(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_2358(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_2358(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_2358(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_4_2367(const A&); -three sink_4_2367(volatile A&); -six sink_4_2367(const A&&); -seven sink_4_2367(volatile A&&); - -int test4_2367() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2367(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2367(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_2367(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_2367(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_4_2368(const A&); -three sink_4_2368(volatile A&); -six sink_4_2368(const A&&); -eight sink_4_2368(const volatile A&&); - -int test4_2368() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2368(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2368(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_2368(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_4_2368(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_2368(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_2368(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_4_2378(const A&); -three sink_4_2378(volatile A&); -seven sink_4_2378(volatile A&&); -eight sink_4_2378(const volatile A&&); - -int test4_2378() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2378(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2378(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_2378(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_4_2378(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_2378(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_2378(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_4_2456(const A&); -four sink_4_2456(const volatile A&); -five sink_4_2456( A&&); -six sink_4_2456(const A&&); - -int test4_2456() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2456(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_4_2456(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2456(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_2456(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_2456(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_2456(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -two sink_4_2457(const A&); -four sink_4_2457(const volatile A&); -five sink_4_2457( A&&); -seven sink_4_2457(volatile A&&); - -int test4_2457() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2457(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_4_2457(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2457(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_2457(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_2457(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_2457(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_4_2457(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_4_2458(const A&); -four sink_4_2458(const volatile A&); -five sink_4_2458( A&&); -eight sink_4_2458(const volatile A&&); - -int test4_2458() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2458(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_4_2458(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2458(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_2458(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_2458(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_2458(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_2458(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_2458(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_4_2467(const A&); -four sink_4_2467(const volatile A&); -six sink_4_2467(const A&&); -seven sink_4_2467(volatile A&&); - -int test4_2467() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2467(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_4_2467(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2467(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_2467(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_2467(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_2467(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_4_2468(const A&); -four sink_4_2468(const volatile A&); -six sink_4_2468(const A&&); -eight sink_4_2468(const volatile A&&); - -int test4_2468() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2468(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_4_2468(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2468(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_2468(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_2468(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_4_2468(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_2468(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_2468(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_4_2478(const A&); -four sink_4_2478(const volatile A&); -seven sink_4_2478(volatile A&&); -eight sink_4_2478(const volatile A&&); - -int test4_2478() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2478(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_4_2478(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2478(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_2478(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_2478(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_4_2478(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_2478(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_2478(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_4_2567(const A&); -five sink_4_2567( A&&); -six sink_4_2567(const A&&); -seven sink_4_2567(volatile A&&); - -int test4_2567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2567(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_4_2567(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2567(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_2567(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_2567(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_4_2568(const A&); -five sink_4_2568( A&&); -six sink_4_2568(const A&&); -eight sink_4_2568(const volatile A&&); - -int test4_2568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2568(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_4_2568(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2568(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_2568(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_2568(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_2568(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_4_2578(const A&); -five sink_4_2578( A&&); -seven sink_4_2578(volatile A&&); -eight sink_4_2578(const volatile A&&); - -int test4_2578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2578(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_4_2578(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2578(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_2578(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_2578(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_2578(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_4_2678(const A&); -six sink_4_2678(const A&&); -seven sink_4_2678(volatile A&&); -eight sink_4_2678(const volatile A&&); - -int test4_2678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_2678(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_4_2678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_4_2678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_2678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_2678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_4_3456(volatile A&); -four sink_4_3456(const volatile A&); -five sink_4_3456( A&&); -six sink_4_3456(const A&&); - -int test4_3456() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_3456(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_4_3456(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_3456(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_3456(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_3456(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_3456(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -three sink_4_3457(volatile A&); -four sink_4_3457(const volatile A&); -five sink_4_3457( A&&); -seven sink_4_3457(volatile A&&); - -int test4_3457() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_3457(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_4_3457(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_3457(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_3457(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_3457(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_3457(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -three sink_4_3458(volatile A&); -four sink_4_3458(const volatile A&); -five sink_4_3458( A&&); -eight sink_4_3458(const volatile A&&); - -int test4_3458() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_3458(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_4_3458(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_3458(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_3458(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_3458(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_3458(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_3458(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_3458(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_4_3467(volatile A&); -four sink_4_3467(const volatile A&); -six sink_4_3467(const A&&); -seven sink_4_3467(volatile A&&); - -int test4_3467() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_3467(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_4_3467(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_3467(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_3467(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_3467(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_3467(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -three sink_4_3468(volatile A&); -four sink_4_3468(const volatile A&); -six sink_4_3468(const A&&); -eight sink_4_3468(const volatile A&&); - -int test4_3468() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_3468(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_4_3468(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_3468(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_3468(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_3468(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_4_3468(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_3468(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_3468(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_4_3478(volatile A&); -four sink_4_3478(const volatile A&); -seven sink_4_3478(volatile A&&); -eight sink_4_3478(const volatile A&&); - -int test4_3478() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_3478(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_4_3478(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_3478(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_3478(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_3478(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_4_3478(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_3478(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_3478(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_4_3567(volatile A&); -five sink_4_3567( A&&); -six sink_4_3567(const A&&); -seven sink_4_3567(volatile A&&); - -int test4_3567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_3567(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_4_3567(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_3567(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_3567(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_3567(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -three sink_4_3568(volatile A&); -five sink_4_3568( A&&); -six sink_4_3568(const A&&); -eight sink_4_3568(const volatile A&&); - -int test4_3568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_3568(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_4_3568(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_3568(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_3568(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_3568(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_3568(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_4_3578(volatile A&); -five sink_4_3578( A&&); -seven sink_4_3578(volatile A&&); -eight sink_4_3578(const volatile A&&); - -int test4_3578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_3578(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_4_3578(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_3578(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_3578(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_3578(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_3578(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_4_3678(volatile A&); -six sink_4_3678(const A&&); -seven sink_4_3678(volatile A&&); -eight sink_4_3678(const volatile A&&); - -int test4_3678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_3678(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_4_3678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_4_3678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_3678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_3678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -four sink_4_4567(const volatile A&); -five sink_4_4567( A&&); -six sink_4_4567(const A&&); -seven sink_4_4567(volatile A&&); - -int test4_4567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_4567(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_4_4567(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_4567(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_4567(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_4567(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_4567(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_4567(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -four sink_4_4568(const volatile A&); -five sink_4_4568( A&&); -six sink_4_4568(const A&&); -eight sink_4_4568(const volatile A&&); - -int test4_4568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_4568(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_4_4568(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_4568(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_4568(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_4568(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_4568(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_4568(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_4_4568(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -four sink_4_4578(const volatile A&); -five sink_4_4578( A&&); -seven sink_4_4578(volatile A&&); -eight sink_4_4578(const volatile A&&); - -int test4_4578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_4578(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_4_4578(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_4578(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_4578(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_4578(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_4578(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_4_4578(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_4578(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -four sink_4_4678(const volatile A&); -six sink_4_4678(const A&&); -seven sink_4_4678(volatile A&&); -eight sink_4_4678(const volatile A&&); - -int test4_4678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_4678(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_4_4678(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_4_4678(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_4_4678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_4_4678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_4678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_4678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -five sink_4_5678( A&&); -six sink_4_5678(const A&&); -seven sink_4_5678(volatile A&&); -eight sink_4_5678(const volatile A&&); - -int test4_5678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_4_5678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_4_5678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_4_5678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_4_5678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -int main() -{ - return test4_1234() + test4_1235() + test4_1236() + test4_1237() + test4_1238() + - test4_1245() + test4_1246() + test4_1247() + test4_1248() + test4_1256() + - test4_1257() + test4_1258() + test4_1267() + test4_1268() + test4_1278() + - test4_1345() + test4_1346() + test4_1347() + test4_1348() + test4_1356() + - test4_1357() + test4_1358() + test4_1367() + test4_1368() + test4_1378() + - test4_1456() + test4_1457() + test4_1458() + test4_1467() + test4_1468() + - test4_1478() + test4_1567() + test4_1568() + test4_1578() + test4_1678() + - test4_2345() + test4_2346() + test4_2347() + test4_2348() + test4_2356() + - test4_2357() + test4_2358() + test4_2367() + test4_2368() + test4_2378() + - test4_2456() + test4_2457() + test4_2458() + test4_2467() + test4_2468() + - test4_2478() + test4_2567() + test4_2568() + test4_2578() + test4_2678() + - test4_3456() + test4_3457() + test4_3458() + test4_3467() + test4_3468() + - test4_3478() + test4_3567() + test4_3568() + test4_3578() + test4_3678() + - test4_4567() + test4_4568() + test4_4578() + test4_4678() + test4_5678(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv5n.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv5n.C deleted file mode 100644 index d9b8cd239..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv5n.C +++ /dev/null @@ -1,806 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {char x[1];}; -struct two {char x[2];}; -struct three {char x[3];}; -struct four {char x[4];}; -struct five {char x[5];}; -struct six {char x[6];}; -struct seven {char x[7];}; -struct eight {char x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 5 at a time - -one sink_5_12345( A&); // { dg-message "one sink_5_12345|no known conversion" } -two sink_5_12345(const A&); // { dg-message "note" } -three sink_5_12345(volatile A&); // { dg-message "note" } -four sink_5_12345(const volatile A&); // { dg-message "note" } -five sink_5_12345( A&&); // { dg-message "note" } - -int test5_12345() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12345(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 45 } - sink_5_12345(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 47 } - return 0; -} - -one sink_5_12346( A&); // { dg-message "one sink_5_12346|no known conversion" } -two sink_5_12346(const A&); // { dg-message "note" } -three sink_5_12346(volatile A&); // { dg-message "note" } -four sink_5_12346(const volatile A&); // { dg-message "note" } -six sink_5_12346(const A&&); // { dg-message "note" } - -int test5_12346() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12346(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 64 } - sink_5_12346(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 66 } - return 0; -} - -one sink_5_12347( A&); // { dg-message "one sink_5_12347|no known conversion" } -two sink_5_12347(const A&); // { dg-message "note" } -three sink_5_12347(volatile A&); // { dg-message "note" } -four sink_5_12347(const volatile A&); // { dg-message "note" } -seven sink_5_12347(volatile A&&); // { dg-message "note" } - -int test5_12347() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12347(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 83 } - return 0; -} - -one sink_5_12356( A&); // { dg-message "one sink_5_12356|no known conversion" } -two sink_5_12356(const A&); // { dg-message "note" } -three sink_5_12356(volatile A&); // { dg-message "note" } -five sink_5_12356( A&&); // { dg-message "note" } -six sink_5_12356(const A&&); // { dg-message "note" } - -int test5_12356() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12356(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 100 } - sink_5_12356(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 102 } - sink_5_12356(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 104 } - return 0; -} - -one sink_5_12357( A&); // { dg-message "one sink_5_12357|no known conversion" } -two sink_5_12357(const A&); // { dg-message "note" } -three sink_5_12357(volatile A&); // { dg-message "note" } -five sink_5_12357( A&&); // { dg-message "note" } -seven sink_5_12357(volatile A&&); // { dg-message "note" } - -int test5_12357() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12357(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 121 } - sink_5_12357(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 123 } - return 0; -} - -one sink_5_12358( A&); -two sink_5_12358(const A&); -three sink_5_12358(volatile A&); -five sink_5_12358( A&&); -eight sink_5_12358(const volatile A&&); // { dg-message "" } - -int test5_12358() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12358(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_5_12367( A&); // { dg-message "one sink_5_12367|no known conversion" } -two sink_5_12367(const A&); // { dg-message "note" } -three sink_5_12367(volatile A&); // { dg-message "note" } -six sink_5_12367(const A&&); // { dg-message "note" } -seven sink_5_12367(volatile A&&); // { dg-message "note" } - -int test5_12367() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12367(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 156 } - sink_5_12367(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 158 } - sink_5_12367(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 160 } - return 0; -} - -one sink_5_12368( A&); -two sink_5_12368(const A&); -three sink_5_12368(volatile A&); -six sink_5_12368(const A&&); -eight sink_5_12368(const volatile A&&); // { dg-message "" } - -int test5_12368() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12368(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_5_12378( A&); -two sink_5_12378(const A&); -three sink_5_12378(volatile A&); -seven sink_5_12378(volatile A&&); -eight sink_5_12378(const volatile A&&); // { dg-message "" } - -int test5_12378() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12378(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_5_12456( A&); // { dg-message "one sink_5_12456|no known conversion" } -two sink_5_12456(const A&); // { dg-message "note" } -four sink_5_12456(const volatile A&); // { dg-message "note" } -five sink_5_12456( A&&); // { dg-message "note" } -six sink_5_12456(const A&&); // { dg-message "note" } - -int test5_12456() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12456(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 209 } - sink_5_12456(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 211 } - return 0; -} - -one sink_5_12457( A&); // { dg-message "one sink_5_12457|no known conversion" } -two sink_5_12457(const A&); // { dg-message "note" } -four sink_5_12457(const volatile A&); // { dg-message "note" } -five sink_5_12457( A&&); // { dg-message "note" } -seven sink_5_12457(volatile A&&); // { dg-message "note" } - -int test5_12457() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12457(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 228 } - return 0; -} - -one sink_5_12467( A&); // { dg-message "one sink_5_12467|no known conversion" } -two sink_5_12467(const A&); // { dg-message "note" } -four sink_5_12467(const volatile A&); // { dg-message "note" } -six sink_5_12467(const A&&); // { dg-message "note" } -seven sink_5_12467(volatile A&&); // { dg-message "note" } - -int test5_12467() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12467(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 245 } - sink_5_12467(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 247 } - return 0; -} - -one sink_5_12567( A&); // { dg-message "one sink_5_12567|no known conversion" } -two sink_5_12567(const A&); // { dg-message "note" } -five sink_5_12567( A&&); // { dg-message "note" } -six sink_5_12567(const A&&); // { dg-message "note" } -seven sink_5_12567(volatile A&&); // { dg-message "" } - -int test5_12567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12567(va); // { dg-error "lvalue" } - sink_5_12567(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 265 } - sink_5_12567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 267 } - return 0; -} - -one sink_5_12568( A&); -two sink_5_12568(const A&); -five sink_5_12568( A&&); -six sink_5_12568(const A&&); -eight sink_5_12568(const volatile A&&); // { dg-message "" } - -int test5_12568() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12568(va); // { dg-error "lvalue" } - sink_5_12568(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_5_12578( A&); -two sink_5_12578(const A&); -five sink_5_12578( A&&); -seven sink_5_12578(volatile A&&); // { dg-message "" } -eight sink_5_12578(const volatile A&&); // { dg-message "" } - -int test5_12578() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12578(va); // { dg-error "lvalue" } - sink_5_12578(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_5_12678( A&); -two sink_5_12678(const A&); // { dg-message "note" } -six sink_5_12678(const A&&); // { dg-message "note" } -seven sink_5_12678(volatile A&&); // { dg-message "" } -eight sink_5_12678(const volatile A&&); // { dg-message "" } - -int test5_12678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_12678(va); // { dg-error "lvalue" } - sink_5_12678(cva); // { dg-error "lvalue" } - sink_5_12678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 320 } - return 0; -} - -one sink_5_13456( A&); // { dg-message "one sink_5_13456|no known conversion" } -three sink_5_13456(volatile A&); // { dg-message "note" } -four sink_5_13456(const volatile A&); // { dg-message "note" } -five sink_5_13456( A&&); // { dg-message "note" } -six sink_5_13456(const A&&); // { dg-message "note" } - -int test5_13456() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_13456(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 337 } - sink_5_13456(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 339 } - return 0; -} - -one sink_5_13457( A&); // { dg-message "one sink_5_13457|no known conversion" } -three sink_5_13457(volatile A&); // { dg-message "note" } -four sink_5_13457(const volatile A&); // { dg-message "note" } -five sink_5_13457( A&&); // { dg-message "note" } -seven sink_5_13457(volatile A&&); // { dg-message "note" } - -int test5_13457() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_13457(c_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 356 } - sink_5_13457(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 358 } - return 0; -} - -one sink_5_13467( A&); // { dg-message "one sink_5_13467|no known conversion" } -three sink_5_13467(volatile A&); // { dg-message "note" } -four sink_5_13467(const volatile A&); // { dg-message "note" } -six sink_5_13467(const A&&); // { dg-message "note" } -seven sink_5_13467(volatile A&&); // { dg-message "note" } - -int test5_13467() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_13467(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 375 } - sink_5_13467(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 377 } - return 0; -} - -one sink_5_13567( A&); // { dg-message "one sink_5_13567|no known conversion" } -three sink_5_13567(volatile A&); // { dg-message "note" } -five sink_5_13567( A&&); // { dg-message "note" } -six sink_5_13567(const A&&); // { dg-message "" } -seven sink_5_13567(volatile A&&); // { dg-message "note" } - -int test5_13567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_13567(ca); // { dg-error "lvalue" } - sink_5_13567(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 395 } - sink_5_13567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 397 } - return 0; -} - -one sink_5_13568( A&); -three sink_5_13568(volatile A&); -five sink_5_13568( A&&); -six sink_5_13568(const A&&); // { dg-message "" } -eight sink_5_13568(const volatile A&&); // { dg-message "" } - -int test5_13568() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_13568(ca); // { dg-error "lvalue" } - sink_5_13568(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_5_13578( A&); -three sink_5_13578(volatile A&); -five sink_5_13578( A&&); -seven sink_5_13578(volatile A&&); -eight sink_5_13578(const volatile A&&); // { dg-message "" } - -int test5_13578() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_13578(ca); // { dg-error "lvalue" } - sink_5_13578(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_5_13678( A&); -three sink_5_13678(volatile A&); -six sink_5_13678(const A&&); // { dg-message "" } -seven sink_5_13678(volatile A&&); // { dg-message "note" } -eight sink_5_13678(const volatile A&&); // { dg-message "" } - -int test5_13678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_13678(ca); // { dg-error "lvalue" } - sink_5_13678(cva); // { dg-error "lvalue" } - sink_5_13678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 450 } - return 0; -} - -one sink_5_14567( A&); // { dg-message "one sink_5_14567|no known conversion" } -four sink_5_14567(const volatile A&); // { dg-message "note" } -five sink_5_14567( A&&); // { dg-message "note" } -six sink_5_14567(const A&&); // { dg-message "note" } -seven sink_5_14567(volatile A&&); // { dg-message "note" } - -int test5_14567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_14567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 467 } - return 0; -} - -one sink_5_14678( A&); -four sink_5_14678(const volatile A&); -six sink_5_14678(const A&&); // { dg-message "note" } -seven sink_5_14678(volatile A&&); // { dg-message "note" } -eight sink_5_14678(const volatile A&&); // { dg-message "note" } - -int test5_14678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_14678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 484 } - return 0; -} - -one sink_5_15678( A&); -five sink_5_15678( A&&); -six sink_5_15678(const A&&); // { dg-message "" } -seven sink_5_15678(volatile A&&); // { dg-message "" } -eight sink_5_15678(const volatile A&&); // { dg-message "" } - -int test5_15678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_15678(ca); // { dg-error "lvalue" } - sink_5_15678(va); // { dg-error "lvalue" } - sink_5_15678(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_5_23456(const A&); // { dg-message "two sink_5_23456|no known conversion" } -three sink_5_23456(volatile A&); // { dg-message "note" } -four sink_5_23456(const volatile A&); // { dg-message "note" } -five sink_5_23456( A&&); // { dg-message "note" } -six sink_5_23456(const A&&); // { dg-message "note" } - -int test5_23456() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_23456(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 519 } - sink_5_23456(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 521 } - sink_5_23456(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 523 } - return 0; -} - -two sink_5_23457(const A&); // { dg-message "two sink_5_23457|no known conversion" } -three sink_5_23457(volatile A&); // { dg-message "note" } -four sink_5_23457(const volatile A&); // { dg-message "note" } -five sink_5_23457( A&&); // { dg-message "note" } -seven sink_5_23457(volatile A&&); // { dg-message "note" } - -int test5_23457() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_23457(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 540 } - sink_5_23457(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 542 } - return 0; -} - -two sink_5_23458(const A&); // { dg-message "note" } -three sink_5_23458(volatile A&); // { dg-message "note" } -four sink_5_23458(const volatile A&); // { dg-message "note" } -five sink_5_23458( A&&); // { dg-message "note" } -eight sink_5_23458(const volatile A&&); // { dg-message "note" } - -int test5_23458() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_23458(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 559 } - return 0; -} - -two sink_5_23467(const A&); // { dg-message "two sink_5_23467|no known conversion" } -three sink_5_23467(volatile A&); // { dg-message "note" } -four sink_5_23467(const volatile A&); // { dg-message "note" } -six sink_5_23467(const A&&); // { dg-message "note" } -seven sink_5_23467(volatile A&&); // { dg-message "note" } - -int test5_23467() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_23467(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 576 } - sink_5_23467(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 578 } - sink_5_23467(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 580 } - return 0; -} - -two sink_5_23468(const A&); // { dg-message "note" } -three sink_5_23468(volatile A&); // { dg-message "note" } -four sink_5_23468(const volatile A&); // { dg-message "note" } -six sink_5_23468(const A&&); // { dg-message "note" } -eight sink_5_23468(const volatile A&&); // { dg-message "note" } - -int test5_23468() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_23468(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 597 } - return 0; -} - -two sink_5_23478(const A&); // { dg-message "note" } -three sink_5_23478(volatile A&); // { dg-message "note" } -four sink_5_23478(const volatile A&); // { dg-message "note" } -seven sink_5_23478(volatile A&&); // { dg-message "note" } -eight sink_5_23478(const volatile A&&); // { dg-message "note" } - -int test5_23478() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_23478(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 614 } - return 0; -} - -two sink_5_23567(const A&); // { dg-message "two sink_5_23567|no known conversion" } -three sink_5_23567(volatile A&); // { dg-message "note" } -five sink_5_23567( A&&); // { dg-message "note" } -six sink_5_23567(const A&&); // { dg-message "note" } -seven sink_5_23567(volatile A&&); // { dg-message "note" } - -int test5_23567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_23567(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 631 } - sink_5_23567(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 633 } - sink_5_23567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 635 } - return 0; -} - -two sink_5_23568(const A&); // { dg-message "note" } -three sink_5_23568(volatile A&); // { dg-message "note" } -five sink_5_23568( A&&); // { dg-message "note" } -six sink_5_23568(const A&&); // { dg-message "note" } -eight sink_5_23568(const volatile A&&); // { dg-message "" } - -int test5_23568() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_23568(cva); // { dg-error "lvalue" } - sink_5_23568(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 653 } - return 0; -} - -two sink_5_23578(const A&); // { dg-message "note" } -three sink_5_23578(volatile A&); // { dg-message "note" } -five sink_5_23578( A&&); // { dg-message "note" } -seven sink_5_23578(volatile A&&); // { dg-message "note" } -eight sink_5_23578(const volatile A&&); // { dg-message "" } - -int test5_23578() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_23578(cva); // { dg-error "lvalue" } - sink_5_23578(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 671 } - return 0; -} - -two sink_5_23678(const A&); // { dg-message "note" } -three sink_5_23678(volatile A&); // { dg-message "note" } -six sink_5_23678(const A&&); // { dg-message "note" } -seven sink_5_23678(volatile A&&); // { dg-message "note" } -eight sink_5_23678(const volatile A&&); // { dg-message "" } - -int test5_23678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_23678(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 688 } - sink_5_23678(cva); // { dg-error "lvalue" } - sink_5_23678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 691 } - return 0; -} - -two sink_5_24567(const A&); // { dg-message "two sink_5_24567|no known conversion" } -four sink_5_24567(const volatile A&); // { dg-message "note" } -five sink_5_24567( A&&); // { dg-message "note" } -six sink_5_24567(const A&&); // { dg-message "note" } -seven sink_5_24567(volatile A&&); // { dg-message "note" } - -int test5_24567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_24567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 708 } - return 0; -} - -two sink_5_24678(const A&); // { dg-message "note" } -four sink_5_24678(const volatile A&); -six sink_5_24678(const A&&); // { dg-message "note" } -seven sink_5_24678(volatile A&&); // { dg-message "note" } -eight sink_5_24678(const volatile A&&); // { dg-message "note" } - -int test5_24678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_24678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 725 } - return 0; -} - -two sink_5_25678(const A&); -five sink_5_25678( A&&); -six sink_5_25678(const A&&); -seven sink_5_25678(volatile A&&); // { dg-message "" } -eight sink_5_25678(const volatile A&&); // { dg-message "" } - -int test5_25678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_25678(va); // { dg-error "lvalue" } - sink_5_25678(cva); // { dg-error "lvalue" } - return 0; -} - -three sink_5_34567(volatile A&); // { dg-message "three sink_5_34567|no known conversion" } -four sink_5_34567(const volatile A&); // { dg-message "note" } -five sink_5_34567( A&&); // { dg-message "note" } -six sink_5_34567(const A&&); // { dg-message "note" } -seven sink_5_34567(volatile A&&); // { dg-message "note" } - -int test5_34567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_34567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 759 } - return 0; -} - -three sink_5_34678(volatile A&); -four sink_5_34678(const volatile A&); -six sink_5_34678(const A&&); // { dg-message "note" } -seven sink_5_34678(volatile A&&); // { dg-message "note" } -eight sink_5_34678(const volatile A&&); // { dg-message "note" } - -int test5_34678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_34678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 776 } - return 0; -} - -three sink_5_35678(volatile A&); -five sink_5_35678( A&&); -six sink_5_35678(const A&&); // { dg-message "" } -seven sink_5_35678(volatile A&&); -eight sink_5_35678(const volatile A&&); // { dg-message "" } - -int test5_35678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_5_35678(ca); // { dg-error "lvalue" } - sink_5_35678(cva); // { dg-error "lvalue" } - return 0; -} - -int main() -{ - return test5_12356() + test5_12357() + test5_12367() + test5_12467() + - test5_12567() + test5_12678() + test5_13467() + test5_13567() + - test5_13678() + test5_13678() + test5_23456() + test5_23457() + - test5_23458() + test5_23467() + test5_23468() + test5_23478() + - test5_23567() + test5_23568() + test5_23578() + test5_23678() + - test5_24678() + test5_34678(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv5p.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv5p.C deleted file mode 100644 index b8ab54588..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv5p.C +++ /dev/null @@ -1,1256 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; -struct three {long x[3];}; -struct four {long x[4];}; -struct five {long x[5];}; -struct six {long x[6];}; -struct seven {long x[7];}; -struct eight {long x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 5 at a time - -one sink_5_12345( A&); -two sink_5_12345(const A&); -three sink_5_12345(volatile A&); -four sink_5_12345(const volatile A&); -five sink_5_12345( A&&); - -int test5_12345() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12345(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12345(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12345(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_12345(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_12345(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_12345(c_source())) == 2* sizeof(long)> t6; - return 0; -} - -one sink_5_12346( A&); -two sink_5_12346(const A&); -three sink_5_12346(volatile A&); -four sink_5_12346(const volatile A&); -six sink_5_12346(const A&&); - -int test5_12346() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12346(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12346(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12346(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_12346(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_12346(source())) == 6* sizeof(long)> t5; - sa<sizeof(sink_5_12346(c_source())) == 6* sizeof(long)> t6; - return 0; -} - -one sink_5_12347( A&); -two sink_5_12347(const A&); -three sink_5_12347(volatile A&); -four sink_5_12347(const volatile A&); -seven sink_5_12347(volatile A&&); - -int test5_12347() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12347(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12347(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12347(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_12347(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_12347(source())) == 7* sizeof(long)> t5; - sa<sizeof(sink_5_12347(c_source())) == 2* sizeof(long)> t6; - sa<sizeof(sink_5_12347(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -one sink_5_12348( A&); -two sink_5_12348(const A&); -three sink_5_12348(volatile A&); -four sink_5_12348(const volatile A&); -eight sink_5_12348(const volatile A&&); - -int test5_12348() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12348(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12348(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12348(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_12348(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_12348(source())) == 8* sizeof(long)> t5; - sa<sizeof(sink_5_12348(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_12348(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_12348(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_12356( A&); -two sink_5_12356(const A&); -three sink_5_12356(volatile A&); -five sink_5_12356( A&&); -six sink_5_12356(const A&&); - -int test5_12356() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12356(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12356(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12356(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_12356(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_12356(c_source())) == 6* sizeof(long)> t6; - return 0; -} - -one sink_5_12357( A&); -two sink_5_12357(const A&); -three sink_5_12357(volatile A&); -five sink_5_12357( A&&); -seven sink_5_12357(volatile A&&); - -int test5_12357() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12357(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12357(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12357(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_12357(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_12357(c_source())) == 2* sizeof(long)> t6; - sa<sizeof(sink_5_12357(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -one sink_5_12358( A&); -two sink_5_12358(const A&); -three sink_5_12358(volatile A&); -five sink_5_12358( A&&); -eight sink_5_12358(const volatile A&&); - -int test5_12358() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12358(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12358(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12358(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_12358(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_12358(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_12358(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_12358(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_12367( A&); -two sink_5_12367(const A&); -three sink_5_12367(volatile A&); -six sink_5_12367(const A&&); -seven sink_5_12367(volatile A&&); - -int test5_12367() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12367(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12367(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12367(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_12367(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_12367(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -one sink_5_12368( A&); -two sink_5_12368(const A&); -three sink_5_12368(volatile A&); -six sink_5_12368(const A&&); -eight sink_5_12368(const volatile A&&); - -int test5_12368() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12368(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12368(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12368(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_12368(source())) == 6* sizeof(long)> t5; - sa<sizeof(sink_5_12368(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_12368(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_12368(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_12378( A&); -two sink_5_12378(const A&); -three sink_5_12378(volatile A&); -seven sink_5_12378(volatile A&&); -eight sink_5_12378(const volatile A&&); - -int test5_12378() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12378(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12378(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12378(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_12378(source())) == 7* sizeof(long)> t5; - sa<sizeof(sink_5_12378(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_12378(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_12378(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_12456( A&); -two sink_5_12456(const A&); -four sink_5_12456(const volatile A&); -five sink_5_12456( A&&); -six sink_5_12456(const A&&); - -int test5_12456() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12456(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12456(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12456(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_12456(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_12456(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_12456(c_source())) == 6* sizeof(long)> t6; - return 0; -} - -one sink_5_12457( A&); -two sink_5_12457(const A&); -four sink_5_12457(const volatile A&); -five sink_5_12457( A&&); -seven sink_5_12457(volatile A&&); - -int test5_12457() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12457(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12457(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12457(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_12457(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_12457(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_12457(c_source())) == 2* sizeof(long)> t6; - sa<sizeof(sink_5_12457(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -one sink_5_12458( A&); -two sink_5_12458(const A&); -four sink_5_12458(const volatile A&); -five sink_5_12458( A&&); -eight sink_5_12458(const volatile A&&); - -int test5_12458() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12458(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12458(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12458(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_12458(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_12458(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_12458(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_12458(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_12458(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_12467( A&); -two sink_5_12467(const A&); -four sink_5_12467(const volatile A&); -six sink_5_12467(const A&&); -seven sink_5_12467(volatile A&&); - -int test5_12467() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12467(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12467(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12467(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_12467(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_12467(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_12467(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -one sink_5_12468( A&); -two sink_5_12468(const A&); -four sink_5_12468(const volatile A&); -six sink_5_12468(const A&&); -eight sink_5_12468(const volatile A&&); - -int test5_12468() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12468(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12468(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12468(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_12468(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_12468(source())) == 6* sizeof(long)> t5; - sa<sizeof(sink_5_12468(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_12468(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_12468(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_12478( A&); -two sink_5_12478(const A&); -four sink_5_12478(const volatile A&); -seven sink_5_12478(volatile A&&); -eight sink_5_12478(const volatile A&&); - -int test5_12478() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12478(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12478(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12478(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_12478(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_12478(source())) == 7* sizeof(long)> t5; - sa<sizeof(sink_5_12478(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_12478(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_12478(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_12567( A&); -two sink_5_12567(const A&); -five sink_5_12567( A&&); -six sink_5_12567(const A&&); -seven sink_5_12567(volatile A&&); - -int test5_12567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12567(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12567(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12567(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_12567(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_12567(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -one sink_5_12568( A&); -two sink_5_12568(const A&); -five sink_5_12568( A&&); -six sink_5_12568(const A&&); -eight sink_5_12568(const volatile A&&); - -int test5_12568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12568(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12568(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12568(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_12568(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_12568(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_12568(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_12578( A&); -two sink_5_12578(const A&); -five sink_5_12578( A&&); -seven sink_5_12578(volatile A&&); -eight sink_5_12578(const volatile A&&); - -int test5_12578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12578(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12578(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12578(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_12578(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_12578(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_12578(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_12678( A&); -two sink_5_12678(const A&); -six sink_5_12678(const A&&); -seven sink_5_12678(volatile A&&); -eight sink_5_12678(const volatile A&&); - -int test5_12678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_12678(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_12678(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_12678(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_12678(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_12678(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_13456( A&); -three sink_5_13456(volatile A&); -four sink_5_13456(const volatile A&); -five sink_5_13456( A&&); -six sink_5_13456(const A&&); - -int test5_13456() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_13456(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_13456(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_13456(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_13456(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_13456(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_13456(c_source())) == 6* sizeof(long)> t6; - return 0; -} - -one sink_5_13457( A&); -three sink_5_13457(volatile A&); -four sink_5_13457(const volatile A&); -five sink_5_13457( A&&); -seven sink_5_13457(volatile A&&); - -int test5_13457() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_13457(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_13457(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_13457(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_13457(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_13457(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_13457(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -one sink_5_13458( A&); -three sink_5_13458(volatile A&); -four sink_5_13458(const volatile A&); -five sink_5_13458( A&&); -eight sink_5_13458(const volatile A&&); - -int test5_13458() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_13458(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_13458(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_13458(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_13458(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_13458(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_13458(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_13458(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_13458(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_13467( A&); -three sink_5_13467(volatile A&); -four sink_5_13467(const volatile A&); -six sink_5_13467(const A&&); -seven sink_5_13467(volatile A&&); - -int test5_13467() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_13467(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_13467(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_13467(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_13467(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_13467(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_13467(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -one sink_5_13468( A&); -three sink_5_13468(volatile A&); -four sink_5_13468(const volatile A&); -six sink_5_13468(const A&&); -eight sink_5_13468(const volatile A&&); - -int test5_13468() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_13468(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_13468(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_13468(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_13468(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_13468(source())) == 6* sizeof(long)> t5; - sa<sizeof(sink_5_13468(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_13468(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_13468(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_13478( A&); -three sink_5_13478(volatile A&); -four sink_5_13478(const volatile A&); -seven sink_5_13478(volatile A&&); -eight sink_5_13478(const volatile A&&); - -int test5_13478() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_13478(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_13478(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_13478(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_13478(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_13478(source())) == 7* sizeof(long)> t5; - sa<sizeof(sink_5_13478(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_13478(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_13478(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_13567( A&); -three sink_5_13567(volatile A&); -five sink_5_13567( A&&); -six sink_5_13567(const A&&); -seven sink_5_13567(volatile A&&); - -int test5_13567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_13567(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_13567(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_13567(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_13567(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_13567(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -one sink_5_13568( A&); -three sink_5_13568(volatile A&); -five sink_5_13568( A&&); -six sink_5_13568(const A&&); -eight sink_5_13568(const volatile A&&); - -int test5_13568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_13568(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_13568(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_13568(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_13568(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_13568(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_13568(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_13578( A&); -three sink_5_13578(volatile A&); -five sink_5_13578( A&&); -seven sink_5_13578(volatile A&&); -eight sink_5_13578(const volatile A&&); - -int test5_13578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_13578(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_13578(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_13578(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_13578(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_13578(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_13578(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_13678( A&); -three sink_5_13678(volatile A&); -six sink_5_13678(const A&&); -seven sink_5_13678(volatile A&&); -eight sink_5_13678(const volatile A&&); - -int test5_13678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_13678(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_13678(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_13678(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_13678(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_13678(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_14567( A&); -four sink_5_14567(const volatile A&); -five sink_5_14567( A&&); -six sink_5_14567(const A&&); -seven sink_5_14567(volatile A&&); - -int test5_14567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_14567(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_14567(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_14567(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_14567(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_14567(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_14567(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_14567(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -one sink_5_14568( A&); -four sink_5_14568(const volatile A&); -five sink_5_14568( A&&); -six sink_5_14568(const A&&); -eight sink_5_14568(const volatile A&&); - -int test5_14568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_14568(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_14568(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_14568(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_14568(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_14568(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_14568(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_14568(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_14568(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_14578( A&); -four sink_5_14578(const volatile A&); -five sink_5_14578( A&&); -seven sink_5_14578(volatile A&&); -eight sink_5_14578(const volatile A&&); - -int test5_14578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_14578(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_14578(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_14578(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_14578(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_14578(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_14578(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_14578(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_14578(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_14678( A&); -four sink_5_14678(const volatile A&); -six sink_5_14678(const A&&); -seven sink_5_14678(volatile A&&); -eight sink_5_14678(const volatile A&&); - -int test5_14678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_14678(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_14678(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_14678(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_14678(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_14678(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_14678(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_14678(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -one sink_5_15678( A&); -five sink_5_15678( A&&); -six sink_5_15678(const A&&); -seven sink_5_15678(volatile A&&); -eight sink_5_15678(const volatile A&&); - -int test5_15678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_15678(a)) == 1* sizeof(long)> t1; - sa<sizeof(sink_5_15678(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_15678(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_15678(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_15678(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -two sink_5_23456(const A&); -three sink_5_23456(volatile A&); -four sink_5_23456(const volatile A&); -five sink_5_23456( A&&); -six sink_5_23456(const A&&); - -int test5_23456() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_23456(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_23456(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_23456(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_23456(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_23456(c_source())) == 6* sizeof(long)> t6; - return 0; -} - -two sink_5_23457(const A&); -three sink_5_23457(volatile A&); -four sink_5_23457(const volatile A&); -five sink_5_23457( A&&); -seven sink_5_23457(volatile A&&); - -int test5_23457() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_23457(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_23457(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_23457(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_23457(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_23457(c_source())) == 2* sizeof(long)> t6; - sa<sizeof(sink_5_23457(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -two sink_5_23458(const A&); -three sink_5_23458(volatile A&); -four sink_5_23458(const volatile A&); -five sink_5_23458( A&&); -eight sink_5_23458(const volatile A&&); - -int test5_23458() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_23458(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_23458(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_23458(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_23458(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_23458(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_23458(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_23458(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -two sink_5_23467(const A&); -three sink_5_23467(volatile A&); -four sink_5_23467(const volatile A&); -six sink_5_23467(const A&&); -seven sink_5_23467(volatile A&&); - -int test5_23467() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_23467(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_23467(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_23467(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_23467(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_23467(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -two sink_5_23468(const A&); -three sink_5_23468(volatile A&); -four sink_5_23468(const volatile A&); -six sink_5_23468(const A&&); -eight sink_5_23468(const volatile A&&); - -int test5_23468() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_23468(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_23468(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_23468(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_23468(source())) == 6* sizeof(long)> t5; - sa<sizeof(sink_5_23468(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_23468(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_23468(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -two sink_5_23478(const A&); -three sink_5_23478(volatile A&); -four sink_5_23478(const volatile A&); -seven sink_5_23478(volatile A&&); -eight sink_5_23478(const volatile A&&); - -int test5_23478() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_23478(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_23478(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_23478(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_23478(source())) == 7* sizeof(long)> t5; - sa<sizeof(sink_5_23478(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_23478(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_23478(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -two sink_5_23567(const A&); -three sink_5_23567(volatile A&); -five sink_5_23567( A&&); -six sink_5_23567(const A&&); -seven sink_5_23567(volatile A&&); - -int test5_23567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_23567(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_23567(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_23567(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_23567(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_23567(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -two sink_5_23568(const A&); -three sink_5_23568(volatile A&); -five sink_5_23568( A&&); -six sink_5_23568(const A&&); -eight sink_5_23568(const volatile A&&); - -int test5_23568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_23568(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_23568(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_23568(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_23568(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_23568(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_23568(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -two sink_5_23578(const A&); -three sink_5_23578(volatile A&); -five sink_5_23578( A&&); -seven sink_5_23578(volatile A&&); -eight sink_5_23578(const volatile A&&); - -int test5_23578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_23578(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_23578(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_23578(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_23578(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_23578(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_23578(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -two sink_5_23678(const A&); -three sink_5_23678(volatile A&); -six sink_5_23678(const A&&); -seven sink_5_23678(volatile A&&); -eight sink_5_23678(const volatile A&&); - -int test5_23678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_23678(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_23678(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_23678(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_23678(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_23678(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -two sink_5_24567(const A&); -four sink_5_24567(const volatile A&); -five sink_5_24567( A&&); -six sink_5_24567(const A&&); -seven sink_5_24567(volatile A&&); - -int test5_24567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_24567(a)) == 2* sizeof(long)> t1; - sa<sizeof(sink_5_24567(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_24567(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_24567(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_24567(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_24567(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_24567(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -two sink_5_24568(const A&); -four sink_5_24568(const volatile A&); -five sink_5_24568( A&&); -six sink_5_24568(const A&&); -eight sink_5_24568(const volatile A&&); - -int test5_24568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_24568(a)) == 2* sizeof(long)> t1; - sa<sizeof(sink_5_24568(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_24568(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_24568(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_24568(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_24568(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_24568(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_24568(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -two sink_5_24578(const A&); -four sink_5_24578(const volatile A&); -five sink_5_24578( A&&); -seven sink_5_24578(volatile A&&); -eight sink_5_24578(const volatile A&&); - -int test5_24578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_24578(a)) == 2* sizeof(long)> t1; - sa<sizeof(sink_5_24578(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_24578(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_24578(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_24578(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_24578(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_24578(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_24578(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -two sink_5_24678(const A&); -four sink_5_24678(const volatile A&); -six sink_5_24678(const A&&); -seven sink_5_24678(volatile A&&); -eight sink_5_24678(const volatile A&&); - -int test5_24678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_24678(a)) == 2* sizeof(long)> t1; - sa<sizeof(sink_5_24678(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_24678(va)) == 4* sizeof(long)> t3; - sa<sizeof(sink_5_24678(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_24678(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_24678(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_24678(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -two sink_5_25678(const A&); -five sink_5_25678( A&&); -six sink_5_25678(const A&&); -seven sink_5_25678(volatile A&&); -eight sink_5_25678(const volatile A&&); - -int test5_25678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_25678(a)) == 2* sizeof(long)> t1; - sa<sizeof(sink_5_25678(ca)) == 2* sizeof(long)> t2; - sa<sizeof(sink_5_25678(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_25678(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_25678(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_25678(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -three sink_5_34567(volatile A&); -four sink_5_34567(const volatile A&); -five sink_5_34567( A&&); -six sink_5_34567(const A&&); -seven sink_5_34567(volatile A&&); - -int test5_34567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_34567(a)) == 3* sizeof(long)> t1; - sa<sizeof(sink_5_34567(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_34567(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_34567(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_34567(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_34567(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_34567(v_source())) == 7* sizeof(long)> t7; - return 0; -} - -three sink_5_34568(volatile A&); -four sink_5_34568(const volatile A&); -five sink_5_34568( A&&); -six sink_5_34568(const A&&); -eight sink_5_34568(const volatile A&&); - -int test5_34568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_34568(a)) == 3* sizeof(long)> t1; - sa<sizeof(sink_5_34568(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_34568(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_34568(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_34568(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_34568(c_source())) == 6* sizeof(long)> t6; - sa<sizeof(sink_5_34568(v_source())) == 8* sizeof(long)> t7; - sa<sizeof(sink_5_34568(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -three sink_5_34578(volatile A&); -four sink_5_34578(const volatile A&); -five sink_5_34578( A&&); -seven sink_5_34578(volatile A&&); -eight sink_5_34578(const volatile A&&); - -int test5_34578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_34578(a)) == 3* sizeof(long)> t1; - sa<sizeof(sink_5_34578(ca)) == 4* sizeof(long)> t2; - sa<sizeof(sink_5_34578(va)) == 3* sizeof(long)> t3; - sa<sizeof(sink_5_34578(cva)) == 4* sizeof(long)> t4; - sa<sizeof(sink_5_34578(source())) == 5* sizeof(long)> t5; - sa<sizeof(sink_5_34578(c_source())) == 8* sizeof(long)> t6; - sa<sizeof(sink_5_34578(v_source())) == 7* sizeof(long)> t7; - sa<sizeof(sink_5_34578(cv_source())) == 8* sizeof(long)> t8; - return 0; -} - -three sink_5_34678(volatile A&); -four sink_5_34678(const volatile A&); -six sink_5_34678(const A&&); -seven sink_5_34678(volatile A&&); -eight sink_5_34678(const volatile A&&); - -int test5_34678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_34678(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_5_34678(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_5_34678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_5_34678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_5_34678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_5_34678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_5_34678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_5_35678(volatile A&); -five sink_5_35678( A&&); -six sink_5_35678(const A&&); -seven sink_5_35678(volatile A&&); -eight sink_5_35678(const volatile A&&); - -int test5_35678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_35678(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_5_35678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_5_35678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_5_35678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_5_35678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_5_35678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -four sink_5_45678(const volatile A&); -five sink_5_45678( A&&); -six sink_5_45678(const A&&); -seven sink_5_45678(volatile A&&); -eight sink_5_45678(const volatile A&&); - -int test5_45678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_5_45678(a)) == 4 * sizeof(long)> t1; - sa<sizeof(sink_5_45678(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_5_45678(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_5_45678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_5_45678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_5_45678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_5_45678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_5_45678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -int main() -{ - return test5_12345() + test5_12346() + test5_12347() + test5_12348() + - test5_12356() + test5_12357() + test5_12358() + test5_12367() + - test5_12368() + test5_12378() + test5_12456() + test5_12457() + - test5_12458() + test5_12467() + test5_12468() + test5_12478() + - test5_12567() + test5_12568() + test5_12578() + test5_12678() + - test5_13456() + test5_13457() + test5_13458() + test5_13467() + - test5_13468() + test5_13478() + test5_13567() + test5_13568() + - test5_13578() + test5_13678() + test5_14567() + test5_14568() + - test5_14578() + test5_14678() + test5_15678() + test5_23456() + - test5_23457() + test5_23458() + test5_23467() + test5_23468() + - test5_23478() + test5_23567() + test5_23568() + test5_23578() + - test5_23678() + test5_24567() + test5_24568() + test5_24578() + - test5_24678() + test5_25678() + test5_34567() + test5_34568() + - test5_34578() + test5_34678() + test5_35678() + test5_45678(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv6n.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv6n.C deleted file mode 100644 index fbc932de1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv6n.C +++ /dev/null @@ -1,372 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {char x[1];}; -struct two {char x[2];}; -struct three {char x[3];}; -struct four {char x[4];}; -struct five {char x[5];}; -struct six {char x[6];}; -struct seven {char x[7];}; -struct eight {char x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 6 at a time - -one sink_6_123456( A&); // { dg-message "one sink_6_123456|no known conversion" } -two sink_6_123456(const A&); // { dg-message "note" } -three sink_6_123456(volatile A&); // { dg-message "note" } -four sink_6_123456(const volatile A&); // { dg-message "note" } -five sink_6_123456( A&&); // { dg-message "note" } -six sink_6_123456(const A&&); // { dg-message "note" } - -int test6_123456() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_123456(v_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 46 } - sink_6_123456(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 48 } - return 0; -} - -one sink_6_123457( A&); // { dg-message "one sink_6_123457|no known conversion" } -two sink_6_123457(const A&); // { dg-message "note" } -three sink_6_123457(volatile A&); // { dg-message "note" } -four sink_6_123457(const volatile A&); // { dg-message "note" } -five sink_6_123457( A&&); // { dg-message "note" } -seven sink_6_123457(volatile A&&); // { dg-message "note" } - -int test6_123457() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_123457(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 66 } - return 0; -} - -two sink_6_235678(const A&); // { dg-message "note" } -three sink_6_235678(volatile A&); // { dg-message "note" } -five sink_6_235678( A&&); // { dg-message "note" } -six sink_6_235678(const A&&); // { dg-message "note" } -seven sink_6_235678(volatile A&&); // { dg-message "note" } -eight sink_6_235678(const volatile A&&); // { dg-message "" } - -int test6_235678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_235678(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 84 } - sink_6_235678(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_6_234678(const A&); // { dg-message "note" } -three sink_6_234678(volatile A&); // { dg-message "note" } -four sink_6_234678(const volatile A&); // { dg-message "note" } -six sink_6_234678(const A&&); // { dg-message "note" } -seven sink_6_234678(volatile A&&); // { dg-message "note" } -eight sink_6_234678(const volatile A&&); // { dg-message "note" } - -int test6_234678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_234678(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 103 } - sink_6_234678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 105 } - return 0; -} - -two sink_6_234578(const A&); // { dg-message "note" } -three sink_6_234578(volatile A&); // { dg-message "note" } -four sink_6_234578(const volatile A&); // { dg-message "note" } -five sink_6_234578( A&&); // { dg-message "note" } -seven sink_6_234578(volatile A&&); // { dg-message "note" } -eight sink_6_234578(const volatile A&&); // { dg-message "note" } - -int test6_234578() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_234578(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 123 } - return 0; -} - -two sink_6_234568(const A&); // { dg-message "note" } -three sink_6_234568(volatile A&); // { dg-message "note" } -four sink_6_234568(const volatile A&); // { dg-message "note" } -five sink_6_234568( A&&); // { dg-message "note" } -six sink_6_234568(const A&&); // { dg-message "note" } -eight sink_6_234568(const volatile A&&); // { dg-message "note" } - -int test6_234568() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_234568(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 141 } - return 0; -} - -two sink_6_234567(const A&); // { dg-message "two sink_6_234567|no known conversion" } -three sink_6_234567(volatile A&); // { dg-message "note" } -four sink_6_234567(const volatile A&); // { dg-message "note" } -five sink_6_234567( A&&); // { dg-message "note" } -six sink_6_234567(const A&&); // { dg-message "note" } -seven sink_6_234567(volatile A&&); // { dg-message "note" } - -int test6_234567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_234567(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 159 } - sink_6_234567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 161 } - return 0; -} - -one sink_6_134678( A&); -three sink_6_134678(volatile A&); -four sink_6_134678(const volatile A&); -six sink_6_134678(const A&&); // { dg-message "note" } -seven sink_6_134678(volatile A&&); // { dg-message "note" } -eight sink_6_134678(const volatile A&&); // { dg-message "note" } - -int test6_134678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_134678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 179 } - return 0; -} - -one sink_6_124678( A&); -two sink_6_124678(const A&); // { dg-message "note" } -four sink_6_124678(const volatile A&); -six sink_6_124678(const A&&); // { dg-message "note" } -seven sink_6_124678(volatile A&&); // { dg-message "note" } -eight sink_6_124678(const volatile A&&); // { dg-message "note" } - -int test6_124678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_124678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 197 } - return 0; -} - -one sink_6_123678( A&); -two sink_6_123678(const A&); // { dg-message "note" } -three sink_6_123678(volatile A&); -six sink_6_123678(const A&&); // { dg-message "note" } -seven sink_6_123678(volatile A&&); // { dg-message "note" } -eight sink_6_123678(const volatile A&&); // { dg-message "" } - -int test6_123678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_123678(cva); // { dg-error "lvalue" } - sink_6_123678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 216 } - return 0; -} - -one sink_6_123567( A&); // { dg-message "one sink_6_123567|no known conversion" } -two sink_6_123567(const A&); // { dg-message "note" } -three sink_6_123567(volatile A&); // { dg-message "note" } -five sink_6_123567( A&&); // { dg-message "note" } -six sink_6_123567(const A&&); // { dg-message "note" } -seven sink_6_123567(volatile A&&); // { dg-message "note" } - -int test6_123567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_123567(cva); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 234 } - sink_6_123567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 236 } - return 0; -} - -one sink_6_123568( A&); -two sink_6_123568(const A&); -three sink_6_123568(volatile A&); -five sink_6_123568( A&&); -six sink_6_123568(const A&&); -eight sink_6_123568(const volatile A&&); // { dg-message "" } - -int test6_123568() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_123568(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_6_123578( A&); -two sink_6_123578(const A&); -three sink_6_123578(volatile A&); -five sink_6_123578( A&&); -seven sink_6_123578(volatile A&&); -eight sink_6_123578(const volatile A&&); // { dg-message "" } - -int test6_123578() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_123578(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_6_123467( A&); // { dg-message "one sink_6_123467|no known conversion" } -two sink_6_123467(const A&); // { dg-message "note" } -three sink_6_123467(volatile A&); // { dg-message "note" } -four sink_6_123467(const volatile A&); // { dg-message "note" } -six sink_6_123467(const A&&); // { dg-message "note" } -seven sink_6_123467(volatile A&&); // { dg-message "note" } - -int test6_123467() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_123467(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 288 } - sink_6_123467(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 290 } - return 0; -} - -one sink_6_124567( A&); // { dg-message "one sink_6_124567|no known conversion" } -two sink_6_124567(const A&); // { dg-message "note" } -four sink_6_124567(const volatile A&); // { dg-message "note" } -five sink_6_124567( A&&); // { dg-message "note" } -six sink_6_124567(const A&&); // { dg-message "note" } -seven sink_6_124567(volatile A&&); // { dg-message "note" } - -int test6_124567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_124567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 308 } - return 0; -} - -one sink_6_125678( A&); -two sink_6_125678(const A&); -five sink_6_125678( A&&); -six sink_6_125678(const A&&); -seven sink_6_125678(volatile A&&); // { dg-message "" } -eight sink_6_125678(const volatile A&&); // { dg-message "" } - -int test6_125678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_125678(va); // { dg-error "lvalue" } - sink_6_125678(cva); // { dg-error "lvalue" } - return 0; -} - -one sink_6_134567( A&); // { dg-message "one sink_6_134567|no known conversion" } -three sink_6_134567(volatile A&); // { dg-message "note" } -four sink_6_134567(const volatile A&); // { dg-message "note" } -five sink_6_134567( A&&); // { dg-message "note" } -six sink_6_134567(const A&&); // { dg-message "note" } -seven sink_6_134567(volatile A&&); // { dg-message "note" } - -int test6_134567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_134567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 344 } - return 0; -} - -one sink_6_135678( A&); -three sink_6_135678(volatile A&); -five sink_6_135678( A&&); -six sink_6_135678(const A&&); // { dg-message "" } -seven sink_6_135678(volatile A&&); -eight sink_6_135678(const volatile A&&); // { dg-message "" } - -int test6_135678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_6_135678(ca); // { dg-error "lvalue" } - sink_6_135678(cva); // { dg-error "lvalue" } - return 0; -} - -int main() -{ - return test6_235678() + test6_234678() + test6_234578() + test6_234568() + - test6_234567() + test6_134678() + test6_124678() + test6_123678() + - test6_123567(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv6p.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv6p.C deleted file mode 100644 index 4b78ef70b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv6p.C +++ /dev/null @@ -1,687 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; -struct three {long x[3];}; -struct four {long x[4];}; -struct five {long x[5];}; -struct six {long x[6];}; -struct seven {long x[7];}; -struct eight {long x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 6 at a time - -one sink_6_123456( A&); -two sink_6_123456(const A&); -three sink_6_123456(volatile A&); -four sink_6_123456(const volatile A&); -five sink_6_123456( A&&); -six sink_6_123456(const A&&); - -int test6_123456() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_123456(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_123456(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_123456(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_123456(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_123456(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_123456(c_source())) == 6 * sizeof(long)> t6; - return 0; -} - -one sink_6_123457( A&); -two sink_6_123457(const A&); -three sink_6_123457(volatile A&); -four sink_6_123457(const volatile A&); -five sink_6_123457( A&&); -seven sink_6_123457(volatile A&&); - -int test6_123457() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_123457(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_123457(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_123457(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_123457(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_123457(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_123457(c_source())) == 2 * sizeof(long)> t6; - sa<sizeof(sink_6_123457(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_6_123458( A&); -two sink_6_123458(const A&); -three sink_6_123458(volatile A&); -four sink_6_123458(const volatile A&); -five sink_6_123458( A&&); -eight sink_6_123458(const volatile A&&); - -int test6_123458() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_123458(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_123458(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_123458(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_123458(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_123458(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_123458(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_6_123458(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_6_123458(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_123467( A&); -two sink_6_123467(const A&); -three sink_6_123467(volatile A&); -four sink_6_123467(const volatile A&); -six sink_6_123467(const A&&); -seven sink_6_123467(volatile A&&); - -int test6_123467() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_123467(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_123467(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_123467(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_123467(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_123467(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_123467(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_6_123468( A&); -two sink_6_123468(const A&); -three sink_6_123468(volatile A&); -four sink_6_123468(const volatile A&); -six sink_6_123468(const A&&); -eight sink_6_123468(const volatile A&&); - -int test6_123468() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_123468(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_123468(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_123468(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_123468(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_123468(source())) == 6 * sizeof(long)> t5; - sa<sizeof(sink_6_123468(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_123468(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_6_123468(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_123478( A&); -two sink_6_123478(const A&); -three sink_6_123478(volatile A&); -four sink_6_123478(const volatile A&); -seven sink_6_123478(volatile A&&); -eight sink_6_123478(const volatile A&&); - -int test6_123478() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_123478(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_123478(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_123478(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_123478(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_123478(source())) == 7 * sizeof(long)> t5; - sa<sizeof(sink_6_123478(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_6_123478(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_123478(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_123567( A&); -two sink_6_123567(const A&); -three sink_6_123567(volatile A&); -five sink_6_123567( A&&); -six sink_6_123567(const A&&); -seven sink_6_123567(volatile A&&); - -int test6_123567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_123567(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_123567(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_123567(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_123567(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_123567(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_123567(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_6_123568( A&); -two sink_6_123568(const A&); -three sink_6_123568(volatile A&); -five sink_6_123568( A&&); -six sink_6_123568(const A&&); -eight sink_6_123568(const volatile A&&); - -int test6_123568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_123568(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_123568(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_123568(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_123568(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_123568(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_123568(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_6_123568(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_123578( A&); -two sink_6_123578(const A&); -three sink_6_123578(volatile A&); -five sink_6_123578( A&&); -seven sink_6_123578(volatile A&&); -eight sink_6_123578(const volatile A&&); - -int test6_123578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_123578(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_123578(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_123578(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_123578(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_123578(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_6_123578(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_123578(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_123678( A&); -two sink_6_123678(const A&); -three sink_6_123678(volatile A&); -six sink_6_123678(const A&&); -seven sink_6_123678(volatile A&&); -eight sink_6_123678(const volatile A&&); - -int test6_123678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_123678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_123678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_123678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_123678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_123678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_123678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_124567( A&); -two sink_6_124567(const A&); -four sink_6_124567(const volatile A&); -five sink_6_124567( A&&); -six sink_6_124567(const A&&); -seven sink_6_124567(volatile A&&); - -int test6_124567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_124567(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_124567(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_124567(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_6_124567(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_124567(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_124567(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_124567(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_6_124568( A&); -two sink_6_124568(const A&); -four sink_6_124568(const volatile A&); -five sink_6_124568( A&&); -six sink_6_124568(const A&&); -eight sink_6_124568(const volatile A&&); - -int test6_124568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_124568(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_124568(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_124568(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_6_124568(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_124568(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_124568(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_124568(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_6_124568(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_124578( A&); -two sink_6_124578(const A&); -four sink_6_124578(const volatile A&); -five sink_6_124578( A&&); -seven sink_6_124578(volatile A&&); -eight sink_6_124578(const volatile A&&); - -int test6_124578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_124578(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_124578(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_124578(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_6_124578(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_124578(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_124578(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_6_124578(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_124578(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_124678( A&); -two sink_6_124678(const A&); -four sink_6_124678(const volatile A&); -six sink_6_124678(const A&&); -seven sink_6_124678(volatile A&&); -eight sink_6_124678(const volatile A&&); - -int test6_124678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_124678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_124678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_124678(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_6_124678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_124678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_124678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_124678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_125678( A&); -two sink_6_125678(const A&); -five sink_6_125678( A&&); -six sink_6_125678(const A&&); -seven sink_6_125678(volatile A&&); -eight sink_6_125678(const volatile A&&); - -int test6_125678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_125678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_125678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_125678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_125678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_125678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_125678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_134567( A&); -three sink_6_134567(volatile A&); -four sink_6_134567(const volatile A&); -five sink_6_134567( A&&); -six sink_6_134567(const A&&); -seven sink_6_134567(volatile A&&); - -int test6_134567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_134567(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_134567(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_6_134567(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_134567(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_134567(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_134567(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_134567(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_6_134568( A&); -three sink_6_134568(volatile A&); -four sink_6_134568(const volatile A&); -five sink_6_134568( A&&); -six sink_6_134568(const A&&); -eight sink_6_134568(const volatile A&&); - -int test6_134568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_134568(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_134568(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_6_134568(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_134568(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_134568(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_134568(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_134568(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_6_134568(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_134578( A&); -three sink_6_134578(volatile A&); -four sink_6_134578(const volatile A&); -five sink_6_134578( A&&); -seven sink_6_134578(volatile A&&); -eight sink_6_134578(const volatile A&&); - -int test6_134578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_134578(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_134578(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_6_134578(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_134578(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_134578(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_134578(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_6_134578(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_134578(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_134678( A&); -three sink_6_134678(volatile A&); -four sink_6_134678(const volatile A&); -six sink_6_134678(const A&&); -seven sink_6_134678(volatile A&&); -eight sink_6_134678(const volatile A&&); - -int test6_134678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_134678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_134678(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_6_134678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_134678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_134678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_134678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_134678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_135678( A&); -three sink_6_135678(volatile A&); -five sink_6_135678( A&&); -six sink_6_135678(const A&&); -seven sink_6_135678(volatile A&&); -eight sink_6_135678(const volatile A&&); - -int test6_135678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_135678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_135678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_135678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_135678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_135678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_135678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_6_145678( A&); -four sink_6_145678(const volatile A&); -five sink_6_145678( A&&); -six sink_6_145678(const A&&); -seven sink_6_145678(volatile A&&); -eight sink_6_145678(const volatile A&&); - -int test6_145678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_145678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_6_145678(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_6_145678(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_6_145678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_145678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_145678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_145678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_145678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_6_234567(const A&); -three sink_6_234567(volatile A&); -four sink_6_234567(const volatile A&); -five sink_6_234567( A&&); -six sink_6_234567(const A&&); -seven sink_6_234567(volatile A&&); - -int test6_234567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_234567(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_234567(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_234567(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_234567(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_234567(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_234567(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -two sink_6_234568(const A&); -three sink_6_234568(volatile A&); -four sink_6_234568(const volatile A&); -five sink_6_234568( A&&); -six sink_6_234568(const A&&); -eight sink_6_234568(const volatile A&&); - -int test6_234568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_234568(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_234568(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_234568(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_234568(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_234568(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_234568(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_6_234568(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_6_234578(const A&); -three sink_6_234578(volatile A&); -four sink_6_234578(const volatile A&); -five sink_6_234578( A&&); -seven sink_6_234578(volatile A&&); -eight sink_6_234578(const volatile A&&); - -int test6_234578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_234578(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_234578(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_234578(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_234578(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_234578(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_6_234578(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_234578(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_6_234678(const A&); -three sink_6_234678(volatile A&); -four sink_6_234678(const volatile A&); -six sink_6_234678(const A&&); -seven sink_6_234678(volatile A&&); -eight sink_6_234678(const volatile A&&); - -int test6_234678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_234678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_234678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_234678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_234678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_234678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_234678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_6_235678(const A&); -three sink_6_235678(volatile A&); -five sink_6_235678( A&&); -six sink_6_235678(const A&&); -seven sink_6_235678(volatile A&&); -eight sink_6_235678(const volatile A&&); - -int test6_235678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_235678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_235678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_235678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_235678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_235678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_235678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_6_245678(const A&); -four sink_6_245678(const volatile A&); -five sink_6_245678( A&&); -six sink_6_245678(const A&&); -seven sink_6_245678(volatile A&&); -eight sink_6_245678(const volatile A&&); - -int test6_245678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_245678(a)) == 2 * sizeof(long)> t1; - sa<sizeof(sink_6_245678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_6_245678(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_6_245678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_245678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_245678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_245678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_245678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -three sink_6_345678(volatile A&); -four sink_6_345678(const volatile A&); -five sink_6_345678( A&&); -six sink_6_345678(const A&&); -seven sink_6_345678(volatile A&&); -eight sink_6_345678(const volatile A&&); - -int test6_345678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_6_345678(a)) == 3 * sizeof(long)> t1; - sa<sizeof(sink_6_345678(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_6_345678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_6_345678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_6_345678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_6_345678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_6_345678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_6_345678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -int main() -{ - return test6_123456() + test6_123457() + test6_123458() + test6_123467() + - test6_123468() + test6_123478() + test6_123567() + test6_123568() + - test6_123578() + test6_123678() + test6_124567() + test6_124568() + - test6_124578() + test6_124678() + test6_125678() + test6_134567() + - test6_134568() + test6_134578() + test6_134678() + test6_135678() + - test6_145678() + test6_234567() + test6_234568() + test6_234578() + - test6_234678() + test6_235678() + test6_245678() + test6_345678(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv7n.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv7n.C deleted file mode 100644 index 206cc79bb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv7n.C +++ /dev/null @@ -1,111 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {char x[1];}; -struct two {char x[2];}; -struct three {char x[3];}; -struct four {char x[4];}; -struct five {char x[5];}; -struct six {char x[6];}; -struct seven {char x[7];}; -struct eight {char x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 7 at a time - -one sink_7_1234567( A&); // { dg-message "one sink_7_1234567|no known conversion" } -two sink_7_1234567(const A&); // { dg-message "note" } -three sink_7_1234567(volatile A&); // { dg-message "note" } -four sink_7_1234567(const volatile A&); // { dg-message "note" } -five sink_7_1234567( A&&); // { dg-message "note" } -six sink_7_1234567(const A&&); // { dg-message "note" } -seven sink_7_1234567(volatile A&&); // { dg-message "note" } - -int test7_1234567() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_7_1234567(cv_source()); // { dg-error "no match" } - // { dg-message "candidate" "candidate note" { target *-*-* } 47 } - return 0; -} - -one sink_7_1235678( A&); -two sink_7_1235678(const A&); -three sink_7_1235678(volatile A&); -five sink_7_1235678( A&&); -six sink_7_1235678(const A&&); -seven sink_7_1235678(volatile A&&); -eight sink_7_1235678(const volatile A&&); // { dg-message "" } - -int test7_1235678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_7_1235678(cva); // { dg-error "lvalue" } - return 0; -} - -two sink_7_2345678(const A&); // { dg-message "note" } -three sink_7_2345678(volatile A&); // { dg-message "note" } -four sink_7_2345678(const volatile A&); // { dg-message "note" } -five sink_7_2345678( A&&); // { dg-message "note" } -six sink_7_2345678(const A&&); // { dg-message "note" } -seven sink_7_2345678(volatile A&&); // { dg-message "note" } -eight sink_7_2345678(const volatile A&&); // { dg-message "note" } - -int test7_2345678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_7_2345678(a); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 84 } - return 0; -} - -one sink_7_1234678( A&); -two sink_7_1234678(const A&); // { dg-message "note" } -three sink_7_1234678(volatile A&); -four sink_7_1234678(const volatile A&); -six sink_7_1234678(const A&&); // { dg-message "note" } -seven sink_7_1234678(volatile A&&); // { dg-message "note" } -eight sink_7_1234678(const volatile A&&); // { dg-message "note" } - -int test7_1234678() -{ - A a; - const A ca = a; // { dg-error "deleted" } - volatile A va; - const volatile A cva = a; // { dg-error "deleted" } - sink_7_1234678(source()); // { dg-error "ambiguous" } - // { dg-message "candidate" "candidate note" { target *-*-* } 103 } - return 0; -} - -int main() -{ - return test7_2345678() + test7_1234678(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv7p.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv7p.C deleted file mode 100644 index 94aa07b93..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv7p.C +++ /dev/null @@ -1,233 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; -struct three {long x[3];}; -struct four {long x[4];}; -struct five {long x[5];}; -struct six {long x[6];}; -struct seven {long x[7];}; -struct eight {long x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 7 at a time - -one sink_7_1234567( A&); -two sink_7_1234567(const A&); -three sink_7_1234567(volatile A&); -four sink_7_1234567(const volatile A&); -five sink_7_1234567( A&&); -six sink_7_1234567(const A&&); -seven sink_7_1234567(volatile A&&); - -int test7_1234567() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_7_1234567(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_7_1234567(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_7_1234567(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_7_1234567(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_7_1234567(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_7_1234567(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_7_1234567(v_source())) == 7 * sizeof(long)> t7; - return 0; -} - -one sink_7_1234568( A&); -two sink_7_1234568(const A&); -three sink_7_1234568(volatile A&); -four sink_7_1234568(const volatile A&); -five sink_7_1234568( A&&); -six sink_7_1234568(const A&&); -eight sink_7_1234568(const volatile A&&); - -int test7_1234568() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_7_1234568(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_7_1234568(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_7_1234568(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_7_1234568(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_7_1234568(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_7_1234568(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_7_1234568(v_source())) == 8 * sizeof(long)> t7; - sa<sizeof(sink_7_1234568(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_7_1234578( A&); -two sink_7_1234578(const A&); -three sink_7_1234578(volatile A&); -four sink_7_1234578(const volatile A&); -five sink_7_1234578( A&&); -seven sink_7_1234578(volatile A&&); -eight sink_7_1234578(const volatile A&&); - -int test7_1234578() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_7_1234578(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_7_1234578(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_7_1234578(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_7_1234578(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_7_1234578(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_7_1234578(c_source())) == 8 * sizeof(long)> t6; - sa<sizeof(sink_7_1234578(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_7_1234578(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_7_1234678( A&); -two sink_7_1234678(const A&); -three sink_7_1234678(volatile A&); -four sink_7_1234678(const volatile A&); -six sink_7_1234678(const A&&); -seven sink_7_1234678(volatile A&&); -eight sink_7_1234678(const volatile A&&); - -int test7_1234678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_7_1234678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_7_1234678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_7_1234678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_7_1234678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_7_1234678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_7_1234678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_7_1234678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_7_1235678( A&); -two sink_7_1235678(const A&); -three sink_7_1235678(volatile A&); -five sink_7_1235678( A&&); -six sink_7_1235678(const A&&); -seven sink_7_1235678(volatile A&&); -eight sink_7_1235678(const volatile A&&); - -int test7_1235678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_7_1235678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_7_1235678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_7_1235678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_7_1235678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_7_1235678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_7_1235678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_7_1235678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_7_1245678( A&); -two sink_7_1245678(const A&); -four sink_7_1245678(const volatile A&); -five sink_7_1245678( A&&); -six sink_7_1245678(const A&&); -seven sink_7_1245678(volatile A&&); -eight sink_7_1245678(const volatile A&&); - -int test7_1245678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_7_1245678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_7_1245678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_7_1245678(va)) == 4 * sizeof(long)> t3; - sa<sizeof(sink_7_1245678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_7_1245678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_7_1245678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_7_1245678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_7_1245678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -one sink_7_1345678( A&); -three sink_7_1345678(volatile A&); -four sink_7_1345678(const volatile A&); -five sink_7_1345678( A&&); -six sink_7_1345678(const A&&); -seven sink_7_1345678(volatile A&&); -eight sink_7_1345678(const volatile A&&); - -int test7_1345678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_7_1345678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_7_1345678(ca)) == 4 * sizeof(long)> t2; - sa<sizeof(sink_7_1345678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_7_1345678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_7_1345678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_7_1345678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_7_1345678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_7_1345678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -two sink_7_2345678(const A&); -three sink_7_2345678(volatile A&); -four sink_7_2345678(const volatile A&); -five sink_7_2345678( A&&); -six sink_7_2345678(const A&&); -seven sink_7_2345678(volatile A&&); -eight sink_7_2345678(const volatile A&&); - -int test7_2345678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_7_2345678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_7_2345678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_7_2345678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_7_2345678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_7_2345678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_7_2345678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_7_2345678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -int main() -{ - return test7_1234567() + test7_1234568() + test7_1234578() + test7_1234678() + - test7_1235678() + test7_1245678() + test7_1345678() + test7_2345678(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv8p.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv8p.C deleted file mode 100644 index fb9ec4ce7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv8p.C +++ /dev/null @@ -1,62 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test overload resolution among reference types - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; -struct three {long x[3];}; -struct four {long x[4];}; -struct five {long x[5];}; -struct six {long x[6];}; -struct seven {long x[7];}; -struct eight {long x[8];}; - -struct A -{ - A(); - A(const volatile A&&); -}; - - A source(); -const A c_source(); - volatile A v_source(); -const volatile A cv_source(); - -// 8 at a time - -one sink_8_12345678( A&); -two sink_8_12345678(const A&); -three sink_8_12345678(volatile A&); -four sink_8_12345678(const volatile A&); -five sink_8_12345678( A&&); -six sink_8_12345678(const A&&); -seven sink_8_12345678(volatile A&&); -eight sink_8_12345678(const volatile A&&); - -int test8_12345678() -{ - A a; - const A ca; - volatile A va; - const volatile A cva; - sa<sizeof(sink_8_12345678(a)) == 1 * sizeof(long)> t1; - sa<sizeof(sink_8_12345678(ca)) == 2 * sizeof(long)> t2; - sa<sizeof(sink_8_12345678(va)) == 3 * sizeof(long)> t3; - sa<sizeof(sink_8_12345678(cva)) == 4 * sizeof(long)> t4; - sa<sizeof(sink_8_12345678(source())) == 5 * sizeof(long)> t5; - sa<sizeof(sink_8_12345678(c_source())) == 6 * sizeof(long)> t6; - sa<sizeof(sink_8_12345678(v_source())) == 7 * sizeof(long)> t7; - sa<sizeof(sink_8_12345678(cv_source())) == 8 * sizeof(long)> t8; - return 0; -} - -int main() -{ - return test8_12345678(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv9p.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv9p.C deleted file mode 100644 index ec08a8248..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rv9p.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/36744 -// { dg-options "-std=c++0x" } -// { dg-do run } - -struct S -{ - S(): i(2) {} - S(S const&s): i(s.i) {} - int i; -}; - -void f(S x) { x.i = 0; } - -extern "C" void abort (void); -int main() -{ - S y; - f(static_cast<S&&>(y)); - if (y.i != 2) - abort (); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rvo.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rvo.C deleted file mode 100644 index d4459af64..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/rvo.C +++ /dev/null @@ -1,25 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } -// Contributed by Sylvain Pion -static int rvalue_constructions = 0; - -struct A { - A () { } - A (const A&) { } - A (A&&) { ++rvalue_constructions; } - ~A () { } -}; - -A f() { return A(); } - -extern "C" { - void abort(void); -} - -int main() -{ - A c = f(); - - if (rvalue_constructions != 0) - abort(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum.C deleted file mode 100644 index 4b0317cfb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum.C +++ /dev/null @@ -1,76 +0,0 @@ -// { dg-options "-std=c++0x" } -enum class Color1 { - Red, - Green, - Blue -}; - -enum struct Color2 { - Red, // { dg-error "previously declared here" } - Orange, - Yellow, - Green, - Blue, - Indigo = Green + 2, - Violet, - Red // { dg-error "redeclaration" } -}; - -enum Color { - Red, Green, Blue -}; - -enum class Color3 { - Red -}; - -enum Color color; -enum Color3 color3; - -void f(int); -void f2(Color3); - -void g() -{ - int i = 0; - f(color); // okay: unscoped enum - f(color3); // { dg-error "cannot convert" } - f2(color); // { dg-error "cannot convert" } - f2(color3); - f2(i); // { dg-error "cannot convert" } - i = color3; // { dg-error "cannot convert" } - color3 = i; // { dg-error "cannot convert" } - f(static_cast<int>(color3)); // okay - - int a[5]; - a[color3]; // { dg-error "array subscript is not an integer" } - - bool b = color3; // { dg-error "cannot convert" } -} - -void h() -{ - Color1 c1 = Color1::Red; - Color2 c2 = Color1::Red; // { dg-error "cannot convert" } - c2 = Color1::Red; // { dg-error "cannot convert" } - - c2 = Color2::Red; - int c3 = Color::Red; -} - -template<typename T, T value> -struct constant { }; - -template<typename T> -int& sfinae(constant<T, T::Green>*); - -float& sfinae(void*); - -void sfinae_test() -{ - int& test1 = sfinae((constant<Color1, Color1::Green>*)0); - int& test2 = sfinae((constant<Color2, Color2::Green>*)0); - float& test3 = sfinae((constant<Color1, Color1::Red>*)0); - int& test4 = sfinae((constant<Color, Green>*)0); - float& test5 = sfinae((constant<Color, Red>*)0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum2.C deleted file mode 100644 index e87b36a27..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum2.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options -std=c++0x } - -enum class E { e = 10 }; -enum E2 { e2 = 10 }; - -struct C { - int arr[E::e]; // { dg-error "non-integral type" } - int arr2[E2::e2]; // OK - int i: E::e; // { dg-error "non-integral type" } - int i2: E2::e2; // OK -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum_98.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum_98.C deleted file mode 100644 index 8c24e86ba..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum_98.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++98" } -enum class E1 { e1 }; // { dg-warning "scoped enums" } -enum E2 : char { e2 }; // { dg-warning "scoped enums" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum_examples.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum_examples.C deleted file mode 100644 index 67c3fcbeb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/scoped_enum_examples.C +++ /dev/null @@ -1,27 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } -enum class Col { red, yellow, green }; - -int x = Col::red; // { dg-error "cannot convert" } -Col y = Col::red; - -void f() -{ - if (y) { } // { dg-error "could not convert" } -} - -enum direction { left='l', right='r' }; -void g() { - // OK - direction d; - // OK - d = left; - // OK - d = direction::right; -} -enum class altitude { high='h', low='l' }; -void h() { - altitude a; - a = high; // { dg-error "not declared in this scope" } - a = altitude::low; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae1.C deleted file mode 100644 index 292d8ae04..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae1.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=c++0x" } - -template< typename T_VECTOR > -void f(const T_VECTOR &a, decltype(a[0]) t = 0); -template< typename T > -void f(const T &a, decltype(a*1) t = 0); - -int main() { - int c; - f(c); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae10.C deleted file mode 100644 index ede8b7042..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae10.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/48452 -// { dg-options -std=c++0x } -namespace std { - template <class T> T&& declval(); -} - -template<class T, class... Args> -decltype(T(std::declval<Args>()...), char()) f(int); - -template<class, class...> -char (&f(...))[2]; - -struct A { virtual ~A() = 0; }; -struct B {}; - -static_assert(sizeof(f<A, int, int>(0)) != 1, "Error"); // a -static_assert(sizeof(f<B, void, int>(0)) != 1, "Error"); // b -static_assert(sizeof(f<void, int, int>(0)) != 1, "Error"); // c diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae11.C deleted file mode 100644 index 2e8408d8f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae11.C +++ /dev/null @@ -1,57 +0,0 @@ -// PR c++/48468 -// { dg-options -std=c++0x } -// { dg-prune-output "note" } - -template<class T> -T&& declval() noexcept; - -template< class T > -inline void f1( T& x ) noexcept( noexcept( declval<T&>().foo() ) ) // { dg-error "Z" } -{ - x.foo(); -} - -template< class T, - bool Noexcept = noexcept( declval<T&>().foo() ) // { dg-error "no member|not convert" } - -> -inline void f2( T& x ) noexcept( Noexcept ) -{ - x.foo(); -} - -// a common and trivial mistake -template< class T > -inline void f3( T& x ) noexcept( declval<T&>().foo() ) // { dg-error "Z" } -{ - x.foo(); -} - -struct X -{ - void foo(); -}; - -struct Y -{ - void foo() noexcept; -}; - -struct Z {}; - -int main() -{ - X x; Y y; Z z; - - static_assert( !noexcept( f1(x) ), "OK." ); - static_assert( !noexcept( f2(x) ), "OK." ); - // static_assert( !noexcept( f3(x) ), "shall be ill-formed(OK)." ); - - static_assert( noexcept( f1(y) ), "OK." ); - static_assert( noexcept( f2(y) ), "OK." ); - // static_assert( noexcept( f3(y) ), "shall be ill-formed(OK)." ); - - noexcept( f1(z) ); // { dg-message "required" } - static_assert( noexcept( f2(z) ), "shall be ill-formed." ); // { dg-error "no match" } - noexcept( f3(z) ); // { dg-message "required" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae12.C deleted file mode 100644 index 114f1b42d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae12.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/48535 -// { dg-options -std=c++0x } - -template<class T, - class = decltype(T{}) -> -char f(int); - -template<class> -char (&f(...))[2]; - -struct A { virtual ~A() = 0; }; - -static_assert(sizeof(f<A>(0)) != 1, "Error"); // (a) -static_assert(sizeof(f<void()>(0)) != 1, "Error"); // (b) -static_assert(sizeof(f<int&>(0)) != 1, "Error"); // (d) -static_assert(sizeof(f<const int&>(0)) == 1, "Error"); // (e) -static_assert(sizeof(f<int[]>(0)) != 1, "Error"); // (f) diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae13.C deleted file mode 100644 index 465df2d8b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae13.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/48581 -// { dg-options -std=c++0x } - -template<class T> -T&& create(); - -template<class T, - class = decltype(foo(create<T>())) -> -auto f(int) -> char; - -template<class> -auto f(...) -> char (&)[2]; - -struct S {}; -void foo(S); - -static_assert(sizeof(f<S>(0)) == 1, "Error"); // (#) - -int main() {} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae14.C deleted file mode 100644 index 305f96edd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae14.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/48557 -// { dg-options -std=c++0x } - -template<class T> -struct add_rval_ref -{ - typedef T&& type; -}; - -template<> -struct add_rval_ref<void> -{ - typedef void type; -}; - -template<class T> -typename add_rval_ref<T>::type create(); - -template<class T, class U, - class = decltype(create<T>() + create<U>()) -> -char f(int); - -template<class, class> -char (&f(...))[2]; - -static_assert(sizeof(f<void, int>(0)) != 1, "Error"); // (a) diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae15.C deleted file mode 100644 index 595ca40b5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae15.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/48531 -// { dg-options -std=c++0x } - -template<class T, - class = decltype(T()) -> -char f(int); - -template<class> -char (&f(...))[2]; - -static_assert(sizeof(f<int[]>(0)) != 1, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae16.C deleted file mode 100644 index 6470567b7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae16.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/48531 -// { dg-options -std=c++0x } - -template<class T, - class = decltype(T()) -> -char f(int); - -template<class> -double f(...); - -struct B2 { - B2(...); -}; - -#define SA(X) static_assert ((X), #X); -SA(sizeof(f<B2[2]>(0)) != 1); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae17.C deleted file mode 100644 index dbbd9efe4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae17.C +++ /dev/null @@ -1,31 +0,0 @@ -// PR c++/48530 -// { dg-options -std=c++0x } - -template<class T, - class = decltype(T{}) -> -char f(int); - -template<class> -char (&f(...))[2]; - -struct DelDtor { - ~DelDtor() = delete; -}; - -static_assert(sizeof(f<DelDtor[2]>(0)) != 1, "Error"); - -struct A -{ - static DelDtor *p; -}; - -template<class T, - class = decltype(delete T::p, (T*)0) -> -char g(int); - -template<class> -char (&g(...))[2]; - -static_assert(sizeof(g<DelDtor>(0)) != 1, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae18.C deleted file mode 100644 index bb54335e6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae18.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/48530 -// { dg-options -std=c++0x } - -template<class T, - class = decltype(T()) -> -char f(int); - -template<class> -char (&f(...))[2]; - -struct DelDtor { - DelDtor() = default; - ~DelDtor() = delete; -}; - -static_assert(sizeof(f<DelDtor>(0)) != 1, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae19.C deleted file mode 100644 index be96983bf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae19.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/48737 -// { dg-options "-std=c++0x" } - -template<class T> -T&& create(); - -template<class T, class... Args> -decltype(T{create<Args>()...}, char()) f(int); - -template<class, class...> -char (&f(...))[2]; - -static_assert(sizeof(f<int[1], int, int>(0)) != 1, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae2.C deleted file mode 100644 index b9ef70d99..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae2.C +++ /dev/null @@ -1,39 +0,0 @@ -// PR c++/44967 -// { dg-options -std=c++0x } - -template <typename T> T&& declval(); - -template<typename T1, typename T2, typename... Args> -struct has_construct -{ - typedef char one; - typedef struct {char _m[2]; } two; - - template<typename U1, typename U2, typename... Args2> - static decltype(declval<U1>().construct(declval<U2*>(), declval<Args2>()...), one()) test(int); - template<typename, typename, typename...> - static two test(...); - - static const bool value = sizeof(test<T1, T2, Args...>(0)) == 1; -}; - - -struct A0 -{}; - -struct A1 -{ - void construct(int*, int); -}; - -template<typename _Tp> -struct A2 -{ - template<typename _Tp1, typename... _Args> - void construct(_Tp1*, _Args&&...) {} -}; - -#define SA(X) static_assert(X,#X) -SA((!has_construct<A0, int, int>::value)); // ok -SA((has_construct<A1, int, int>::value)); // bang -SA((has_construct<A2<int>, int>::value)); // bang diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae20.C deleted file mode 100644 index 486064c3a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae20.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/48744 -// { dg-options "-std=c++0x" } - -template<class T> -struct add_rval_ref { - typedef T&& type; -}; - -template<> -struct add_rval_ref<void> { - typedef void type; -}; - -template<class T> -typename add_rval_ref<T>::type create(); - -template<class T, class Arg> -decltype(T{create<Arg>()}, char()) f(int); - -template<class, class> -char (&f(...))[2]; - -static_assert(sizeof(f<int, void>(0)) != 1, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae21.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae21.C deleted file mode 100644 index 4fba6eb82..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae21.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/48735 -// { dg-options "-std=c++0x" } - -template<class T, - class = decltype(T{}) -> -char f(int); - -template<class> -char (&f(...))[2]; - -struct ND { ND() = delete; }; - -static_assert(sizeof(f<ND[1]>(0)) != 1, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae22.C deleted file mode 100644 index 1c3efd2e0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae22.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/48745 -// { dg-options -std=c++0x } - -template<class T> -struct add_rval_ref { - typedef T&& type; -}; - -template<> -struct add_rval_ref<void> { - typedef void type; -}; - -template<class T> -typename add_rval_ref<T>::type create(); - -template<class T, class... Args> -decltype(T{create<Args>()...}, char()) f(int); - -template<class, class...> -char (&f(...))[2]; - -static_assert(sizeof(f<int, void>(0)) != 1, "Error"); // # diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae23.C deleted file mode 100644 index 4e2ea88b1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae23.C +++ /dev/null @@ -1,28 +0,0 @@ -// PR c++/48647 -// { dg-options -std=c++0x } - -template< class T > -T&& declval(); - -template< class T, class U > -decltype( true ? declval<T>() : declval<U>() ) test( int ); - -template< class T, class U > -void test( ... ); - - -template< class T, class U > -struct is_same { - static const bool value = false; -}; - -template< class T > -struct is_same<T, T> { - static const bool value = true; -}; - -#define SA(X) static_assert ((X),#X) - -typedef decltype( test<int*, double*>(0) ) void_expected; -SA ((is_same<void_expected, void>::value)); -SA ((!is_same<void_expected, void*>::value)); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae24.C deleted file mode 100644 index f974d82b1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae24.C +++ /dev/null @@ -1,29 +0,0 @@ -// PR c++/49058 -// This error is not subject to SFINAE because it doesn't happen in the -// deduction context. -// { dg-options -std=c++0x } -// { dg-prune-output "note" } - -template<typename T> T val(); - -struct F1 -{ - void operator()(); -}; - -template<typename F> -struct Bind -{ - template<typename R - = decltype( val<F>()( ) )> - R f(); - - template<typename R - = decltype( val<const F>()( ) )> // { dg-error "no match" } - R f() const; -}; - -int main() -{ - Bind<F1> b; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae25.C deleted file mode 100644 index 7bdc8f88e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae25.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/49105 -// { dg-options -std=c++0x } - -template<class T, class = decltype(T{})> -char f(int); - -template<class T> -auto f(...) -> char(&)[2]; - -static_assert(sizeof(f<const int&&>(0)) == 1, "Error"); // # diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae26.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae26.C deleted file mode 100644 index 374f9976b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae26.C +++ /dev/null @@ -1,38 +0,0 @@ -// PR c++/49229 -// { dg-options -std=c++0x } - -extern void* enabler; - -template<bool, class = void> -struct enable_if {}; - -template<class T> -struct enable_if<true, T> { - typedef T type; -}; - -template<class... Bn> -struct and_; - -template<class B1> -struct and_<B1> : B1 {}; - -template<class, class> -struct is_same { - static constexpr bool value = false; -}; - -template<class T> -struct is_same<T, T> { - static constexpr bool value = true; -}; - -template<class... T> -struct S { - template<class... U, - typename enable_if<and_<is_same<T, U>...>::value>::type*& = enabler // { dg-error "no type" } - > - S(U...){} -}; - -S<bool> s(0); // { dg-error "no match" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae27.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae27.C deleted file mode 100644 index 93327ba9c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae27.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/50157 -// { dg-options -std=c++0x } - -template<class T> -T val(); - -template<class T, class Arg, class = - decltype(::new T(val<Arg>())) -> -auto test(int) -> char; - -template<class, class> -auto test(...) -> char (&)[2]; - -struct P { - explicit operator bool(); // (#13) -}; - -typedef decltype(test<bool, P>(0)) type; // OK -typedef decltype(test<float, P>(0)) type2; // Error (#17) diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae28.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae28.C deleted file mode 100644 index da64f413c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae28.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/50324 -// { dg-options -std=c++0x } - -struct complete { }; -struct incomplete; - -template<class T> auto f(T *) -> decltype(T{}) *; -template<class T> char f(T); - -int main() -{ - complete *p = 0; - static_assert(sizeof(f(p)) == sizeof(void*), ""); - incomplete *q = 0; - static_assert(sizeof(f(q)) == 1u, ""); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae29.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae29.C deleted file mode 100644 index a2e10b41d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae29.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/51047 -// { dg-options -std=c++0x } - -template<typename T> T &&declval(); -template<class T> decltype(declval<T>().x) f(T *); -template<class T> char f(T); -struct B1{ int x; }; -struct B2{ int x; }; -struct D : public B1, B2{}; -struct S { int x; }; -int main() -{ - S *p = nullptr; - static_assert(sizeof(f(p)) == sizeof(int), ""); - D *q = nullptr; - static_assert(sizeof(f(q)) == 1u, ""); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae3.C deleted file mode 100644 index 8582ba777..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae3.C +++ /dev/null @@ -1,56 +0,0 @@ -// { dg-options -std=c++0x } - -namespace std { template <class T> T&& declval(); } - -template<typename _Tp, typename... _Args> - class is_constructible_mini - { - typedef char __one; - typedef struct { char __arr[2]; } __two; - - template<typename _Tp1, typename... _Args1> - static decltype(::new _Tp1(std::declval<_Args1>()...), __one()) - __test(int); - - template<typename, typename...> - static __two __test(...); - - public: - static const bool value = sizeof(__test<_Tp, _Args...>(0)) == 1; - }; - -/* -template<typename _Tp> - class is_constructible_mini<_Tp> - { - typedef char __one; - typedef struct { char __arr[2]; } __two; - - template<typename _Tp1> - static decltype(::new _Tp1, __one()) __test(int); - - template<typename> - static __two __test(...); - - public: - static const bool value - = sizeof(__test<typename std::remove_cv<_Tp>::type>(0)) == 1; - }; -*/ - -struct A -{ - A(int); -}; - -struct B { }; - -static_assert( is_constructible_mini<A, int>::value, ""); -static_assert( is_constructible_mini<A, A>::value, ""); -static_assert( !is_constructible_mini<A, int, double>::value, ""); - -static_assert( !is_constructible_mini<A>::value, ""); // doesn't compile without the - // partial specialization - -static_assert( is_constructible_mini<B>::value, ""); -static_assert( is_constructible_mini<const B>::value, ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae30.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae30.C deleted file mode 100644 index 6fcf5f756..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae30.C +++ /dev/null @@ -1,25 +0,0 @@ -// { dg-do compile { target c++11 } } - -template <class... T> struct tuple; -template <class T> struct tuple<T> { T t; }; - -template <class T, class U> struct pair; -template<> struct pair<int,double> { }; - -template <class... Ts> -struct A -{ - template <class... Us, - class V = tuple<pair<Ts,Us>...> > - static void f(Us...) - { - V v; - } - template <class U> - static void f(bool); -}; - -int main() -{ - A<int,float>::f<double>(1.0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae31.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae31.C deleted file mode 100644 index ea151fe64..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae31.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/51973 -// { dg-options -std=c++0x } - -template <class T> -void f(T t) { }; - -template <class T> decltype(f<T>(0)) g(); -template <class T> decltype(f<T*>(0)) g(); - -int main() -{ - g<void>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae32.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae32.C deleted file mode 100644 index db3bf5a21..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae32.C +++ /dev/null @@ -1,18 +0,0 @@ -// PR c++/51989 -// { dg-options -std=c++0x } - -template <typename T> -struct is_container -{ - template <typename U, typename V = decltype(((U*)0)->begin())> - static char test(U* u); - - template <typename U> static long test(...); - - enum { value = sizeof test<T>(0) == 1 }; -}; - -int main() -{ - return is_container<void>::value; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae33.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae33.C deleted file mode 100644 index 3a5e6f77d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae33.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/52422 -// { dg-options -std=c++11 } - -template<class T> -struct add_rval_ref -{ - typedef T&& type; -}; - -template<> -struct add_rval_ref<void> -{ - typedef void type; -}; - -template<class T> -typename add_rval_ref<T>::type create(); - -template<class T, - class = decltype(create<T>()()) -> -auto f(int) -> char(&)[1]; - -template<class> -auto f(...) -> char(&)[2]; - -static_assert(sizeof(f<void>(0)) != 1, ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae34.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae34.C deleted file mode 100644 index d5d1ca464..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae34.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/52422 -// { dg-options -std=c++11 } - -template<class T> -struct add_rval_ref -{ - typedef T&& type; -}; - -template<> -struct add_rval_ref<void> -{ - typedef void type; -}; - -template<class T> -typename add_rval_ref<T>::type create(); - -template<class T, class U, - class = decltype( (create<T>().*create<U>())() ) -> -auto f(int) -> char(&)[1]; - -template<class, class> -auto f(...) -> char(&)[2]; - -static_assert(sizeof(f<void, void>(0)) != 1, ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae35.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae35.C deleted file mode 100644 index 21df10cf4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae35.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/52363 -// { dg-options -std=c++11 } - -#include <type_traits> - -struct proxy -{ - void operator=(int const&); - void operator=(int&&) const; -}; - -static_assert( !std::is_assignable<proxy, int>::value, "" ); -static_assert( std::is_assignable<const proxy, int>::value, "" ); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae36.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae36.C deleted file mode 100644 index 79509a1d1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae36.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/52363 -// { dg-options "-std=c++11 -pedantic" } - -#include <type_traits> - -struct proxy -{ - void operator=(int const&); - void operator=(int&&) const; -}; - -static_assert( !std::is_assignable<proxy, int>::value, "" ); -static_assert( std::is_assignable<const proxy, int>::value, "" ); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae37.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae37.C deleted file mode 100644 index e89106aac..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae37.C +++ /dev/null @@ -1,36 +0,0 @@ -// PR c++/51213 -// { dg-do compile { target c++11 } } - -class C { - typedef int type; -}; - -template<int> -struct I; - -template<> -struct I<2> { }; - -template<class T, class = typename T::type> -auto f(int) -> char; - -template<class> -auto f(...) -> char (&)[2]; - -static_assert(sizeof(f<C>(0)) == 2, "Ouch"); - -typedef int testf[sizeof(f<C>(0)) == 2 ? 1 : -1]; - -I<sizeof(f<C>(0))> vf; - -template<class T> -auto g(int) -> decltype(typename T::type(), char()); - -template<class> -auto g(...) -> char (&)[2]; - -static_assert(sizeof(g<C>(0)) == 2, "Ouch"); - -typedef int testg[sizeof(g<C>(0)) == 2 ? 1 : -1]; - -I<sizeof(g<C>(0))> vg; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae38.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae38.C deleted file mode 100644 index 2e860ee69..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae38.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-do compile { target c++11 } } - -template<class T, unsigned = sizeof(T)> -auto f(int) -> char; - -template<class> -auto f(...) -> char(&)[2]; - -static_assert(sizeof(f<void>(0)) != 1, ""); -static_assert(sizeof(f<void()>(0)) != 1, ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae39.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae39.C deleted file mode 100644 index 8183bda39..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae39.C +++ /dev/null @@ -1,146 +0,0 @@ -// PR c++/54191 -// { dg-do compile { target c++11 } } - -struct B -{}; - -struct D - : private B -{}; - -template<typename T> -T &&declval(); - - -template<typename From, typename = decltype(B{declval<From>()})> -constexpr bool test_braced_cast_to_base(int) -{ return true; } - -template<typename> -constexpr bool test_braced_cast_to_base(bool) -{ return false; } - -static_assert(!test_braced_cast_to_base<D>(0), ""); - - -template<typename From, typename = decltype(D{declval<From>()})> -constexpr bool test_braced_cast_to_derived(int) -{ return true; } - -template<typename> -constexpr bool test_braced_cast_to_derived(bool) -{ return false; } - -static_assert(!test_braced_cast_to_derived<B>(0), ""); - - -typedef B *PB; - -template<typename From, typename = decltype(PB{declval<From>()})> -constexpr bool test_braced_cast_to_ptr_to_base(int) -{ return true; } - -template<typename> -constexpr bool test_braced_cast_to_ptr_to_base(bool) -{ return false; } - -static_assert(!test_braced_cast_to_ptr_to_base<D *>(0), ""); - - -typedef D *PD; - -template<typename From, typename = decltype(PD{declval<From>()})> -constexpr bool test_braced_cast_to_ptr_to_derived(int) -{ return true; } - -template<typename> -constexpr bool test_braced_cast_to_ptr_to_derived(bool) -{ return false; } - -static_assert(!test_braced_cast_to_ptr_to_derived<B *>(0), ""); - - -template<typename From, typename To, - typename = decltype(static_cast<To>(declval<From>()))> -constexpr bool test_static_cast(int) -{ return true; } - -template<typename, typename> -constexpr bool test_static_cast(bool) -{ return false; } - -static_assert(!test_static_cast<B &, D &>(0), ""); -static_assert(!test_static_cast<B *, D *>(0), ""); - - -template<typename From, typename To, - typename = decltype(dynamic_cast<To>(declval<From>()))> -constexpr bool test_dynamic_cast(int) -{ return true; } - -template<typename, typename> -constexpr bool test_dynamic_cast(bool) -{ return false; } - -static_assert(!test_dynamic_cast<D &, B &>(0), ""); -static_assert(!test_dynamic_cast<D *, B *>(0), ""); - - -int B::*pm = 0; - -template<typename T, typename = decltype(declval<T>().*pm)> -constexpr bool test_member_ptr_dot(int) -{ return true; } - -template<typename> -constexpr bool test_member_ptr_dot(bool) -{ return false; } - -static_assert(!test_member_ptr_dot<D>(0), ""); - - -template<typename T, typename = decltype(declval<T>()->*pm)> -constexpr bool test_member_ptr_arrow(int) -{ return true; } - -template<typename> -constexpr bool test_member_ptr_arrow(bool) -{ return false; } - -static_assert(!test_member_ptr_arrow<D *>(0), ""); - - -template<typename T, typename U, - typename = decltype(declval<T>() < declval<U>())> -constexpr bool test_rel_op(int) -{ return true; } - -template<typename, typename> -constexpr bool test_rel_op(bool) -{ return false; } - -static_assert(!test_rel_op<D *, B *>(0), ""); - - -template<typename T, typename U, - typename = decltype(declval<T>() == declval<U>())> -constexpr bool test_eq(int) -{ return true; } - -template<typename, typename> -constexpr bool test_eq(bool) -{ return false; } - -static_assert(!test_eq<D *, B *>(0), ""); - - -template<typename T, typename U, - typename = decltype(false ? declval<T>() : declval<U>())> -constexpr bool test_cond_op(int) -{ return true; } - -template<typename, typename> -constexpr bool test_cond_op(bool) -{ return false; } - -static_assert(!test_cond_op<B *, D *>(0), ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae4.C deleted file mode 100644 index b66483124..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae4.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-options -std=c++0x } - -namespace std { template <class T> T&& declval(); } - -template<typename _Tp, typename... _Args> - class is_constructible_mini - { - typedef char __one; - typedef struct { char __arr[2]; } __two; - - template<typename _Tp1, typename... _Args1> - static decltype(::new _Tp1(std::declval<_Args1>()...), __one()) - __test(int); - - template<typename, typename...> - static __two __test(...); - - public: - static const bool value = sizeof(__test<_Tp, _Args...>(0)) == 1; - }; - -static_assert( !is_constructible_mini<int[], int>::value, ""); -static_assert( !is_constructible_mini<void, int>::value, ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae40.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae40.C deleted file mode 100644 index 18e5fecb2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae40.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/54541 -// { dg-do compile { target c++11 } } - -template <typename T> T&& declval(); - -struct X; - -X f(int); - -template <class T> -void g(decltype((void)f(declval<T>())) *) -{} - -template <class T> -void g(...) -{} - -int main() -{ - g<int>(0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae41.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae41.C deleted file mode 100644 index bd6f624f0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae41.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/54542 -// { dg-do compile { target c++11 } } - -template <class T> -void f(decltype(new T(1, 2)) *) -{ - T(1, 2); -} - -template <class T> -void f(...) -{} - -int main() -{ - f<int>(0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae42.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae42.C deleted file mode 100644 index a7a23a317..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae42.C +++ /dev/null @@ -1,46 +0,0 @@ -// PR c++/54738 -// { dg-do compile { target c++11 } } - -template<class T> -T&& declval(); - -template<class F, class T1, class... Ts> -decltype(((*declval<T1>()).*declval<F>())(declval<Ts>()...)) -test1(int); - -template<class...> -void test1(...); - -template<class F, class T1, class... Ts> -decltype((declval<T1>().*declval<F>())(declval<Ts>()...)) -test2(int); - -template<class...> -void test2(...); - -struct S {}; - -typedef void (S::*Func)(int) const; -typedef void (S::*Func2)(int); - -typedef decltype(test1<Func, S*>(0)) type1a; -typedef decltype(test1<Func, S*&>(0)) type1b; -typedef decltype(test1<Func, S*, int, int>(0)) type1c; -typedef decltype(test1<Func, S*&, int, int>(0)) type1d; - -typedef decltype(test2<Func, S>(0)) type2a; -typedef decltype(test2<Func, S&>(0)) type2b; -typedef decltype(test2<Func, S, int, int>(0)) type2c; -typedef decltype(test2<Func, S&, int, int>(0)) type2d; - -typedef decltype(test1<Func, S*, S>(0)) type3a; -typedef decltype(test1<Func, S*&, S>(0)) type3b; - -typedef decltype(test2<Func, S, S>(0)) type4a; -typedef decltype(test2<Func, S&, S>(0)) type4b; - -typedef decltype(test1<Func2, const S*, int>(0)) type5a; -typedef decltype(test1<Func2, const S*&, int>(0)) type5b; - -typedef decltype(test2<Func2, const S, int>(0)) type6a; -typedef decltype(test2<Func2, const S&, int>(0)) type6b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae43.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae43.C deleted file mode 100644 index 22efe657f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae43.C +++ /dev/null @@ -1,31 +0,0 @@ -// PR c++/56208 -// { dg-options -std=c++11 } - -struct ostream { - ostream& operator<<(int); -}; - -struct sfinae_base { - - typedef char one; - typedef char (&two)[2]; - - template<class T> - static T make(); - - template<unsigned> struct ok { typedef int type; }; - - template<class U, class T> - static one test(decltype((make<U>() << make<T>()), 0)); - - template<class, class> - static two test(...); -}; - -template<class T> -struct is_printable : private sfinae_base -{ - enum { value = sizeof(test<ostream&, T>(0)) == sizeof(one) }; -}; - -typedef int ok[is_printable<int>::value ? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae44.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae44.C deleted file mode 100644 index bbcae6226..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae44.C +++ /dev/null @@ -1,26 +0,0 @@ -// PR c++/56913 -// { dg-do compile { target c++11 } } - -template<typename T> -T &&declval(); - -template<typename T, typename U, - typename = decltype((declval<T>().*declval<U>())())> -constexpr bool test(int) -{ - return true; -} - -template<typename T, typename U> -constexpr bool test(...) -{ - return false; -} - -struct S -{}; - -static_assert(!test<S, void (S::*)() &>(0), ""); -static_assert(test<S, void (S::*)() &&>(0), ""); -static_assert(test<S &, void (S::*)() &>(0), ""); -static_assert(!test<S &, void (S::*)() &&>(0), ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae45.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae45.C deleted file mode 100644 index bd375145f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae45.C +++ /dev/null @@ -1,35 +0,0 @@ -// PR c++/56970 -// { dg-do compile { target c++11 } } - -template <typename T> -struct has -{ - template <typename> - constexpr static int test(...) { - return 0; - } - - template <typename C> - constexpr static int test(decltype(sizeof(C::x))) { // Doesn't compile. - return 1; // Is a member variable. - } - - template <typename C, int c = sizeof(decltype(((C*)nullptr)->x()))> - constexpr static int test(int) { - return 2; // Is a member function. - } - - static const int value = test<T>(0); -}; - -struct foo { - int x; -}; - -struct bar { - int x(); -}; - -static_assert(has<int>::value == 0, ""); -static_assert(has<foo>::value == 1, ""); -static_assert(has<bar>::value == 2, ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae5.C deleted file mode 100644 index 8474fb314..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae5.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options -std=c++0x } - -template<class T> -T&& create(); - -template <class T, class U, - class = decltype(create<T>() = create<U>()) - > -char test(int); - -template <class, class> -double test(...); - -int main() { - test<int[], int[]>(0); // #1 -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae6.C deleted file mode 100644 index 401d5362d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae6.C +++ /dev/null @@ -1,31 +0,0 @@ -// PR c++/48113 -// { dg-options -std=c++0x } - -template<typename T> T declval(); - -struct tuple { }; - -struct F1 -{ - void operator()(tuple, int); -}; - -typedef void (*F2)(tuple, int); - -template<typename F, typename T> -struct Bind -{ - template<typename A, - typename R = decltype( F()(declval<T&>(), A()) )> - R f(A); - - template<typename A, - typename R = decltype( F()(declval<volatile T&>(), A()) )> - R f(A) volatile; -}; - -int main() -{ - Bind<F1, tuple>().f(0); // OK - Bind<F2, tuple>().f(0); // ERROR, should be OK -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae7.C deleted file mode 100644 index 0a95a9644..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae7.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-options -std=c++0x } - -struct A -{ - void f(); - void f(int); - typedef int g; -}; - -template <class T> decltype (T::f) f(); -template <class T> void f(); - -template <class T> decltype (T::g) g(); -template <class T> void g(); - -int main() -{ - f<A>(); - g<A>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae8.C deleted file mode 100644 index 7f3012f94..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae8.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/48449 -// { dg-options -std=c++0x } - -template<class T, class = decltype(T())> -char f(int); - -template<class> -char (&f(...))[2]; - -struct A { virtual ~A() = 0; }; - -static_assert(sizeof(f<int&>(0)) != 1, "Error"); -static_assert(sizeof(f<void()>(0)) != 1, "Error"); -static_assert(sizeof(f<A>(0)) != 1, "Error"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae9.C deleted file mode 100644 index 6f1de21d5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/sfinae9.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/48450 -// { dg-options -std=c++0x } - -namespace std { - template <class T> T&& declval(); -}; - -template<class To, class From, - class = decltype(static_cast<To>(std::declval<From>())) -> -char f(int); - -template<class, class> -char (&f(...))[2]; - -struct A { virtual ~A() = 0; }; -struct B {}; -struct D : B {}; - -static_assert(sizeof(f<A, int>(0)) != 1, "Error"); // a -static_assert(sizeof(f<int*, const void*>(0)) != 1, "Error"); // b -static_assert(sizeof(f<D*, const B*>(0)) != 1, "Error"); // c -static_assert(sizeof(f<int B::*, const int D::*>(0)) != 1, "Error"); // d -static_assert(sizeof(f<B, void>(0)) != 1, "Error"); // e diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert1.C deleted file mode 100644 index a54617598..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert1.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "-std=c++0x" } -void foo() -{ - static_assert(1, "okay"); - static_assert (0 == 1, "zero is never equal to one"); // { dg-error "never equal" } -} - -class X { - static_assert(1, "okay"); - static_assert (0 == 1, "zero is never equal to one"); // { dg-error "never equal" } -}; - -static_assert(1, "okay"); -static_assert (0 == 1, "zero is never equal to one"); // { dg-error "never equal" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert2.C deleted file mode 100644 index 3e74bb1b4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert2.C +++ /dev/null @@ -1,35 +0,0 @@ -// { dg-options "-std=c++0x" } -template<int I> -struct accept_evens { - static_assert( I % 2 == 0, "I must be an even number"); // { dg-error "even number" } -}; - -template<int I> -struct accept_evens_ok { - static_assert( I % 2 == 0, "I must be an even number"); -}; - -template<int I> -void accept_odds() { - static_assert( I % 2 == 1, "I must be an odd number"); // { dg-error "odd number" } -} - -template<int I> -void accept_odds_ok() { - static_assert( I % 2 == 1, "I must be an odd number"); -} - -void f() -{ - accept_odds<1>(); - accept_odds<2>(); - accept_odds<3>(); - accept_odds_ok<5>(); - accept_odds_ok<7>(); -} - -accept_evens<0> ok0; -accept_evens<1> error1; -accept_evens<2> ok2; -accept_evens_ok<4> ok4; -accept_evens_ok<6> ok6; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert3.C deleted file mode 100644 index 0a4cbc98a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert3.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-options "-std=c++0x" } -static_assert(7 / 0, "X"); // { dg-error "non-constant condition" "non-constant" } -// { dg-warning "division by zero" "zero" { target *-*-* } 2 } -// { dg-error "7 / 0.. is not a constant expression" "not a constant" { target *-*-* } 2 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert4.C deleted file mode 100644 index b0818873f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert4.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=c++0x --param ggc-min-heapsize=0 --param ggc-min-expand=0 " } -// PR C++/30033 -// Make sure that the static assert does not crash the GC. - -template <class T> -struct default_delete -{ - void - operator() (T * ptr) const - { - static_assert (sizeof (T) > 0, "Can't delete pointer to incomplete type"); - } -}; - - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert5.C deleted file mode 100644 index b91879622..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert5.C +++ /dev/null @@ -1,21 +0,0 @@ -// PR c++/50837 -// { dg-options "-std=c++0x" } - -template<class T> -struct z -{ - static constexpr bool test_constexpr() - { - return true; - } - - static void test() - { - static_assert(test_constexpr(), "test1"); - } -}; - -int main() -{ - z<int>::test(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert6.C deleted file mode 100644 index d1ab0dded..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert6.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/51397 -// { dg-options "-std=c++0x" } - -static_assert('X' != '\130', "'X' has the wrong value"); // { dg-error "'X' has the wrong value" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert7.C deleted file mode 100644 index 28793e434..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert7.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/53166 -// { dg-options "-std=c++11 -Waddress" } - -template <typename X, X a> -struct A -{ - static_assert (a != nullptr, "oops"); - static_assert (nullptr != a, "oops"); - - int f() - { - static_assert (a != nullptr, "oops"); - static_assert (nullptr != a, "oops"); - return 1; - } -}; - -int i1; -A<int*, &i1> a1; -int i2 = a1.f(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert8.C deleted file mode 100644 index ea23afb85..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/static_assert8.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-do compile { target c++11 } } - -static_assert (1 == 0); // { dg-error "expected (string-literal|',') before" } - -static_assert (1 == 0,); // { dg-error "expected string-literal before '\\)'" } - -static_assert (1 == 0, "oops"); // { dg-error "static assertion failed" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/std-layout1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/std-layout1.C deleted file mode 100644 index bdad82111..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/std-layout1.C +++ /dev/null @@ -1,91 +0,0 @@ -// { dg-options "-std=c++0x" } - -// [basic.types]/10: -// Scalar types, standard-layout class types (Clause 9), arrays of such -// types and cv-qualified versions of these types (3.9.3) are collectively -// called standard-layout types. - -// [class]/7: -// A standard-layout class is a class that: -// * has no non-static data members of type non-standard-layout class (or -// array of such types) or reference, -// * has no virtual functions (10.3) and no virtual base classes (10.1), -// * has the same access control (Clause 11) for all non-static data members, -// * has no non-standard-layout base classes, -// * either has no non-static data members in the most-derived class and at -// most one base class with non-static data members, or has no base classes -// with non-static data members, and -// * has no base classes of the same type as the first non-static data member. - -#include <type_traits> - -#define TRY(expr) static_assert (expr, #expr) -#define YES(type) TRY(std::is_standard_layout<type>::value); \ - TRY(std::is_standard_layout<type[]>::value); \ - TRY(std::is_standard_layout<const volatile type>::value); -#define NO(type) TRY(!std::is_standard_layout<type>::value); \ - TRY(!std::is_standard_layout<type[]>::value); \ - TRY(!std::is_standard_layout<const volatile type>::value); -#define NONPOD(type) TRY(!std::is_pod<type>::value); \ - TRY(!std::is_pod<type[]>::value); \ - TRY(!std::is_pod<const volatile type>::value); - -struct A; - -YES(int); -YES(__complex int); -YES(void *); -YES(int A::*); -typedef int (A::*pmf)(); -YES(pmf); - -struct A { ~A(); }; -YES(A); -NONPOD(A); -struct F: public A { int i; }; -YES(F); -NONPOD(F); -struct G: public A { A a; }; -NO(G); -struct M { A a; }; -YES(M); - -class B -{ - int i; - __complex int c; - void *p; - double ar[4]; - int A::* pm; - int (A::*pmf)(); -}; -YES(B); -struct D: public B { }; -YES(D); -struct E: public B { int q; }; -NO(E); -struct D2: public B { }; -YES(D2); -struct I: public D, public D2 { }; -NO(I); - -struct C -{ - int i; -private: - int j; -}; -NO(C); -struct H: public C { }; -NO(H); -struct N { C c; }; -NO(N); - -struct J { virtual void f(); }; -struct J2: J { }; -NO(J); -NO(J2); -struct K { }; -struct L: virtual K {}; -YES(K); -NO(L); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/std_fext-numeric-literals.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/std_fext-numeric-literals.C deleted file mode 100644 index e71cdc5ab..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/std_fext-numeric-literals.C +++ /dev/null @@ -1,115 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++11 -fext-numeric-literals" } - -// Integer imaginary... - -constexpr unsigned long long -operator"" i(unsigned long long n) // { dg-warning "shadowed by implementation" } -{ return 4 * n + 0; } - -constexpr unsigned long long -operator"" I(unsigned long long n) // { dg-warning "shadowed by implementation" } -{ return 4 * n + 1; } - -constexpr unsigned long long -operator"" j(unsigned long long n) // { dg-warning "shadowed by implementation" } -{ return 4 * n + 2; } - -constexpr unsigned long long -operator"" J(unsigned long long n) // { dg-warning "shadowed by implementation" } -{ return 4 * n + 3; } - -// Floating-point imaginary... - -constexpr long double -operator"" i(long double n) // { dg-warning "shadowed by implementation" } -{ return 4.0L * n + 0.0L; } - -constexpr long double -operator"" I(long double n) // { dg-warning "shadowed by implementation" } -{ return 4.0L * n + 1.0L; } - -constexpr long double -operator"" j(long double n) // { dg-warning "shadowed by implementation" } -{ return 4.0L * n + 2.0L; } - -constexpr long double -operator"" J(long double n) // { dg-warning "shadowed by implementation" } -{ return 4.0L * n + 3.0L; } - -// Fixed-point... - -constexpr long double -operator"" k(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 1) + 0; } - -constexpr long double -operator"" K(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 1) + 1; } - -constexpr long double -operator"" r(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 1) + 2; } - -constexpr long double -operator"" R(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 1) + 3; } - -// Machine-defined... - -constexpr long double -operator"" w(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 2) + 0; } - -constexpr long double -operator"" W(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 2) + 1; } - -constexpr long double -operator"" q(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 2) + 2; } - -constexpr long double -operator"" Q(long double n) // { dg-warning "shadowed by implementation" } -{ return 4 * (n + 2) + 3; } - -int -main() -{ - auto ii = 1i; - auto Ii = 1I; - auto ji = 1j; - auto Ji = 1J; - - auto ifp = 1.0i; - auto Ifp = 1.0I; - auto jfp = 1.0j; - auto Jfp = 1.0J; - - auto kfp = 1.0k; // { dg-error "fixed-point types not supported" } - auto Kfp = 1.0K; // { dg-error "fixed-point types not supported" } - auto rfp = 1.0r; // { dg-error "fixed-point types not supported" } - auto Rfp = 1.0R; // { dg-error "fixed-point types not supported" } - - auto wfp = 1.0w; // { dg-error "unsupported" "" { target { ! has_w_floating_suffix } } } - auto Wfp = 1.0W; // { dg-error "unsupported" "" { target { ! has_w_floating_suffix } } } - auto qfp = 1.0q; // { dg-error "unsupported" "" { target { ! has_q_floating_suffix } } } - auto Qfp = 1.0Q; // { dg-error "unsupported" "" { target { ! has_q_floating_suffix } } } -} - -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 7 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 11 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 15 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 19 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 25 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 29 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 33 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 37 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 43 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 47 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 51 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 55 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 61 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 65 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 69 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 73 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/std_fno-ext-numeric-literals.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/std_fno-ext-numeric-literals.C deleted file mode 100644 index 488db42ca..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/std_fno-ext-numeric-literals.C +++ /dev/null @@ -1,115 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++11" } - -// Integer imaginary... - -constexpr unsigned long long -operator"" i(unsigned long long n) -{ return 4 * n + 0; } - -constexpr unsigned long long -operator"" I(unsigned long long n) -{ return 4 * n + 1; } - -constexpr unsigned long long -operator"" j(unsigned long long n) -{ return 4 * n + 2; } - -constexpr unsigned long long -operator"" J(unsigned long long n) -{ return 4 * n + 3; } - -// Floating-point imaginary... - -constexpr long double -operator"" i(long double n) -{ return 4.0L * n + 0.0L; } - -constexpr long double -operator"" I(long double n) -{ return 4.0L * n + 1.0L; } - -constexpr long double -operator"" j(long double n) -{ return 4.0L * n + 2.0L; } - -constexpr long double -operator"" J(long double n) -{ return 4.0L * n + 3.0L; } - -// Fixed-point... - -constexpr long double -operator"" k(long double n) -{ return 4 * (n + 1) + 0; } - -constexpr long double -operator"" K(long double n) -{ return 4 * (n + 1) + 1; } - -constexpr long double -operator"" r(long double n) -{ return 4 * (n + 1) + 2; } - -constexpr long double -operator"" R(long double n) -{ return 4 * (n + 1) + 3; } - -// Machine-defined... - -constexpr long double -operator"" w(long double n) -{ return 4 * (n + 2) + 0; } - -constexpr long double -operator"" W(long double n) -{ return 4 * (n + 2) + 1; } - -constexpr long double -operator"" q(long double n) -{ return 4 * (n + 2) + 2; } - -constexpr long double -operator"" Q(long double n) -{ return 4 * (n + 2) + 3; } - -int -main() -{ - auto ii = 1i; - auto Ii = 1I; - auto ji = 1j; - auto Ji = 1J; - - auto ifp = 1.0i; - auto Ifp = 1.0I; - auto jfp = 1.0j; - auto Jfp = 1.0J; - - auto kfp = 1.0k; - auto Kfp = 1.0K; - auto rfp = 1.0r; - auto Rfp = 1.0R; - - auto wfp = 1.0w; - auto Wfp = 1.0W; - auto qfp = 1.0q; - auto Qfp = 1.0Q; -} - -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 7 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 11 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 15 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 19 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 25 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 29 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 33 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 37 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 43 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 47 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 51 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 55 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 61 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 65 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 69 } -// { dg-warning "literal operator suffixes not preceded by" "" { target *-*-* } 73 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/stddef.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/stddef.C deleted file mode 100644 index dad9200cc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/stddef.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/54249 -// { dg-do compile { target c++11 } } - -#include <stddef.h> - -::nullptr_t n; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/stdint.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/stdint.C deleted file mode 100644 index 434d45824..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/stdint.C +++ /dev/null @@ -1,135 +0,0 @@ -// PR c++/52764 -// { dg-require-effective-target stdint_types } -// { dg-do compile { target c++11 } } - -#include <stdint.h> - -#ifdef __INT8_TYPE__ -# if (!defined INT8_MAX \ - || !defined INT8_MIN) -# error -# endif -#endif -#ifdef __UINT8_TYPE__ -# if !defined UINT8_MAX -# error -# endif -#endif -#ifdef __INT16_TYPE__ -# if (!defined INT16_MAX \ - || !defined INT16_MIN) -# error -# endif -#endif -#ifdef __UINT16_TYPE__ -# if !defined UINT16_MAX -# error -# endif -#endif -#ifdef __INT32_TYPE__ -# if (!defined INT32_MAX \ - || !defined INT32_MIN) -# error -# endif -#endif -#ifdef __UINT32_TYPE__ -# if !defined UINT32_MAX -# error -# endif -#endif -#ifdef __INT64_TYPE__ -# if (!defined INT64_MAX \ - || !defined INT64_MIN) -# error -# endif -#endif -#ifdef __UINT64_TYPE__ -# if !defined UINT64_MAX -# error -# endif -#endif - -#if (!defined INT_LEAST8_MAX \ - || !defined INT_LEAST8_MIN \ - || !defined UINT_LEAST8_MAX \ - || !defined INT_LEAST16_MAX \ - || !defined INT_LEAST16_MIN \ - || !defined UINT_LEAST16_MAX \ - || !defined INT_LEAST32_MAX \ - || !defined INT_LEAST32_MIN \ - || !defined UINT_LEAST32_MAX \ - || !defined INT_LEAST64_MAX \ - || !defined INT_LEAST64_MIN \ - || !defined UINT_LEAST64_MAX) -#error -#endif - -#if (!defined INT_FAST8_MAX \ - || !defined INT_FAST8_MIN \ - || !defined UINT_FAST8_MAX \ - || !defined INT_FAST16_MAX \ - || !defined INT_FAST16_MIN \ - || !defined UINT_FAST16_MAX \ - || !defined INT_FAST32_MAX \ - || !defined INT_FAST32_MIN \ - || !defined UINT_FAST32_MAX \ - || !defined INT_FAST64_MAX \ - || !defined INT_FAST64_MIN \ - || !defined UINT_FAST64_MAX) -#error -#endif - -#ifdef __INTPTR_TYPE__ -# if (!defined INTPTR_MAX \ - || !defined INTPTR_MIN) -# error -# endif -#endif -#ifdef __UINTPTR_TYPE__ -# if !defined UINTPTR_MAX -# error -# endif -#endif - -#if (!defined INTMAX_MAX \ - || !defined INTMAX_MIN \ - || !defined UINTMAX_MAX) -#error -#endif - -#if (!defined PTRDIFF_MAX \ - || !defined PTRDIFF_MIN) -#error -#endif - -#if (!defined SIG_ATOMIC_MAX \ - || !defined SIG_ATOMIC_MIN) -#error -#endif - -#if !defined SIZE_MAX -#error -#endif - -#if (!defined WCHAR_MAX \ - || !defined WCHAR_MIN) -#error -#endif - -#if (!defined WINT_MAX \ - || !defined WINT_MIN) -#error -#endif - -#if (!defined INT8_C \ - || !defined INT16_C \ - || !defined INT32_C \ - || !defined INT64_C \ - || !defined UINT8_C \ - || !defined UINT16_C \ - || !defined UINT32_C \ - || !defined UINT64_C \ - || !defined INTMAX_C \ - || !defined UINTMAX_C) -#error -#endif diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/syntax-err1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/syntax-err1.C deleted file mode 100644 index ce1c9eea5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/syntax-err1.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/47198 -// { dg-options -std=c++0x } - -struct S -{ - template < int > sometype foo (); // { dg-error "sometype. does not name a type" } - S () = default; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp-constructor-bug.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp-constructor-bug.C deleted file mode 100644 index a06720702..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp-constructor-bug.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "--std=c++0x" } - -struct S { }; - -struct T -{ - S s; -}; - -void f(T const &); - -void g() -{ - f((T){S()}); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp-va-arg-bug.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp-va-arg-bug.C deleted file mode 100644 index 085915f90..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp-va-arg-bug.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "--std=c++0x" } -// { dg-options "-Wno-abi --std=c++0x" { target arm_eabi } } -#include <stdarg.h> - -struct S { }; -void f(S const &); - -void g(va_list args) -{ - f(va_arg(args, S)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default1.C deleted file mode 100644 index dfa2cfb7b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default1.C +++ /dev/null @@ -1,32 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> { - static const bool value = true; -}; - -template<typename T = int> void f() -{ - static_assert(is_same<T, int>::value, - "T can only be instantiated with an int"); -} - -template<typename T = int, typename U> -void f(U) -{ - static_assert(is_same<T, int>::value, - "T can only be instantiated with an int"); -} - -void g() -{ - float pi = 3.14159; - f(); - f(pi); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default2.C deleted file mode 100644 index dab1650e4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default2.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "-std=c++0x" } - -template <class T, class U = double> -void f(T t = 0, U u = 0); // { dg-message "note" } - -void g() -{ - f(1, 'c'); // f<int,char>(1,'c') - f(1); // f<int,double>(1,0) - f(); // { dg-error "no matching function" } - // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 10 } - f<int>(); // f<int,double>(0,0) - f<int,char>(); // f<int,char>(0,0) -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default3.C deleted file mode 100644 index f71fe0f43..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default3.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<typename T, typename U = typename T::value_type> -void f(T); - -void f(...); - -struct X { - typedef int value_type; -}; - -void g() -{ - f(X()); // okay - f(17); // okay? -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default4.C deleted file mode 100644 index f1e254c40..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default4.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=c++0x" } - -class X { - template<typename T = int> friend void f(X) { } - template<typename T> friend void g(X); // { dg-error "previously declared here" } - template<typename T = int> friend void h(X); // { dg-error "function template friend" } -}; - -template<typename T = int> void g(X) // { dg-error "default template argument" } -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default5.C deleted file mode 100644 index 21ad5fb03..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/temp_default5.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=c++11" } - -template <class Z = void, class T> -void Foo(T) -{ - struct X {}; -} - -template <class T = int, typename U> -void f(const U&) -{ - auto g = [] () {}; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/template_deduction.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/template_deduction.C deleted file mode 100644 index c1eace6fa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/template_deduction.C +++ /dev/null @@ -1,68 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test the "Augmented" template argument deduction when binding an lvalue to an rvalue reference. - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -template <class T, T v> -struct integral_constant -{ - static const T value = v; - typedef T value_type; - typedef integral_constant<T, v> type; -}; - -typedef integral_constant<bool, true> true_type; -typedef integral_constant<bool, false> false_type; - -template <class T> struct is_lvalue_reference : public integral_constant<bool, false> {}; -template <class T> struct is_lvalue_reference<T&> : public integral_constant<bool, true> {}; - -template <class T> struct is_rvalue_reference : public integral_constant<bool, false> {}; -template <class T> struct is_rvalue_reference<T&&> : public integral_constant<bool, true> {}; - -template <bool is_lvalue_ref, bool is_rvalue_ref, class T> -void -test1(T&&) -{ - sa<is_lvalue_reference<T&&>::value == is_lvalue_ref> t1; - sa<is_rvalue_reference<T&&>::value == is_rvalue_ref> t2; -} - -template <bool is_lvalue_ref, bool is_rvalue_ref, class T> -void -test2(const T&&) // { dg-error "argument" } -{ - sa<is_lvalue_reference<const T&&>::value == is_lvalue_ref> t1; - sa<is_rvalue_reference<const T&&>::value == is_rvalue_ref> t2; -} - -template <bool is_lvalue_ref, bool is_rvalue_ref, class T> -void -test3(T*&&) -{ - sa<is_lvalue_reference<T*&&>::value == is_lvalue_ref> t1; - sa<is_rvalue_reference<T*&&>::value == is_rvalue_ref> t2; -} - -struct A {}; - -A a; - -A source() {return A();} -A* sourcep() {return 0;} - -int main() -{ - test1<true, false>(a); - test1<false, true>(source()); - test2<false, true>(a); // { dg-error "lvalue" } - test2<false, true>(source()); - test3<false, true>(&a); - test3<false, true>(sourcep()); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing1.C deleted file mode 100644 index f637857b4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing1.C +++ /dev/null @@ -1,117 +0,0 @@ -// Tests for late-specified return type. -// { dg-options "-std=c++0x -fabi-version=5" } - -auto f() -> int -{ - return 0; -} - -template<class T, class U> -auto add(T t, U u) -> decltype (t+u) -{ - return t+u; -} - -template<class T, class U> -decltype(T()+U()) add2(T t, U u) -{ - return t+u; -} - -template <class T, class U> -U ag (T, U) -{ - return U(); -} - -template<class T, class U> -auto add3(T t, U u) -> decltype (ag(t,u)) -{ - return ag(t,u); -} - -template<class T, class U> -decltype(*(T*)0+*(U*)0) add4(T t, U u) -{ - return t+u; -} - -template <class T> -struct A -{ - T f() {} - template <class U> - T g() {} - template <class V> - struct B - { - int MEM; - }; -}; - -template <class T> -auto f(T* t) -> decltype (t->f()) -{ - return t->f(); -} - -template <class T> -auto g(T t) -> decltype (t.f()) -{ - return t.f(); -} - -template <class T, class U> -auto h(T t, U u) -> decltype (t.template g<U>()) -{ - return t.template g<U>(); -} - -struct D { }; -struct C: public A<int>::B<D> -{ -}; - -template <class T, class U, class V> -auto k(T t, U u, V v) -> decltype (t.U::template B<V>::MEM) -{ - return t.U::template B<V>::MEM; -} - -template <class T> -auto l(T t) -> decltype (t) -{ - return t; -} - -template <class T, T u> -auto m(T t) -> decltype (u) -{ - return t; -} - -A<int> a, *p; - -int main() -{ - // { dg-final { scan-assembler "_Z3addIidEDTplfp_fp0_ET_T0_" } } - auto i = add(1, 2.0); - // { dg-final { scan-assembler "_Z4add4IidEDTpldecvPT_Li0EdecvPT0_Li0EES0_S2_" } } - auto i4 = add4(1, 2.0); - // { dg-final { scan-assembler "_Z4add2IidEDTplcvT__EcvT0__EES0_S1_" } } - auto i2 = add2(1, 2.0); - // { dg-final { scan-assembler "_Z4add3IidEDTcl2agfp_fp0_EET_T0_" } } - auto i3 = add3(1, 2.0); - // { dg-final { scan-assembler "_Z1fI1AIiEEDTclptfp_1fEEPT_" } } - f(p); - // { dg-final { scan-assembler "_Z1gI1AIiEEDTcldtfp_1fEET_" } } - g(a); - // { dg-final { scan-assembler "_Z1hI1AIiEdEDTcldtfp_1gIT0_EEET_S2_" } } - h(a,1.0); - // { dg-final { scan-assembler "_Z1kI1C1AIiE1DEDtdtfp_srNT0_1BIT1_EE3MEMET_S4_S6_" } } - k( C(), A<int>(), D() ); - // { dg-final { scan-assembler "_Z1lIiEDtfp_ET_" } } - l(1); - // { dg-final { scan-assembler "_Z1mIiLi1EEDtT0_ET_" } } - m<int,1>(1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing2.C deleted file mode 100644 index 91e55578d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing2.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/37967 -// Negative test for auto -// { dg-do compile { target c++11 } } - -auto f1 () -> int; -auto f2 (); // { dg-error "without trailing return type" } -int f3 () -> int; // { dg-error "trailing return type" } -auto *f4 () -> int; // { dg-error "trailing return type" } - -struct A -{ - auto f5 () const -> int; - auto f6 (); // { dg-error "without trailing return type" } - int f7 () -> int; // { dg-error "trailing return type" } - auto *f8 () -> int; // { dg-error "trailing return type" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing3.C deleted file mode 100644 index 1c64f4573..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing3.C +++ /dev/null @@ -1,63 +0,0 @@ -// More auto/decltype mangling tests. -// { dg-options "-std=c++0x -fabi-version=0" } - -template <class T> -struct B -{ - static int i; -}; - -int&& x(); - -template <class T> -struct A -{ - static int i; - static int &ir; - static int &&irr; - template <class U> - auto f(U u) -> decltype (u + i); - template <class U> - auto fr(U u) -> decltype (u + ir); - template <class U> - auto frr(U u) -> decltype (u + irr); - template <class U> - auto g(U u) -> decltype (u + sizeof (i)); - template <class U> - auto h(U u) -> decltype (u + B<U>::i); - template <class U> - auto j(U u) -> decltype (u + x()); -}; - -template<class T> template<class U> -auto A<T>::f(U u) -> decltype (u + i) -{ - return u + i; -} - -template <class... Args> -int f (Args... args); - -template <class... Args> -auto g (Args... args) -> decltype (f ((args+1)...)) -{ - return (f ((args+1)...)); -} - -int main() -{ - // { dg-final { scan-assembler "_ZN1AIiE1fIiEEDTplfp_L_ZNS0_1iEEET_" } } - A<int>().f(1); - // { dg-final { scan-assembler "_ZN1AIiE2frIiEEDTplfp_L_ZNS0_2irEEET_" } } - A<int>().fr(1); - // { dg-final { scan-assembler "_ZN1AIiE3frrIiEEDTplfp_L_ZNS0_3irrEEET_" } } - A<int>().frr(1); - // { dg-final { scan-assembler "_ZN1AIiE1gIiEEDTplfp_szL_ZNS0_1iEEET_" } } - A<int>().g(1); - // { dg-final { scan-assembler "_ZN1AIiE1hIiEEDTplfp_sr1BIT_E1iES3_" } } - A<int>().h(1); - // { dg-final { scan-assembler "_ZN1AIiE1jIiEEDTplfp_clL_Z1xvEEET_" } } - A<int>().j(1); - // { dg-final { scan-assembler "_Z1gIJidEEDTcl1fspplfp_Li1EEEDpT_" } } - g(42, 1.0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing4.C deleted file mode 100644 index 8d4baa97e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing4.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/38597 -// { dg-options "-std=c++0x" } - -template<class T, class U> -auto f(T,U) -> decltype(T() + U()) -{ return T() + U(); } - -template<class T> void g(T){} // { dg-message "note" } - -int main() { g(f); } // { dg-error "no matching function" } -// { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 10 } - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing5.C deleted file mode 100644 index b97d362be..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing5.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/38798, DR 770 -// { dg-options -std=c++0x } - -struct A {}; -auto foo() -> struct A {} - -enum B {}; -auto bar() -> enum B {} - -auto baz() -> struct C {} {} // { dg-error "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing6.C deleted file mode 100644 index 3476e90e5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing6.C +++ /dev/null @@ -1,6 +0,0 @@ -// PR c++/49003 -// { dg-options -std=c++0x } - -struct A { - auto a() const -> decltype(this) { return this; } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing7.C deleted file mode 100644 index c4db10ec8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing7.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/50365 -// { dg-options -std=c++0x } - -struct A { int i; }; - -struct B { - B(); - A* f(); -}; - -B::B() -{ - int(f()->i); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing8.C deleted file mode 100644 index 304845e66..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing8.C +++ /dev/null @@ -1,25 +0,0 @@ -// PR c++/54359 -// { dg-require-effective-target c++11 } - -int& ref(int& x) { return x; } -const int& ref(const int& x) { return x; } - -class A { - int x; - int f() const; - auto test1() const -> decltype(this); - auto test2() const -> decltype(ref(x)); - auto test3() const -> decltype(f()); -}; - -auto A::test1() const -> decltype(this) { - return this; -} - -auto A::test2() const -> decltype(ref(x)) { - return ref(x); -} - -auto A::test3() const -> decltype(f()) { - return f(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing9.C deleted file mode 100644 index d7895b38e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trailing9.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/56646 -// { dg-require-effective-target c++11 } - -struct A { - void f(); -}; - -void A::f() { - struct B { - auto g() -> void { } - }; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/traits1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/traits1.C deleted file mode 100644 index 9085b71a3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/traits1.C +++ /dev/null @@ -1,133 +0,0 @@ -// PR c++/57016 -// { dg-require-effective-target c++11 } - -template < typename _Tp, _Tp __v > struct integral_constant -{ - static constexpr _Tp value = __v; -}; -template < bool, typename, typename > struct conditional; -template < typename ... >struct __and_; -template - < - typename - _B1, - typename - _B2 > struct __and_ <_B1, _B2 >:conditional < _B1::value, _B2, _B1 >::type -{}; -template < typename _Pp > struct __not_:integral_constant < bool, _Pp::value > -{}; -template < typename > struct add_rvalue_reference; -template - < typename _Tp > typename add_rvalue_reference < _Tp >::type declval (); -template < bool, typename _Iftrue, typename > struct conditional -{ - typedef _Iftrue type; -}; -template < class, class > struct pair; -template < typename > class allocator; -template < typename, typename, typename > struct binary_function; -template < typename _Tp > struct equal_to:binary_function < _Tp, _Tp, bool > -{}; -template < typename > struct hash; -template < >struct hash <int > -{}; -template - < - typename, - typename, - typename, - typename, typename, typename, typename, typename > struct _Hashtable_base; -template - < - typename, - typename - > struct __is_noexcept_hash:integral_constant < bool, noexcept ((declval)) > -{} -; -struct _Identity; -template < bool, bool _Constant_iterators, bool > struct _Hashtable_traits - ; -struct _Mod_range_hashing; -struct _Default_ranged_hash; -struct _Prime_rehash_policy; -template - < - typename - _Tp, - typename - _Hash - > - using - __cache_default - = - __not_ - < - __and_ - < - integral_constant - < bool, __is_final (_Hash) >, __is_noexcept_hash < _Tp, _Hash > >>; -template < typename _Key, typename _Value, typename, typename _ExtractKey, typename _Equal, typename _H1, typename _H2, typename, typename _RehashPolicy, typename _Traits > class _Hashtable: -_Hashtable_base - < _Key, _Value, _ExtractKey, _Equal, _H1, _H2, _RehashPolicy, _Traits > -{} -; -template - < - bool - _Cache > using __uset_traits = _Hashtable_traits < _Cache, true, true >; -template - < - typename - _Value, - typename - _Hash - = - hash - < - _Value - >, - typename - _Pred - = - equal_to - < - _Value - >, - typename - _Alloc - = - allocator - < - _Value - >, - typename - _Tr - = - __uset_traits - < - __cache_default - < - _Value, - _Hash - >::value - > - > - using - __uset_hashtable - = - _Hashtable - < - _Value, - _Value, - _Alloc, - _Identity, - _Pred, - _Hash, - _Mod_range_hashing, _Default_ranged_hash, _Prime_rehash_policy, _Tr >; -template < class _Value, class = hash < _Value > >class unordered_set -{ - typedef __uset_hashtable < _Value > iterator; - template < typename > pair < iterator, bool > emplace (); -} -; -template class unordered_set < int >; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trivial1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trivial1.C deleted file mode 100644 index 109c8ccdb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/trivial1.C +++ /dev/null @@ -1,86 +0,0 @@ -// { dg-options "-std=c++0x" } - -// [basic.types]/10: -// Scalar types, trivial class types (Clause 9), arrays of such types and -// cv-qualified versions of these types (3.9.3) are collectively called -// trivial types. - -// [class]/6: -// A trivially copyable class is a class that: -// * has no non-trivial copy constructors (12.8), -// * has no non-trivial copy assignment operators (13.5.3, 12.8), and -// * has a trivial destructor (12.4). -// A trivial class is a class that has a trivial default constructor (12.1) -// and is trivially copyable. - -#include <type_traits> - -#define TRY(expr) static_assert (expr, #expr) -#define YES(type) TRY(std::is_trivial<type>::value); \ - TRY(std::is_trivial<type[]>::value); \ - TRY(std::is_trivial<const volatile type>::value); -#define NO(type) TRY(!std::is_trivial<type>::value); \ - TRY(!std::is_trivial<type[]>::value); \ - TRY(!std::is_trivial<const volatile type>::value); - -struct A; - -YES(int); -YES(__complex int); -YES(void *); -YES(int A::*); -typedef int (A::*pmf)(); -YES(pmf); - -struct A { ~A(); }; -NO(A); -struct F: public A { int i; }; -NO(F); -struct G: public A { A a; }; -NO(G); -struct M { A a; }; -NO(M); - -class B -{ - int i; - __complex int c; - void *p; - double ar[4]; - int A::* pm; - int (A::*pmf)(); -}; -YES(B); -struct D: public B { }; -YES(D); -struct E: public B { int q; }; -YES(E); -struct D2: public B { }; -YES(D2); -struct I: public D, public D2 { }; -YES(I); - -struct C -{ - int i; -private: - int j; -}; -YES(C); -struct H: public C { }; -YES(H); -struct N { C c; }; -YES(N); - -struct J { virtual void f(); }; -struct J2: J { }; -NO(J); -NO(J2); -struct K { }; -struct L: virtual K {}; -YES(K); -NO(L); - -// PR c++/41421 -struct O { O(int); }; -NO(O); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-addr.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-addr.C deleted file mode 100644 index 7d3286e00..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-addr.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=c++0x" } - -#include <cstddef> - -bool operator"" _yn(const char*, size_t); - -typedef bool (*pfunk)(const char*, size_t); -pfunk p = &operator"" _yn; - -bool tf = p("Hello,\0 World!", 14); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-args-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-args-neg.C deleted file mode 100644 index df7b7281c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-args-neg.C +++ /dev/null @@ -1,41 +0,0 @@ -// { dg-options -std=c++0x } - -#include <cstddef> - -class Foo { }; - -int -operator"" _Foo(); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(int *); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(unsigned long int); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(double); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(const float *, std::size_t); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(const wchar_t *, int); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(const char16_t *); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(char...); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(unsigned long long int, char); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(const char *, std::size_t, int); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(long double &); // { dg-error "has invalid argument list" } - -Foo -operator"" _Foo(std::size_t, const char16_t *); // { dg-error "has invalid argument list" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-args.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-args.C deleted file mode 100644 index ca2039c59..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-args.C +++ /dev/null @@ -1,38 +0,0 @@ -// { dg-options -std=c++0x } - -#include <cstddef> - -class Foo { }; - -Foo -operator"" _Foo(const char *); - -Foo -operator"" _Foo(unsigned long long int); - -Foo -operator"" _Foo(long double); - -Foo -operator"" _Foo(char); - -Foo -operator"" _Foo(wchar_t); - -Foo -operator"" _Foo(char16_t); - -Foo -operator"" _Foo(char32_t); - -Foo -operator"" _Foo(const char *, std::size_t); - -Foo -operator"" _Foo(const wchar_t *, std::size_t); - -Foo -operator"" _Foo(const char16_t *, std::size_t); - -Foo -operator"" _Foo(const char32_t *, std::size_t); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-args2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-args2.C deleted file mode 100644 index 1e7190fc8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-args2.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/52521 -// { dg-do compile } -// { dg-options -std=c++11 } - -#include <cstddef> - -int operator "" _a (const char *); -int operator "" _a (const char *, std::size_t); -int a = 123_a; -int a2 = "abc"_a; - -int operator "" _b (const char *, std::size_t); -int operator "" _b (const char *); -int b = 123_b; -int b2 = "abc"_b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-clink-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-clink-neg.C deleted file mode 100644 index a80e7244a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-clink-neg.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options -std=c++0x } - -extern "C" { - -int -operator"" _badclinkage(unsigned long long); // { dg-error "operator with C linkage" } - -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-concat-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-concat-neg.C deleted file mode 100644 index 61dc2ab02..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-concat-neg.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } - -#include <string> - -std::string operator"" _xxx(const char*, size_t); - -std::string operator"" _yyy(const char*, size_t); - -std::string concat = "Hello, "_xxx "World!"_yyy; // { dg-error "inconsistent user-defined literal suffixes" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-concat.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-concat.C deleted file mode 100644 index 612bc1d11..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-concat.C +++ /dev/null @@ -1,24 +0,0 @@ -// { dg-options "-std=c++0x" } - -#include <string> - -std::string operator"" _www(const char*, size_t); - -std::string concat01 = "Hello, " "World!"_www; - -std::string concat10 = "Hello, "_www "World!"; - -std::string concat11 = "Hello, "_www "World!"_www; - - -class Tachyon { }; - -Tachyon operator"" _fast(const char*, size_t); - -int operator"" _fast(const char32_t*, size_t); - -int speedy01 = "Hello, " U"World!"_fast; - -int speedy10 = "Hello, "_fast U"World!"; - -int speedy11 = "Hello, "_fast U"World!"_fast; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-constexpr.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-constexpr.C deleted file mode 100644 index 40b0dfac5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-constexpr.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } - -constexpr unsigned long long -operator"" _grow(unsigned long long n) -{ return 2 * n; } - -double buffer[25_grow]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-cpp98-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-cpp98-neg.C deleted file mode 100644 index cb4c35965..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-cpp98-neg.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options "-std=c++98" } - -#include <cstddef> - -int -operator"" _mm(long double m) // { dg-warning "user-defined literals only available with" } -{ return int(1000.0L * m); } - -int in = 0.0254_mm; // { dg-error "invalid suffix" } - -int -operator"" _Q(const char *, std::size_t) // { dg-warning "user-defined literals only available with" } -{ return 42; } - -int x = "Hello"_Q; // { dg-error "invalid conversion from" "invalid" } - -// { dg-error "expected" "expected" { target *-*-* } 15 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-declare-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-declare-neg.C deleted file mode 100644 index 9060abba4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-declare-neg.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Check that undeclared literal operator calls and literals give appropriate errors. - -int i = operator"" _Bar('x'); // { dg-error "was not declared in this scope" } -int j = 'x'_Bar; // { dg-error "unable to find character literal operator|with|argument" } - -int ii = operator"" _BarCharStr("Howdy, Pardner!"); // { dg-error "was not declared in this scope" } -int jj = "Howdy, Pardner!"_BarCharStr; // { dg-error "unable to find string literal operator|Possible missing length argument" } - -unsigned long long iULL = operator"" _BarULL(666ULL); // { dg-error "was not declared in this scope" } -unsigned long long jULL = 666_BarULL; // { dg-error "unable to find numeric literal operator" } - -long double iLD = operator"" _BarLD(666.0L); // { dg-error "was not declared in this scope" } -long double jLD = 666.0_BarLD; // { dg-error "unable to find numeric literal operator" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-embed-quote.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-embed-quote.C deleted file mode 100644 index 48a2a1b17..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-embed-quote.C +++ /dev/null @@ -1,34 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// Make sure embedded quotes are not a problem for string and char literals. - -#include <cstdint> -#include <cassert> - -int operator"" _embedchar(char) -{ return 41; }; - -int operator"" _embedstr(const char*, std::size_t len) -{ return 42 + len; }; - -void -test() -{ - int i = '\''_embedchar; - - int j = "\""_embedstr; - assert(j == 43); - - int k = "foo\""_embedstr; - assert(k == 46); - - int l = "\"bar"_embedstr; - assert(l == 46); -} - -int -main() -{ - test(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-friend.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-friend.C deleted file mode 100644 index b3f3ef8a6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-friend.C +++ /dev/null @@ -1,28 +0,0 @@ -// { dg-options -std=c++0x } - -long double -operator"" _Hertz(long double); - -class Foo -{ -public: - Foo() { } - - friend Foo operator"" _Bar(char); - - friend long double - operator"" _Hertz(long double omega) - { return omega / 6.28318530717958648; } -}; - -Foo -operator"" _Bar(char) -{ return Foo(); } - -Foo f1 = operator"" _Bar('x'); - -Foo f2 = 'x'_Bar; - -long double fm1 = operator"" _Hertz(552.92L); - -long double fm2 = 552.92_Hertz; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-general.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-general.C deleted file mode 100644 index 9e448ac80..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-general.C +++ /dev/null @@ -1,52 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// Test user-defined literals. -// Test simple operator declaration and definition. - -#include <cstring> -#include <string> -#include <complex> -#include <cassert> - -long double operator"" _v(long double); -std::string operator"" _w(const char16_t*, size_t); -unsigned operator"" _w(const char*); - -std::complex<double> -operator"" _i(long double y) -{ return std::complex<double>(0.0L, y); } - -void -test1() -{ - long double x = operator"" _v(1.2L); - assert(x == 2.2L); - - std::string s = operator"" _w(u"one", 3); - assert(s == "boo"); - - unsigned u = operator"" _w("Hello, World!"); - assert(u == 13U); - - std::complex<double> i = operator"" _i(2.0); - assert(i == std::complex<double>(0.0, 2.0)); -} - -int -main() -{ - test1(); -} - -long double -operator"" _v(long double x) -{ return x + 1.0L; } - -std::string -operator"" _w(const char16_t*, size_t) -{ return std::string("boo"); } - -unsigned -operator"" _w(const char* str) -{ return strlen(str); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-implicit-conv-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-implicit-conv-neg.C deleted file mode 100644 index 998ad155b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-implicit-conv-neg.C +++ /dev/null @@ -1,63 +0,0 @@ -// { dg-options -std=c++0x } - -#include <cstdint> - -int operator"" _bar (long double); - -double operator"" _foo (long long unsigned); - -int i = 12_bar; // { dg-error "unable to find numeric literal operator|with|argument" } - -double d = 1.2_foo; // { dg-error "unable to find numeric literal operator|with|argument" } - -int operator"" _char(char); - -int operator"" _wchar_t(wchar_t); - -int operator"" _char16_t(char16_t); - -int operator"" _char32_t(char32_t); - -int cwcx = 'c'_wchar_t; // { dg-error "unable to find character literal operator|with|argument" } -int cc16 = 'c'_char16_t; // { dg-error "unable to find character literal operator|with|argument" } -int cc32 = 'c'_char32_t; // { dg-error "unable to find character literal operator|with|argument" } - -int wccx = L'c'_char; // { dg-error "unable to find character literal operator|with|argument" } -int wcc16 = L'c'_char16_t; // { dg-error "unable to find character literal operator|with|argument" } -int wcc32 = L'c'_char32_t; // { dg-error "unable to find character literal operator|with|argument" } - -int c16c = u'c'_char; // { dg-error "unable to find character literal operator|with|argument" } -int c16wc = u'c'_wchar_t; // { dg-error "unable to find character literal operator|with|argument" } -int c16c32 = u'c'_char32_t; // { dg-error "unable to find character literal operator|with|argument" } - -int c32c = U'c'_char; // { dg-error "unable to find character literal operator|with|argument" } -int c32wc = U'c'_wchar_t; // { dg-error "unable to find character literal operator|with|argument" } -int c32c16 = U'c'_char16_t; // { dg-error "unable to find character literal operator|with|argument" } - -int operator"" _char_str(const char*, std::size_t); - -int operator"" _wchar_t_str(const wchar_t*, std::size_t); - -int operator"" _char16_t_str(const char16_t*, std::size_t); - -int operator"" _char32_t_str(const char32_t*, std::size_t); - -int strwstr = "str"_wchar_t_str; // { dg-error "unable to find string literal operator|with|arguments" } -int strstr16 = "str"_char16_t_str; // { dg-error "unable to find string literal operator|with|arguments" } -int strstr32 = "str"_char32_t_str; // { dg-error "unable to find string literal operator|with|arguments" } - -int str8wstr = u8"str"_wchar_t_str; // { dg-error "unable to find string literal operator|with|arguments" } -int str8str16 = u8"str"_char16_t_str; // { dg-error "unable to find string literal operator|with|arguments" } -int str8str32 = u8"str"_char32_t_str; // { dg-error "unable to find string literal operator|with|arguments" } - -int wstrstr = L"str"_char_str; // { dg-error "unable to find string literal operator|with|arguments" } -int wstrstr16 = L"str"_char16_t_str; // { dg-error "unable to find string literal operator|with|arguments" } -int wstrstr32 = L"str"_char32_t_str; // { dg-error "unable to find string literal operator|with|arguments" } - -int str16str = u"str"_char_str; // { dg-error "unable to find string literal operator|with|arguments" } -int str16wstr = u"str"_wchar_t_str; // { dg-error "unable to find string literal operator|with|arguments" } -int str16str32 = u"str"_char32_t_str; // { dg-error "unable to find string literal operator|with|arguments" } - -int str32str = U"str"_char_str; // { dg-error "unable to find string literal operator|with|arguments" } -int str32wstr = U"str"_wchar_t_str; // { dg-error "unable to find string literal operator|with|arguments" } -int str32str16 = U"str"_char16_t_str; // { dg-error "unable to find string literal operator string operator|with|arguments" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-inline.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-inline.C deleted file mode 100644 index 75032c576..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-inline.C +++ /dev/null @@ -1,22 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Literal operators can be inline. - -inline int -operator"" _thing1(char cc) -{ return 42 * cc; } - -int operator"" _thing2(char cc); - -class Foo -{ - int - friend operator"" _thing2(char cc) - { return 42 * cc; } -}; - -int i = operator"" _thing1('x'); -int j = 'x'_thing1; - -int iF = operator"" _thing2('x'); -int jF = 'x'_thing2; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-linkage-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-linkage-neg.C deleted file mode 100644 index c2ecede8d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-linkage-neg.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options -std=c++0x } - -extern "C"_badlinkage { // { dg-error "expected unqualified-id before" } - -int foo(); - -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-mangle.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-mangle.C deleted file mode 100644 index 6de31b65e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-mangle.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/52521 -// { dg-options -std=c++0x } -// { dg-final { scan-assembler "_Zli2_wPKc" } } - -int operator "" _w(const char*); -int main() { - 123_w; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-member-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-member-neg.C deleted file mode 100644 index a6220c4c0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-member-neg.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options -std=c++0x } - -class Foo -{ -public: - Foo() { } - int operator"" _Bar(char32_t); // { dg-error "must be a non-member function" } -}; - -int i = operator"" _Bar(U'x'); // { dg-error "was not declared in this scope" } -int j = U'x'_Bar; // { dg-error "unable to find character literal operator" } - -int -Foo::operator"" _Bar(char32_t) // { dg-error "must be a non-member function" } -{ return 42; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-namespace.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-namespace.C deleted file mode 100644 index e5d54e519..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-namespace.C +++ /dev/null @@ -1,43 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// Test user-defined literals. -// Test simple operator declaration and definition in namespaces. - -#include <cmath> -#include <limits> - -namespace Long -{ - long double operator"" _LL(long double); -} - -namespace Short -{ - short - operator"" _SS(long double x) - { return std::fmod(x, static_cast<long double>(std::numeric_limits<short>::max())); } -} - -void -test1() -{ - long double x = Long::operator "" _LL(1.2L); - - using namespace Short; - short s = operator"" _SS(1.2L); - short s2 = 1.2_SS; -} - -int -main() -{ - test1(); -} - -namespace Long -{ - long double - operator"" _LL(long double x) - { return x + 2.0L; } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nofunc-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nofunc-neg.C deleted file mode 100644 index 6ad79b85b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nofunc-neg.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Test user-defined literals. -// Test error on non-function declaration. - -double operator"" _baddecl; // { dg-error "as non-function" } - -template<char...> - int operator"" _badtmpldecl; // { dg-error "as non-function" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nonempty-str-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nonempty-str-neg.C deleted file mode 100644 index 981865f15..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nonempty-str-neg.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Test user-defined literals. -// Test error on non-empty string after 'operator' keyword. - -double operator"hi" _badword(long double); // { dg-error "expected empty string after" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nospace-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nospace-neg.C deleted file mode 100644 index 2b57637a9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nospace-neg.C +++ /dev/null @@ -1,3 +0,0 @@ -// { dg-options "-std=c++0x" } - -float operator ""_abc(const char*); // { dg-error "missing space between|and suffix identifier" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nosuffix-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nosuffix-neg.C deleted file mode 100644 index b90635cd0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nosuffix-neg.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } - -char32_t -operator"" (char32_t C) // { dg-error "expected suffix identifier" } -{ return C; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nounder-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nounder-neg.C deleted file mode 100644 index 2067bbe56..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-nounder-neg.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Test user-defined literals. -// Test warning on declaration without leading underscore. - -long double operator"" nounder(long double); // { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" } - -template<char...> - int operator"" nounder(); // { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-operator-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-operator-neg.C deleted file mode 100644 index 27fdedec7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-operator-neg.C +++ /dev/null @@ -1,42 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Can't have *both* literal operator template and raw literal operator. - -int -operator"" _abc(const char*) - { - return 42; - } - -template<char...> - int - operator"" _abc() // { dg-error "literal operator template|conflicts with raw literal operator" } - { - return 13; - } - -template<char...> - int - operator"" _def() - { - return 12; - } - -int -operator"" _def(const char*) // { dg-error "raw literal operator|conflicts with literal operator template" } - { - return 43; - } - -int -operator"" _ghi(long double) - { - return 42; - } - -template<char...> - int - operator"" _ghi() // OK - { - return 13; - } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-overflow-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-overflow-neg.C deleted file mode 100644 index ed2de22e4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-overflow-neg.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options "-std=c++0x -Woverflow" } -// PR c++/52654 - -int -operator"" _w(unsigned long long) -{ return 0; } - -int -operator"" _w(long double) -{ return 0.0L; } - -int i = 12345678901234567890123456789012345678901234567890_w; -int j = 12345678901234567890123456789.012345678901234567890e+1234567890_w; -int k = 12345678901234567890123456789.012345678901234567890e-1234567890_w; - -// { dg-warning "integer literal exceeds range of " "" { target *-*-* } 12 } -// { dg-warning "floating literal exceeds range of " "" { target *-*-* } 13 } -// { dg-warning "floating literal truncated to zero" "" { target *-*-* } 14 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-overflow.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-overflow.C deleted file mode 100644 index aec7e2a4a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-overflow.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options -std=c++0x } -// PR c++/52654 - -int -operator"" _w(const char*) -{ return 0; } - -template<char...> - int - operator"" _tw() - { return 0; } - -int i = 12345678901234567890123456789012345678901234567890_w; -int j = 12345678901234567890123456789.012345678901234567890e+1234567890_w; -int k = 12345678901234567890123456789.012345678901234567890e-1234567890_w; - -int ti = 12345678901234567890123456789012345678901234567890_tw; -int tj = 12345678901234567890123456789.012345678901234567890e+1234567890_tw; -int tk = 12345678901234567890123456789.012345678901234567890e-1234567890_tw; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-preproc-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-preproc-neg.C deleted file mode 100644 index 23633390c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-preproc-neg.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } - -int -operator"" _badpreproc(const char *str) -{ return 0; } - -#if 123_badpreproc // { dg-error "user-defined literal in preprocessor expression" } -# error ("user-defined literal in preprocessor expression") // { dg-error "user-defined literal in preprocessor expression" } -#endif diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-length.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-length.C deleted file mode 100644 index 2d910624a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-length.C +++ /dev/null @@ -1,27 +0,0 @@ -// { dg-options "-std=c++0x" } -// PR c++/50958 - -typedef decltype(sizeof(0)) size_type; - -constexpr size_type -cstrlen_impl(const char* s, size_type i) -{ - return s[i] ? cstrlen_impl(s, i + 1) : i; -} - -constexpr size_type -cstrlen(const char* s) -{ - return s ? cstrlen_impl(s, 0) : throw 0; -} - -constexpr size_type -operator "" _lenraw(const char* digits) -{ - return cstrlen(digits); -} - -static_assert(123_lenraw == 3, "Ouch"); -static_assert(1_lenraw == 1, "Ouch"); -static_assert(012_lenraw == 3, "Ouch"); -static_assert(0_lenraw == 1, "Ouch"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-op-string-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-op-string-neg.C deleted file mode 100644 index 58ad0e609..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-op-string-neg.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=c++0x" } - -// Make sure handing a string to a raw literal generates a sensible error message. - -int operator"" _embedraw(const char*) -{ return 41; }; - -int k = "Boo!"_embedraw; // { dg-error "unable to find string literal operator" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-op.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-op.C deleted file mode 100644 index a31ef9328..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-op.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <cassert> -#include <cstring> - -int -operator"" _raw_umber(const char * str) -{ - return strlen(str); -} - -int -main() -{ - int i = 0123012301230123012301230123012301230123012301230123012301230123_raw_umber; - assert( i == 64 ); - - int j = 90123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_raw_umber; - assert( j == 101 ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-str.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-str.C deleted file mode 100644 index e94410fd0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-raw-str.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options -std=c++0x } - -#include <string> - -std::string operator"" _i18n(const char*, std::size_t); - -std::string vogon_poem = R"V0G0N( - O freddled gruntbuggly thy micturations are to me - As plured gabbleblochits on a lurgid bee. - Groop, I implore thee my foonting turlingdromes. - And hooptiously drangle me with crinkly bindlewurdles, - Or I will rend thee in the gobberwarts with my blurlecruncheon, see if I don't. - - (by Prostetnic Vogon Jeltz; see p. 56/57) -)V0G0N"_i18n; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-resolve.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-resolve.C deleted file mode 100644 index a25516220..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-resolve.C +++ /dev/null @@ -1,40 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -#include <cstdint> -#include <cassert> - -int operator"" _foo(const char*) { return 0; } -int operator"" _foo(unsigned long long int) { return 1; } -int operator"" _foo(long double) { return 2; } -int operator"" _foo(char) { return 3; } -int operator"" _foo(wchar_t) { return 4; } -int operator"" _foo(char16_t) { return 5; } -int operator"" _foo(char32_t) { return 6; } -int operator"" _foo(const char*, std::size_t) { return 7; } -int operator"" _foo(const wchar_t*, std::size_t) { return 8; } -int operator"" _foo(const char16_t*, std::size_t) { return 9; } -int operator"" _foo(const char32_t*, std::size_t) { return 10; } -template<char...> int operator"" _foo2() { return 20; } -int operator"" _foo2(unsigned long long int) { return 21; } - -namespace bar { -int operator"" _foo(unsigned long long int) { return 101; } -} -using namespace bar; - -int -main() -{ - assert(123_foo == 101); - assert(0.123_foo == 2); - assert('c'_foo == 3); - assert(L'c'_foo == 4); - assert(u'c'_foo == 5); - assert(U'c'_foo == 6); - assert("abc"_foo == 7); - assert(L"abc"_foo == 8); - assert(u"abc"_foo == 9); - assert(U"abc"_foo == 10); - assert(123_foo2 == 21); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-shadow-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-shadow-neg.C deleted file mode 100644 index 994d58c1a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-shadow-neg.C +++ /dev/null @@ -1,49 +0,0 @@ -// { dg-options -std=c++0x } - -// Test that the standard suffixes shadow any user-defined suffixes of the same name. -long double -operator"" L(long double x) // { dg-warning "floating point suffix|shadowed by implementation" } -{ return x; } - -unsigned long long int -operator"" ULL(unsigned long long int k) // { dg-warning "integer suffix|shadowed by implementation" } -{ return k; } - -long double -operator"" l(long double x) // { dg-warning "floating point suffix|shadowed by implementation" } -{ return x; } - -unsigned long long int -operator"" ull(unsigned long long int k) // { dg-warning "integer suffix|shadowed by implementation" } -{ return k; } - -// Namespaces are no hiding place. -namespace Long -{ - -long double -operator"" L(long double x) // { dg-warning "integer suffix|shadowed by implementation" } -{ return x; } - -unsigned long long int -operator"" ULL(unsigned long long int k) // { dg-warning "integer suffix|shadowed by implementation" } -{ return k; } - -long double -operator"" l(long double x) // { dg-warning "integer suffix|shadowed by implementation" } -{ return x; } - -unsigned long long int -operator"" ull(unsigned long long int k) // { dg-warning "integer suffix|shadowed by implementation" } -{ return k; } - -} - -// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 5 } -// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 9 } -// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 13 } -// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 17 } -// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 25 } -// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 29 } -// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 33 } -// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 37 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-string-length.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-string-length.C deleted file mode 100644 index 86903e835..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-string-length.C +++ /dev/null @@ -1,46 +0,0 @@ -// { dg-options "-std=c++0x" } -// PR c++/50941 - -typedef decltype(sizeof(0)) size_type; - -constexpr size_type -operator"" _len(const char*, size_type len) -{ - return len; -} - -constexpr size_type -operator"" _len(const wchar_t*, size_type len) -{ - return len; -} - -constexpr size_type -operator"" _len(const char16_t*, size_type len) -{ - return len; -} - -constexpr size_type -operator"" _len(const char32_t*, size_type len) -{ - return len; -} - -static_assert( ""_len == 0, "Ouch"); -static_assert(u8""_len == 0, "Ouch"); -static_assert( L""_len == 0, "Ouch"); -static_assert( u""_len == 0, "Ouch"); -static_assert( U""_len == 0, "Ouch"); - -static_assert( "1"_len == 1, "Ouch"); -static_assert(u8"1"_len == 1, "Ouch"); -static_assert( L"1"_len == 1, "Ouch"); -static_assert( u"1"_len == 1, "Ouch"); -static_assert( U"1"_len == 1, "Ouch"); - -static_assert( "123"_len == 3, "Ouch"); -static_assert(u8"123"_len == 3, "Ouch"); -static_assert( L"123"_len == 3, "Ouch"); -static_assert( u"123"_len == 3, "Ouch"); -static_assert( U"123"_len == 3, "Ouch"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.C deleted file mode 100644 index f83bef68a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=c++11" } -// { dg-require-effective-target stdint_types } -// PR c++/55582 - -#include "udlit-string-literal.h" - -using namespace my_string_literals; - -decltype("Hello, World!"s) s; -decltype(u8"Hello, World!"s) s8; -decltype(L"Hello, World!"s) ws; -decltype(u"Hello, World!"s) s16; -decltype(U"Hello, World!"s) s32; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.h b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.h deleted file mode 100644 index e61034ec4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-string-literal.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma GCC system_header - -#include <string> - -inline namespace my_string_literals -{ - std::string - operator"" s(const char* str, std::size_t len) - { return std::string{str, len}; } - - std::wstring - operator"" s(const wchar_t* str, std::size_t len) - { return std::wstring{str, len}; } - - std::u16string - operator"" s(const char16_t* str, std::size_t len) - { return std::u16string{str, len}; } - - std::u32string - operator"" s(const char32_t* str, std::size_t len) - { return std::u32string{str, len}; } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-suffix-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-suffix-neg.C deleted file mode 100644 index 56eab01d7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-suffix-neg.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options -std=c++0x } - -#include <string> - -std::string operator"" 5X(const char*, std::size_t); // { dg-error "expected suffix identifier" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-systemheader.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-systemheader.C deleted file mode 100644 index 599c8652a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-systemheader.C +++ /dev/null @@ -1,3 +0,0 @@ -// { dg-options -std=c++0x } - -#include "udlit_system_header" diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-template.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-template.C deleted file mode 100644 index 6a28f74a2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-template.C +++ /dev/null @@ -1,51 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } - -// Test user-defined literals. -// Test template operator declaration and definition. - -#include <cassert> - -template<char...> - int operator"" _abc(); - -template<> - int - operator"" _abc<>() - { return -1; } - -template<> - int - operator"" _abc<'L','U','E'>() - { return 42; } - -template<> - int - operator"" _abc<'6','6','6'>() - { return 21; } - -int -test1() -{ - int i = operator"" _abc<'1','2','3'>(); - assert(i == 45); - int universal_meaning = operator"" _abc<'L','U','E'>(); - assert(universal_meaning == 42); - int b = operator"" _abc<'6','6','6'>(); - int z = operator"" _abc<>(); - assert(z == -1); - int j = 123_abc; - assert(j == i); - int jb = 666_abc; - assert(jb == b); -} - -int -main() -{ - test1(); -} - -template<char... Chars> - int operator"" _abc() - { return 42 + sizeof...(Chars); } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg-neg.C deleted file mode 100644 index e8ccb6f54..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg-neg.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-options -std=c++0x } - -template<char...> - int operator"" _xyz(unsigned long long); // { dg-error "has invalid argument list" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg.C deleted file mode 100644 index 6324823fa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-arg.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-options -std=c++0x } - -template<char...> - int operator"" _abc(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-parms-neg.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-parms-neg.C deleted file mode 100644 index 4dab4d2f6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-parms-neg.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -class Foo { }; - -template<wchar_t...> - Foo operator"" _Foo(); // { dg-error "literal operator template|has invalid parameter list" } - -template<char> - Foo operator"" _Bar(); // { dg-error "literal operator template|has invalid parameter list" } - -template<typename... Type> - Foo operator"" _Bar(); // { dg-error "literal operator template|has invalid parameter list" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-parms.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-parms.C deleted file mode 100644 index 77456737c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit-tmpl-parms.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options -std=c++0x } - -class Foo { }; - -template<char...> - Foo operator"" _Foo(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit_system_header b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit_system_header deleted file mode 100644 index d541f24f6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/udlit_system_header +++ /dev/null @@ -1,6 +0,0 @@ - -#pragma GCC system_header - -char -operator"" stdsuffix(char __c) -{ return __c/2; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union1.C deleted file mode 100644 index cb0f01719..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union1.C +++ /dev/null @@ -1,34 +0,0 @@ -// Negative test for C++0x unrestricted unions -// { dg-options -std=c++0x } -// { dg-prune-output "implicitly deleted because" } - -struct A -{ - A(); - A(const A&); - ~A(); -}; - -union B -{ - A a; // { dg-error "union member" } -}; - -B b; // { dg-error "B::B\\(\\)" "B::B" } -B b2(b); // { dg-error "B::B\\(const B&\\)" "B::B" } - -struct C -{ - union - { - A a; // { dg-error "union member" } - }; -}; - -C c; // { dg-error "C::C\\(\\)" "C::C" } -C c2(c); // { dg-error "C::C\\(const C&\\)" "C::C" } - -// { dg-error "B::~B" "B::~B" { target *-*-* } 17 } -// { dg-error "B::~B" "B::~B" { target *-*-* } 18 } -// { dg-error "C::~C" "C::~C" { target *-*-* } 28 } -// { dg-error "C::~C" "C::~C" { target *-*-* } 29 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union2.C deleted file mode 100644 index 4f193e281..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union2.C +++ /dev/null @@ -1,34 +0,0 @@ -// Positive test for C++0x unrestricted unions -// { dg-options -std=c++0x } - -struct A -{ - A(); - A(const A&); - ~A(); -}; - -union B -{ - A a; - B(); - B(const B&); - ~B(); -}; - -B b; -B b2(b); - -struct C -{ - union - { - A a; - }; - C(); - C(const C&); - ~C(); -}; - -C c; -C c2(c); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union3.C deleted file mode 100644 index f1e8ddb61..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union3.C +++ /dev/null @@ -1,69 +0,0 @@ -// Runtime test for C++0x unrestricted unions -// { dg-options -std=c++0x } -// { dg-do run } - -int c, d; -struct A -{ - int i; - A(): i(1) { ++c; } - A(const A&): i(2) { ++c; } - ~A() { ++d; } -}; - -union B -{ - A a; - B() { } - B(const B& b) { } - ~B() { } -}; - -struct C -{ - union { A a; }; - C() { } - C(const C&) { } - ~C() { } -}; - -union D -{ - A a; - D(): a() { } - D(const D& d): a(d.a) { } - ~D() { a.~A(); } -}; - -struct E -{ - union { A a; }; - E(): a() { } - E(const E& e): a (e.a) { } - ~E() { a.~A(); } -}; - -int main() -{ - { - B b1; - B b2(b1); - - C c1; - C c2(c1); - } - - if (c != 0 || d != 0) - return c+d*10; - - { - D d1; - D d2(d1); - - E e1; - E e2(e1); - } - - if (c != 4 || d != 4) - return c*100+d*1000; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union4.C deleted file mode 100644 index 07050475d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union4.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/48537 -// { dg-options -std=c++0x } - -struct SFoo -{ - SFoo() =delete; // { dg-error "declared" } -}; - -union UFoo // { dg-error "deleted" } -{ - SFoo foo; -}; - -int main() -{ - UFoo(); // { dg-error "deleted" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union5.C deleted file mode 100644 index 423b34823..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/union5.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/49803 -// { dg-options -std=c++0x } - -struct X -{ - X() = delete; -}; - -union Y -{ - // N3291=11-0061 12.6.2/8 says no initialization of - // of other variant members (i.e. m_x) should - // be performed. - Y() : m_char1{ } - { } - - struct - { - char m_char1; - }; - - X m_x; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/unnamed_refs.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/unnamed_refs.C deleted file mode 100644 index c59667645..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/unnamed_refs.C +++ /dev/null @@ -1,35 +0,0 @@ -// I, Howard Hinnant, hereby place this code in the public domain. - -// Test: Unamed rvalue references are treated as lvalues. - -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <bool> struct sa; -template <> struct sa<true> {}; - -struct one {long x[1];}; -struct two {long x[2];}; - -struct A {}; - -one foo(const A&) {return one();} -two foo(A&&) {return two();} - -template<typename _Tp> -inline _Tp&& -movel(_Tp& __t) -{ return static_cast<_Tp&&>(__t); } - -A&& source() {static A a; return movel(a);} - -int test1() -{ - sa<sizeof(foo(source())) == 2 * sizeof(long)> t1; - return 0; -} - -int main() -{ - return test1(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-104.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-104.C deleted file mode 100644 index c693b33f9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-104.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/45236 -// { dg-options -std=c++0x } - -template <class T, class S> class foo; - -template<template<int...> class C, int... II, class S> -struct foo<C<II...>,S> -{ - template <class U> - struct bar { typedef int type; }; -}; - -template <int... I> -struct A {}; - -foo<A<3>, float>::bar<int> x; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-bind.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-bind.C deleted file mode 100644 index abe445d43..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-bind.C +++ /dev/null @@ -1,476 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } -// A basic implementation of TR1's bind using variadic teplates -// Contributed by Douglas Gregor <doug.gregor@gmail.com> -#include <cassert> - -// Trivial reference_wrapper -template<typename T> -struct reference_wrapper -{ - reference_wrapper(T& x) : ptr(&x) { } - - operator T&() const { return *ptr; } - - T& get() const { return *ptr; } - - T* ptr; -}; - -template<typename T> reference_wrapper<T> ref(T& x) { return x; } -template<typename T> reference_wrapper<const T> cref(const T& x) { return x; } - -// Simple type-traits we'll need -template<typename T> -struct add_reference -{ - typedef T& type; -}; - -template<typename T> -struct add_reference<T&> -{ - typedef T& type; -}; - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -// For creating the constructor parameters of tuple<> -template<typename T> -struct add_const_reference -{ - typedef const T& type; -}; - -template<typename T> -struct add_const_reference<T&> -{ - typedef T& type; -}; - -// 6.1.3 Class template tuple: Needed for bind() implementation -template<typename... Values> -class tuple; - -template<> class tuple<> { }; - -template<typename Head, typename... Tail> -class tuple<Head, Tail...> - : private tuple<Tail...> -{ - typedef tuple<Tail...> inherited; - - public: - tuple() { } - - // implicit copy-constructor is okay - - tuple(typename add_const_reference<Head>::type v, - typename add_const_reference<Tail>::type... vtail) - : m_head(v), inherited(vtail...) { } - - template<typename... VValues> - tuple(const tuple<VValues...>& other) - : m_head(other.head()), inherited(other.tail()) { } - - template<typename... VValues> - tuple& operator=(const tuple<VValues...>& other) - { - m_head = other.head(); - tail() = other.tail(); - return *this; - } - - typename add_reference<Head>::type head() { return m_head; } - typename add_reference<const Head>::type head() const { return m_head; } - inherited& tail() { return *this; } - const inherited& tail() const { return *this; } - - protected: - Head m_head; -}; - -template<typename T> -struct make_tuple_result -{ - typedef T type; -}; - -template<typename T> -struct make_tuple_result<reference_wrapper<T> > -{ - typedef T& type; -}; - -// 6.1.3.2 Tuple creation functions -struct ignore_t { - template<typename T> ignore_t& operator=(const T&) { return *this; } -} ignore; - -template<typename... Values> -tuple<typename make_tuple_result<Values>::type...> -make_tuple(const Values&... values) -{ - return tuple<typename make_tuple_result<Values>::type...>(values...); -} - -template<typename... Values> -tuple<Values&...> tie(Values&... values) -{ - return tuple<Values&...>(values...); -} - -// 6.1.3.3 Tuple helper classes -template<typename Tuple> -struct tuple_size; - -template<> -struct tuple_size<tuple<> > -{ - static const __SIZE_TYPE__ value = 0; -}; - -template<typename Head, typename... Tail> -struct tuple_size<tuple<Head, Tail...> > -{ - static const __SIZE_TYPE__ value = 1 + tuple_size<tuple<Tail...> >::value; -}; - -template<int I, typename Tuple> -struct tuple_element; - -template<int I, typename Head, typename... Tail> -struct tuple_element<I, tuple<Head, Tail...> > -{ - typedef typename tuple_element<I-1, tuple<Tail...> >::type type; -}; - -template<typename Head, typename... Tail> -struct tuple_element<0, tuple<Head, Tail...> > -{ - typedef Head type; -}; - -// 6.1.3.4 Element access -template<int I, typename Tuple> -class get_impl; - -template<int I, typename Head, typename... Values> -class get_impl<I, tuple<Head, Values...> > -{ - typedef typename tuple_element<I-1, tuple<Values...> >::type Element; - typedef typename add_reference<Element>::type RJ; - typedef typename add_const_reference<Element>::type PJ; - typedef get_impl<I-1, tuple<Values...> > Next; - - public: - static RJ get(tuple<Head, Values...>& t) - { return Next::get(t.tail()); } - - static PJ get(const tuple<Head, Values...>& t) - { return Next::get(t.tail()); } -}; - -template<typename Head, typename... Values> -class get_impl<0, tuple<Head, Values...> > -{ - typedef typename add_reference<Head>::type RJ; - typedef typename add_const_reference<Head>::type PJ; - - public: - static RJ get(tuple<Head, Values...>& t) { return t.head(); } - static PJ get(const tuple<Head, Values...>& t) { return t.head(); } -}; - -template<int I, typename... Values> -typename add_reference< - typename tuple_element<I, tuple<Values...> >::type - >::type -get(tuple<Values...>& t) -{ - return get_impl<I, tuple<Values...> >::get(t); -} - -template<int I, typename... Values> -typename add_const_reference< - typename tuple_element<I, tuple<Values...> >::type - >::type -get(const tuple<Values...>& t) -{ - return get_impl<I, tuple<Values...> >::get(t); -} - -// 6.1.3.5 Relational operators -inline bool operator==(const tuple<>&, const tuple<>&) { return true; } - -template<typename T, typename... TTail, typename U, typename... UTail> -bool operator==(const tuple<T, TTail...>& t, const tuple<U, UTail...>& u) -{ - return t.head() == u.head() && t.tail() == u.tail(); -} - -template<typename... TValues, typename... UValues> -bool operator!=(const tuple<TValues...>& t, const tuple<UValues...>& u) -{ - return !(t == u); -} - -inline bool operator<(const tuple<>&, const tuple<>&) { return false; } - -template<typename T, typename... TTail, typename U, typename... UTail> -bool operator<(const tuple<T, TTail...>& t, const tuple<U, UTail...>& u) -{ - return (t.head() < u.head() || - (!(t.head() < u.head()) && t.tail() < u.tail())); -} - -template<typename... TValues, typename... UValues> -bool operator>(const tuple<TValues...>& t, const tuple<UValues...>& u) -{ - return u < t; -} - -template<typename... TValues, typename... UValues> -bool operator<=(const tuple<TValues...>& t, const tuple<UValues...>& u) -{ - return !(u < t); -} - -template<typename... TValues, typename... UValues> -bool operator>=(const tuple<TValues...>& t, const tuple<UValues...>& u) -{ - return !(t < u); -} - -// enable_if, the breakfast of champions -template<bool Cond, typename Type = void> -struct enable_if { - typedef Type type; -}; - -template<typename Type> -struct enable_if<false, Type> { }; - -// 3.6 Function object binders - -// 3.6.1 Class template is_bind_expression -template<typename T> -struct is_bind_expression { - static const bool value = false; -}; - -// 3.6.2 Class template is_placeholder -template<typename T> -struct is_placeholder { - static const int value = 0; -}; - -// 3.6.3 Function template bind -template<int I> struct placeholder {} ; - -template<int N> struct int_c { }; - -// A tuple of integer values -template<int...> struct int_tuple {}; - -// make_indexes_impl is a helper for make_indexes -template<int I, typename IntTuple, typename... Types> -struct make_indexes_impl; - - -template<int I, int... Indexes, typename T, typename... Types> -struct make_indexes_impl<I, int_tuple<Indexes...>, T, Types...> -{ - typedef typename make_indexes_impl<I+1, - int_tuple<Indexes..., I>, - Types...>::type type; -}; - -template<int I, int... Indexes> -struct make_indexes_impl<I, int_tuple<Indexes...> > { - typedef int_tuple<Indexes...> type; -}; - -// make_indexes takes a variable-length number of N types and -// generates an int_tuple that contains <0, 1, 2, ..., N-1>. These can -// be used as indexes for tuple's get or tuple_element operation. -template<typename... Types> -struct make_indexes : make_indexes_impl<0, int_tuple<>, Types...> { }; - -// Get the Ith tuple element, but only if I is in bounds. -template<int I, typename Tuple, typename = void> -struct safe_tuple_element{ }; - -template<int I, typename... Values> -struct safe_tuple_element<I, tuple<Values...>, - typename enable_if<(I >= 0 && - I < tuple_size<tuple<Values...> >::value) - >::type> -{ - typedef typename tuple_element<I, tuple<Values...> >::type type; -}; - -// mu maps a bound argument to an actual argument, given a tuple of -// the arguments passed to the function object returned by bind(). - -// Return the stored reference from reference_wrapper -template<typename T, typename... Args> -inline T& mu(reference_wrapper<T>& bound_arg, const tuple<Args&...>&) -{ - return bound_arg.get(); -} - -// Unwrap a tuple into separate arguments and forward to the function -// object f. -template<typename F, int... Indexes, typename... Args> -inline typename F::result_type -unwrap_and_forward(F& f, int_tuple<Indexes...>, const tuple<Args&...>& args) -{ - return f(get<Indexes>(args)...); -} - -// Evaluate the inner bind expression -template<typename Bound, typename... Args> -inline typename enable_if<is_bind_expression<Bound>::value, - typename Bound::result_type>::type -mu(Bound& bound_arg, const tuple<Args&...>& args) -{ - typedef typename make_indexes<Args...>::type Indexes; - return unwrap_and_forward(bound_arg, Indexes(), args); -} - -// Retrieve the Ith argument from args -template<typename Bound, typename... Args> -inline typename safe_tuple_element<is_placeholder<Bound>::value - 1, - tuple<Args...> >::type -mu(Bound& bound_arg, const tuple<Args&...>& args) -{ - return get<is_placeholder<Bound>::value-1>(args); -} - -// Return the stored value. -template<typename T> -struct is_reference_wrapper { - static const bool value = false; -}; - -template<typename T> -struct is_reference_wrapper<reference_wrapper<T> > { - static const bool value = true; -}; - -template<typename Bound, typename... Args> -inline typename enable_if<(!is_bind_expression<Bound>::value - && !is_placeholder<Bound>::value - && !is_reference_wrapper<Bound>::value), - Bound&>::type -mu(Bound& bound_arg, const tuple<Args&...>&) -{ - return bound_arg; -} - -// -template<typename F, typename... BoundArgs, int... Indexes, typename... Args> -typename F::result_type -apply_functor(F& f, tuple<BoundArgs...>& bound_args, int_tuple<Indexes...>, - const tuple<Args&...>& args) -{ - return f(mu(get<Indexes>(bound_args), args)...); -} - -template<typename F, typename... BoundArgs> -class bound_functor -{ - typedef typename make_indexes<BoundArgs...>::type indexes; - - public: - typedef typename F::result_type result_type; - - explicit bound_functor(const F& f, const BoundArgs&... bound_args) - : f(f), bound_args(bound_args...) { } - - template<typename... Args> - typename F::result_type operator()(Args&... args) { - return apply_functor(f, bound_args, indexes(), tie(args...)); - } - - private: - F f; - tuple<BoundArgs...> bound_args; -}; - -template<typename F, typename... BoundArgs> -struct is_bind_expression<bound_functor<F, BoundArgs...> > { - static const bool value = true; -}; - -template<typename F, typename... BoundArgs> -inline bound_functor<F, BoundArgs...> -bind(const F& f, const BoundArgs&... bound_args) -{ - return bound_functor<F, BoundArgs...>(f, bound_args...); -} - - -// 3.6.4 Placeholders -template<int I> -struct is_placeholder<placeholder<I> > { - static const int value = I; -}; - -placeholder<1> _1; -placeholder<2> _2; -placeholder<3> _3; -placeholder<4> _4; -placeholder<5> _5; -placeholder<6> _6; -placeholder<7> _7; -placeholder<8> _8; -placeholder<9> _9; - -// Test code -template<typename T> -struct plus { - typedef T result_type; - - T operator()(T x, T y) { return x + y; } -}; - -template<typename T> -struct multiplies { - typedef T result_type; - - T operator()(T x, T y) { return x * y; } -}; - -template<typename T> -struct negate { - typedef T result_type; - - T operator()(T x) { return -x; } -}; - -int main() -{ - int seventeen = 17; - int forty_two = 42; - - assert(bind(plus<int>(), _1, _2)(seventeen, forty_two) == 59); - assert(bind(plus<int>(), _1, _1)(seventeen, forty_two) == 34); - assert(bind(plus<int>(), _2, _1)(seventeen, forty_two) == 59); - assert(bind(plus<int>(), 5, _1)(seventeen, forty_two) == 22); - assert(bind(plus<int>(), ref(seventeen), _2)(seventeen, forty_two) == 59); - assert(bind(plus<int>(), bind(multiplies<int>(), 3, _1), _2)(seventeen, forty_two) - == 93); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-crash1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-crash1.C deleted file mode 100644 index f26aee2a9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-crash1.C +++ /dev/null @@ -1,72 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -#define ONE -#define TWO -#define THREE - -struct Something {}; -Something ___; - -template <class F> -struct Trial -{ - F f; -public: - Trial() : f() {} - Trial( const F& ff ) : f(ff) { } - template <typename... Args> - struct Sig { typedef int ResultType; }; - - template <typename... Args> - struct Sig<Something,Args...> { typedef int ResultType; }; - -#ifdef ONE - -template <typename... Args> -typename Sig<Something,Args...>::ResultType operator()(const Something& s, const Args&... args) const -{ - return f(args...); -} -#endif -#ifdef TWO -template <typename... Args> -typename Sig<Args...>::ResultType operator()(const Args&... args) const -{ - return f(args...); -} -#endif -}; - -struct Internal -{ - -template <typename... Args> -struct Sig { typedef int ResultType; }; - -template <typename... Args> -struct Sig<Something,Args...> { typedef int ResultType; }; - -template <typename... Args> -int operator()(const Args&... args) const -{ - int n = sizeof...(Args); - return n; -} - - static Trial<Internal>& full() { static Trial<Internal> f; return f; } -}; - -static Trial<Internal>& internal = Internal::full(); - -int main() -{ - int n = 0; -#ifdef ONE - n = internal(___,1,2); -#endif -#ifdef THREE - n = internal(___,1,2,3); - n = internal(___,1,2,3,4); -#endif - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-crash2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-crash2.C deleted file mode 100644 index f46b8e534..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-crash2.C +++ /dev/null @@ -1,20 +0,0 @@ -// Contributed by Dodji Seketeli <dodji@redhat.com> -// Origin: PR c++/39637 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<class... Types> -void -f(Types...) -{ - enum {e = sizeof(Types)}; // { dg-error "parameter packs not expanded with '...'" } - enum {e1 = sizeof...(Types)}; -} - -int -main() -{ - f(0); -} - -// { dg-message "note" "Types" { target *-*-* } 10 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-default.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-default.C deleted file mode 100644 index 2625e259f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-default.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/49205 -// { dg-options -std=c++0x } - -#include <initializer_list> - -struct A { - template<typename ...T> A(T...); - A(std::initializer_list<short>); - A(std::initializer_list<long>); -}; - -A a{}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-diag1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-diag1.C deleted file mode 100644 index 53182d3e0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-diag1.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/55232 -// { dg-do compile { target c++11 } } - -struct vector -{ - typedef int value_type; -}; - -template< class U, class... T > -struct X -{ - void push_back( typename T::value_type ... vals ) - { - U::asoeuth; // { dg-error "" } - } -}; - -int main() -{ - X< int, vector > x; - x.push_back( 0 ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex1.C deleted file mode 100644 index 485fffa47..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex1.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename ... Elements> class Tuple; -Tuple<>* t; // OK: Elements is empty -Tuple* u; // { dg-error "template-name" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C deleted file mode 100644 index e8b6b7221..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Types> struct Tuple { }; - -Tuple<> t0; // Types contains no arguments -Tuple<int> t1; // Types contains one argument: int -Tuple<int, float> t2; // Types contains two arguments: int and float -Tuple<0> error; // { dg-error "mismatch" "mismatch" } -// { dg-error "expected a type" "expected a type" { target *-*-* } 7 } -// { dg-error "in declaration" "in declaration" { target *-*-* } 7 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex11.C deleted file mode 100644 index 57ef2a3d3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex11.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Types> - void f(Types... args); - -void g() { - f(); // okay: args contains no arguments - f(1); // okay: args contains one int argument - (2, 1.0); // okay: args contains two arguments, an int and a double -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex12.C deleted file mode 100644 index b97df3102..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex12.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Types> - void f(Types... rest); - -template<typename... Types> - void g(Types... rest) { - f(&rest...); // ``&rest...'' is a pack expansion, ``&rest'' is its pattern - } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C deleted file mode 100644 index b742cb1d3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C +++ /dev/null @@ -1,39 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -template<typename T, typename U> struct is_same { - static const bool value = false; -}; - -template<typename T> struct is_same<T, T> { - static const bool value = true; -}; - -template<typename...> struct Tuple {}; -template<typename T1, typename T2> struct Pair {}; - -template<typename... Args1> - struct zip { - template<typename... Args2> - struct with { - typedef Tuple<Pair<Args1, Args2>...> type; // { dg-error "mismatched argument pack" } - }; - }; - -static_assert - (is_same<zip<short, int>::with<unsigned short, unsigned>::type, - Tuple<Pair<short, unsigned short>, Pair<int, unsigned> > >::value, - "zip"); - -typedef zip<short>::with<unsigned short, unsigned>::type T2; // error: different number of arguments specified - // for Args1 and Args2 - -template<typename... Args> void f(Args...); - -template<typename... Args> void g(Args... args) -{ - f(const_cast<const Args*>(&args)...); // okay: ``Args'' and ``args'' are expanded - f(5 ...); // { dg-error "contains no argument packs" } - f(args); // { dg-error "parameter packs not expanded" } - // { dg-message "args" "note" { target *-*-* } 36 } - f(h(args...) + args...); // okay: first ``args'' expanded within h, second ``args'' expanded within f. -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C deleted file mode 100644 index 105096a78..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -template<class T> class A { /* ... */ }; -template<class T, class U = T> class B { /* ... */ }; -template<class... Types> class C { /* ... */ }; - -template<template<class> class P> class X { /* ... */ }; -template<template<class...> class Q> class Y { /* ... */ }; - -X<A> xA; // okay -X<B> xB; // { dg-error "mismatch" "mismatch" } -// { dg-error "expected a template" "expected" { target *-*-* } 11 } -// { dg-error "invalid type" "invalid" { target *-*-* } 11 } -X<C> xC; // { dg-error "mismatch" "mismatch" } -// { dg-error "expected a template" "expected" { target *-*-* } 14 } -// { dg-error "invalid type" "invalid" { target *-*-* } 14 } -Y<A> yA; -Y<B> yB; -Y<C> yC; // okay diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex2.C deleted file mode 100644 index ca5fa2716..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex2.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<class... Types> struct B { // { dg-error "declaration of" } - void f3(); - void f4(); -}; - -template<class... Types> void B<Types...>::f3() { } // OK -template<class... Types> void B<Types>::f4() { } // { dg-error "invalid" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C deleted file mode 100644 index 018eaa3ed..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex3.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<class X, class Y, class... Z> X f(Y); // { dg-message "note" } -void g() -{ - int i = f<int>(5.6); - int j = f(5.6); // { dg-error "no matching" } - // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 6 } - f<void>(f<int, bool>); - f<void>(f<int>); // { dg-error "no matching" } - // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 9 } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C deleted file mode 100644 index 0a777c485..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex4.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<class X, class Y, class Z> X f(Y,Z); // { dg-message "note" } -template<class... Args> void f2(); -void g() -{ - f<int,const char*,double>("aa",3.0); - f<int,const char*>("aa",3.0); // Z is deduced to be double - f<int>("aa",3.0); // Y is deduced to be char*, and - // Z is deduced to be double - f("aa",3.0); // { dg-error "no matching" } - // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 10 } - f2<char, short, int, long>(); // okay -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex5.C deleted file mode 100644 index 2439a51c5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex5.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Types> void f(Types... values); - -void g() -{ - f<int*, float*>(0, 0, 0); // Types is deduced to the sequence int*, float*, int -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex6.C deleted file mode 100644 index 87b1bf205..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex6.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<class...> struct Tuple { }; - -template<class... Types> void f(Types&...); -template<class... Types1, class... Types2> void g(Tuple<Types1...>, Tuple<Types2...>); - -void h(int x, float& y) -{ - const int z = x; - f(x, y, z); // Types is deduced to int, const int, float - g(Tuple<short, int, long>(), Tuple<float, double>()); // Types1 is deduced to short, int long - // Types2 is deduced to float, double -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex7.C deleted file mode 100644 index 7ca31f9c6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex7.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename...> struct Tuple { }; -template<typename... Types> char& g(Tuple<Types...>); // #1 -template<typename T1, typename... Types> short& g(Tuple<T1, Types...>); // #2 -template<typename T1, typename... Types> int& g(Tuple<T1, Types&...>); // #3 - -void f() { - // char& x1 = g(Tuple<>()); // calls #1 - short& y1 = g(Tuple<int, float>()); // calls #2 - // int& z1 = g(Tuple<int, float&>()); // calls #3 - // int& z2 = g(Tuple<int>()); // calls #3 - // int& z3 = g(Tuple<int>()); // calls #3 -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex8.C deleted file mode 100644 index 03d28b825..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex8.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<class> struct X { static const bool primary = true; }; -template<class R, class... ArgTypes> struct X<R(int, ArgTypes...)> { - static const bool primary = false; -}; -template<class... Types> struct Y { static const bool primary = true; }; -template<class T, class... Types> struct Y<T, Types&...> { - static const bool primary = false; -}; - -static_assert (X<int>::primary, "uses primary template"); -static_assert (!X<int(int, float, double)>::primary, - "uses partial specialization"); -static_assert (X<int(float, int)>::primary, "uses primary template"); -static_assert (Y<>::primary, "uses primary template"); -static_assert (!Y<int&, float&, double&>::primary, - "uses partial specialization"); -static_assert (Y<int, float, double>::primary, "uses primary template"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex9.C deleted file mode 100644 index 74215c997..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ex9.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> char& f(Args... args); // #1 -template<typename T1, typename... Args> short& f(T1 a1, Args... args); // #2 -template<typename T1, typename T2> int& f(T1 a2, T2 a3); // #3 - -void g() { - char& x = f(); // calls #1 - short& y = f(1, 2, 3); // calls #2 - int& z = f(1, 2); // calls #3 -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-explicit1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-explicit1.C deleted file mode 100644 index a097f43d2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-explicit1.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options -std=c++0x } - -template<class T, class U> struct A { }; -template<class... T, class ... U> void f( A<T,U>... p); - -void g() { - f<int>( - A<int,unsigned>(), - A<short,unsigned short>() - ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-explicit2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-explicit2.C deleted file mode 100644 index 4a8074529..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-explicit2.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/56774 -// { dg-require-effective-target c++11 } - -template <class ... Args> -struct mytype {}; - -template <class T, class ... Args> -void something( mytype<T, Args...> ) -{ } - -int main() -{ - something<int, char, bool>( mytype<int, char, bool>() ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-function.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-function.C deleted file mode 100644 index eeb137705..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-function.C +++ /dev/null @@ -1,96 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } -// A basic implementation of TR1's function using variadic teplates -// Contributed by Douglas Gregor <doug.gregor@gmail.com> -#include <cassert> - -template<typename Signature> -class function; - -template<typename R, typename... Args> -class invoker_base -{ - public: - virtual ~invoker_base() { } - virtual R invoke(Args...) = 0; - virtual invoker_base* clone() = 0; -}; - -template<typename F, typename R, typename... Args> -class functor_invoker : public invoker_base<R, Args...> -{ - public: - explicit functor_invoker(const F& f) : f(f) { } - R invoke(Args... args) { return f(args...); } - functor_invoker* clone() { return new functor_invoker(f); } - - private: - F f; -}; - -template<typename R, typename... Args> -class function<R (Args...)> { - public: - typedef R result_type; - - function() : invoker (0) { } - - function(const function& other) : invoker(0) { - if (other.invoker) - invoker = other.invoker->clone(); - } - - template<typename F> - function(const F& f) : invoker(0) { - invoker = new functor_invoker<F, R, Args...>(f); - } - - ~function() { - if (invoker) - delete invoker; - } - - function& operator=(const function& other) { - function(other).swap(*this); - return *this; - } - - template<typename F> - function& operator=(const F& f) { - function(f).swap(*this); - return *this; - } - - void swap(function& other) { - invoker_base<R, Args...>* tmp = invoker; - invoker = other.invoker; - other.invoker = tmp; - } - - result_type operator()(Args... args) const { - assert(invoker); - return invoker->invoke(args...); - } - - private: - invoker_base<R, Args...>* invoker; -}; - -struct plus { - template<typename T> T operator()(T x, T y) { return x + y; } -}; - -struct multiplies { - template<typename T> T operator()(T x, T y) { return x * y; } -}; - -int main() -{ - function<int(int, int)> f1 = plus(); - assert(f1(3, 5) == 8); - - f1 = multiplies(); - assert(f1(3, 5) == 15); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-init.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-init.C deleted file mode 100644 index 34ade85e0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-init.C +++ /dev/null @@ -1,56 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } - -// PR c++/33510 -#define SIZE_FROM_CTOR -extern "C" void abort (); - -template<int M, int N> struct pair -{ - int i, j; - pair () : i (M), j (N) {} -}; - -template<int... M> struct S -{ - template<int... N> static int *foo () - { -#ifdef SIZE_FROM_CTOR - static int x[] = { (M + N)..., -1 }; -#else - static int x[1 + sizeof... N] = { (M + N)..., -1 }; -#endif - return x; - } -}; - -template<typename... M> struct R -{ - template<typename... N> static int *foo () - { -#ifdef SIZE_FROM_CTOR - static int x[] = { (sizeof(M) + sizeof(N))..., -1 }; -#else - static int x[1 + sizeof... N] = { (sizeof(M) + sizeof(N))..., -1 }; -#endif - return x; - } -}; - -int *bar () -{ - return S<0, 1, 2>::foo<0, 1, 2> (); -} - -int *baz () -{ - return R<char, short, int>::foo<float, double, long> (); -} - - -int main () -{ - int *p = bar (); - if (p[0] != 0 || p[1] != 2 || p[2] != 4 || p[3] != -1) - abort (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-lambda.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-lambda.C deleted file mode 100644 index 705d44149..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-lambda.C +++ /dev/null @@ -1,79 +0,0 @@ -// { dg-options "-std=c++0x" } - -struct int_placeholder; - -template<typename T> -struct do_replace -{ - typedef T type; -}; - -template<> -struct do_replace<int_placeholder> -{ - typedef int type; -}; - -template<typename T> struct lambdalike -{ - typedef T type; -}; - -template<template<typename...> class TT, typename... Args> -struct lambdalike<TT<Args...> > { - typedef TT<typename do_replace<Args>::type...> type; -}; - - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -template<typename... Elements> struct tuple; -template<typename T1, typename T2> struct pair; - -static_assert(is_same<lambdalike<tuple<float, int_placeholder, double>>::type, - tuple<float, int, double>>::value, - "MPL lambda-like replacement on tuple"); -static_assert(is_same<lambdalike<pair<float, int_placeholder>>::type, - pair<float, int>>::value, - "MPL lambda-like replacement on pair"); - - -struct _1 {}; - -template<typename Arg0, typename Lambda> -struct eval -{ - typedef Lambda type; -}; - -template<typename Arg0> -struct eval<Arg0, _1> -{ - typedef Arg0 type; -}; - -template<typename Arg0, template<typename...> class T, typename... Pack> -struct eval<Arg0, T<Pack...> > -{ - typedef T< typename eval<Arg0, Pack>::type... > type; -}; - -static_assert(is_same<eval<int, tuple<float, _1, double>>::type, - tuple<float, int, double>>::value, "eval tuple"); -static_assert(is_same<eval<int, pair<_1, double>>::type, - pair<int, double>>::value, "eval pair"); -static_assert(is_same<eval<int, - tuple<pair<_1, _1>, pair<float, float>, - pair<double, _1>>>::type, - tuple<pair<int, int>, pair<float, float>, pair<double, int>>>::value, - "recursive eval"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn.C deleted file mode 100644 index 51c5c79ef..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn.C +++ /dev/null @@ -1,50 +0,0 @@ -// { dg-options "-std=gnu++0x" } -// { dg-do run } -// A basic implementation of TR1's mem_fn using variadic teplates -// Contributed by Douglas Gregor <doug.gregor@gmail.com> -#include <cassert> - -template<typename R, typename Class, typename... Args> -class Mem_fn -{ - public: - explicit Mem_fn(R (Class::*pmf)(Args...)) : pmf(pmf) { } - - R operator()(Class& object, Args... args) - { - return (object.*pmf)(args...); - } - - R operator()(Class* object, Args... args) - { - return (object->*pmf)(args...); - } - - R (Class::*pmf)(Args...); -}; - -template<typename R, typename Class, typename... Args> -inline Mem_fn<R, Class, Args...> -mem_fn(R (Class::* pmf)(Args...)) -{ - return Mem_fn<R, Class, Args...>(pmf); -} - -class X { - public: - int negate(int x) { return -x; } - int plus(int x, int y) { return x + y; } -}; - -int main() -{ - X x; - X* xp = &x; - - assert(mem_fn(&X::negate)(x, 17) == -17); - assert(mem_fn(&X::negate)(xp, 17) == -17); - assert(mem_fn(&X::plus)(x, 17, 25) == 42); - assert(mem_fn(&X::plus)(xp, 17, 25) == 42); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-new.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-new.C deleted file mode 100644 index 5bbb9c81b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-new.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } -// Contributed by Peter Dimov -// PR c++/32597 -#include <assert.h> -#include <new> - -int k = 5; - -template< class... Args > void f( Args... args ) -{ - new( &k ) int( args... ); -} - -int main() -{ - f(); - assert( k == 0 ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-new2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-new2.C deleted file mode 100644 index 81d333398..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-new2.C +++ /dev/null @@ -1,24 +0,0 @@ -// { dg-do run } -// { dg-options "-std=c++0x" } -// PR c++/32597 -#include <assert.h> -#include <new> - -template< class... Args > void f( Args... args ) -{ - { - int x = 17; - (void)x; - } - - { - int y(args...); - assert(y == 0); - } - -} - -int main() -{ - f(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-nondeduce1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-nondeduce1.C deleted file mode 100644 index a64d7971c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-nondeduce1.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } - -template <class... T> -void f(T..., int, T...) { } - -int main() -{ - f(0); - f<int>(0,0,0); - f<int,int>(0,0,0,0,0); - f(0,0,0); // { dg-error "" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-nondeduce2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-nondeduce2.C deleted file mode 100644 index a82a098c3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-nondeduce2.C +++ /dev/null @@ -1,25 +0,0 @@ -// PR c++/55220 -// { dg-do compile { target c++11 } } - -template <typename ...> struct something_like_tuple -{ - -}; - -template <typename, typename> struct is_last -{ - static const bool value = false; -}; - -// Head is non-deducible, so this can't work as the user intended -template <typename T, template <typename ...> class Tuple, typename ... Head> -struct is_last<T, Tuple<Head ..., T>> -{ - static const bool value = true; -}; - -#define SA(X) static_assert (X, #X) - -typedef something_like_tuple<char, int, float> something_like_tuple_t; -SA ((is_last<float, something_like_tuple_t>::value == false)); -SA ((is_last<int, something_like_tuple_t>::value == false)); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-rref.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-rref.C deleted file mode 100644 index 08221b460..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-rref.C +++ /dev/null @@ -1,36 +0,0 @@ -// { dg-options "-std=c++0x" } -// PR c++/33939 -template<typename T> -struct refs_only; - -template<typename T> -struct refs_only<T &> -{}; - -template<typename T> -refs_only<T> foo( T && t) -{ - return refs_only<T>(); -} - -template<typename... T> -struct va_refs_only; - -template<typename T> -struct va_refs_only<T> - : refs_only<T> -{}; - -template<typename... T> -va_refs_only<T...> bar( T &&... t) -{ - return va_refs_only<T...>(); -} - -int main() -{ - int j = 0; - foo(j); - bar(j); // error: invalid use of incomplete type 'struct refs_only<int>' -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-throw.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-throw.C deleted file mode 100644 index 8363c2a73..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-throw.C +++ /dev/null @@ -1,26 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-prune-output "note" } -// PR c++/33509 -template<int M, int N> struct pair -{ - int i, j; - pair() : i(M), j(N) {} -}; - -template<int... M> struct S -{ - template<int... N> static int foo() throw (pair <M, N>...) // { dg-error "mismatched" } - { - return 1; - } -}; - -int bar () -{ - return S<0, 1, 2>::foo<0, 1, 3> (); -} - -int wibble() -{ - return S<0, 1, 2>::foo<0, 1> (); // { dg-error "no matching" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ttp.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ttp.C deleted file mode 100644 index 41f1c1db4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-ttp.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options -std=c++0x } -// PR c++/34101 -template<typename> struct A {}; - -template<template<typename> class...> struct B {}; - -template<template<typename> class T> void foo(const B<T>&); - -void bar() -{ - foo(B<A>()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-tuple.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-tuple.C deleted file mode 100644 index 11ce14af2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-tuple.C +++ /dev/null @@ -1,294 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } -// An implementation of TR1's <tuple> using variadic teplates -// Contributed by Douglas Gregor <doug.gregor@gmail.com> - -#include <string> -#include <cassert> -#include <cstring> - -// Trivial reference_wrapper -template<typename T> -struct reference_wrapper -{ - reference_wrapper(T& x) : ptr(&x) { } - - operator T&() const { return *ptr; } - - T* ptr; -}; - -template<typename T> reference_wrapper<T> ref(T& x) { return x; } -template<typename T> reference_wrapper<const T> cref(const T& x) { return x; } - -// Simple type-traits we'll need -template<typename T> -struct add_reference -{ - typedef T& type; -}; - -template<typename T> -struct add_reference<T&> -{ - typedef T& type; -}; - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -// For creating the constructor parameters of tuple<> -template<typename T> -struct add_const_reference -{ - typedef const T& type; -}; - -template<typename T> -struct add_const_reference<T&> -{ - typedef T& type; -}; - -// 6.1.3 Class template tuple -template<typename... Values> -class tuple; - -template<> class tuple<> { }; - -template<typename Head, typename... Tail> -class tuple<Head, Tail...> - : private tuple<Tail...> -{ - typedef tuple<Tail...> inherited; - - public: - tuple() { } - - // implicit copy-constructor is okay - - tuple(typename add_const_reference<Head>::type v, - typename add_const_reference<Tail>::type... vtail) - : m_head(v), inherited(vtail...) { } - - template<typename... VValues> - tuple(const tuple<VValues...>& other) - : m_head(other.head()), inherited(other.tail()) { } - - template<typename... VValues> - tuple& operator=(const tuple<VValues...>& other) - { - m_head = other.head(); - tail() = other.tail(); - return *this; - } - - typename add_reference<Head>::type head() { return m_head; } - typename add_reference<const Head>::type head() const { return m_head; } - inherited& tail() { return *this; } - const inherited& tail() const { return *this; } - - protected: - Head m_head; -}; - -template<typename T> -struct make_tuple_result -{ - typedef T type; -}; - -template<typename T> -struct make_tuple_result<reference_wrapper<T> > -{ - typedef T& type; -}; - -// 6.1.3.2 Tuple creation functions -struct ignore_t { - template<typename T> ignore_t& operator=(const T&) { return *this; } -} ignore; - -template<typename... Values> -tuple<typename make_tuple_result<Values>::type...> -make_tuple(const Values&... values) -{ - return tuple<typename make_tuple_result<Values>::type...>(values...); -} - -template<typename... Values> -tuple<Values&...> tie(Values&... values) -{ - return tuple<Values&...>(values...); -} - -// 6.1.3.3 Tuple helper classes -template<typename Tuple> -struct tuple_size; - -template<> -struct tuple_size<tuple<> > -{ - static const std::size_t value = 0; -}; - -template<typename Head, typename... Tail> -struct tuple_size<tuple<Head, Tail...> > -{ - static const std::size_t value = 1 + tuple_size<tuple<Tail...> >::value; -}; - -template<int I, typename Tuple> -struct tuple_element; - -template<int I, typename Head, typename... Tail> -struct tuple_element<I, tuple<Head, Tail...> > -{ - typedef typename tuple_element<I-1, tuple<Tail...> >::type type; -}; - -template<typename Head, typename... Tail> -struct tuple_element<0, tuple<Head, Tail...> > -{ - typedef Head type; -}; - -// 6.1.3.4 Element access -template<int I, typename Tuple> -class get_impl; - -template<int I, typename Head, typename... Values> -class get_impl<I, tuple<Head, Values...> > -{ - typedef typename tuple_element<I-1, tuple<Values...> >::type Element; - typedef typename add_reference<Element>::type RJ; - typedef typename add_const_reference<Element>::type PJ; - typedef get_impl<I-1, tuple<Values...> > Next; - - public: - static RJ get(tuple<Head, Values...>& t) - { return Next::get(t.tail()); } - - static PJ get(const tuple<Head, Values...>& t) - { return Next::get(t.tail()); } -}; - -template<typename Head, typename... Values> -class get_impl<0, tuple<Head, Values...> > -{ - typedef typename add_reference<Head>::type RJ; - typedef typename add_const_reference<Head>::type PJ; - - public: - static RJ get(tuple<Head, Values...>& t) { return t.head(); } - static PJ get(const tuple<Head, Values...>& t) { return t.head(); } -}; - -template<int I, typename... Values> -typename add_reference< - typename tuple_element<I, tuple<Values...> >::type - >::type -get(tuple<Values...>& t) -{ - return get_impl<I, tuple<Values...> >::get(t); -} - -template<int I, typename... Values> -typename add_const_reference< - typename tuple_element<I, tuple<Values...> >::type - >::type -get(const tuple<Values...>& t) -{ - return get_impl<I, tuple<Values...> >::get(t); -} - -// 6.1.3.5 Relational operators -inline bool operator==(const tuple<>&, const tuple<>&) { return true; } - -template<typename T, typename... TTail, typename U, typename... UTail> -bool operator==(const tuple<T, TTail...>& t, const tuple<U, UTail...>& u) -{ - return t.head() == u.head() && t.tail() == u.tail(); -} - -template<typename... TValues, typename... UValues> -bool operator!=(const tuple<TValues...>& t, const tuple<UValues...>& u) -{ - return !(t == u); -} - -inline bool operator<(const tuple<>&, const tuple<>&) { return false; } - -template<typename T, typename... TTail, typename U, typename... UTail> -bool operator<(const tuple<T, TTail...>& t, const tuple<U, UTail...>& u) -{ - return (t.head() < u.head() || - (!(t.head() < u.head()) && t.tail() < u.tail())); -} - -template<typename... TValues, typename... UValues> -bool operator>(const tuple<TValues...>& t, const tuple<UValues...>& u) -{ - return u < t; -} - -template<typename... TValues, typename... UValues> -bool operator<=(const tuple<TValues...>& t, const tuple<UValues...>& u) -{ - return !(u < t); -} - -template<typename... TValues, typename... UValues> -bool operator>=(const tuple<TValues...>& t, const tuple<UValues...>& u) -{ - return !(t < u); -} - -int a0[tuple_size<tuple<> >::value == 0? 1 : -1]; -int a1[tuple_size<tuple<int, float, double> >::value == 3? 1 : -1]; -int a2a[is_same<tuple_element<0, tuple<int, float, double> >::type, int> - ::value? 1 : -1]; -int a2b[is_same<tuple_element<1, tuple<int, float, double> >::type, float> - ::value? 1 : -1]; -int a2c[is_same<tuple_element<2, tuple<int, float, double> >::type, double> - ::value? 1 : -1]; - -int main() -{ - tuple<> t0; - tuple<int> t1(1); - tuple<int, float> t2(1, 3.14159f); - tuple<int, float, const char*> t3a(1, 3.14159f, "Hello, world!"); - tuple<long, double, std::string> t3b(t3a); - t3b = t3a; - // t3a = t3b; DPG: triggers an error, as it should. - - tuple<int, float, std::string> t3c = - make_tuple(17, 2.718281828, std::string("Fun")); - - int seventeen = 17; - double pi = 3.14159; - tuple<int&, double&> seventeen_pi = make_tuple(ref(seventeen), ref(pi)); - tuple<int&, const double&> seventeen_pi2 = - make_tuple(ref(seventeen), cref(pi)); - tuple<int&, double&> seventeen_pi_tied = tie(seventeen, pi); - assert(get<0>(t3a) == 1); - assert(get<1>(t3a) == 3.14159f); - assert(std::strcmp(get<2>(t3a), "Hello, world!") == 0); - - assert(t3a == t3b); - assert(!(t3a != t3b)); - assert(!(t3a < t3b)); - assert(!(t3a > t3b)); - assert(t3a <= t3b && t3b <= t3a); - assert(t3a >= t3b && t3b >= t3a); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-unify-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-unify-2.C deleted file mode 100644 index 80c9f5d2c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-unify-2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Contributed by Dodji Seketeli <dodji@redhat.com> -// Origin: PR c++/40155 -// { dg-options "-std=c++0x" } -// { dg-do compile } - -template <typename T> struct identity -{ typedef T type; }; - -template <typename RT, typename... A> -int forward_call(RT (*) (A...), typename identity<A>::type...); - -int g (double); - -int i = forward_call(&g, 0); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-unify.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-unify.C deleted file mode 100644 index 54234391e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-unify.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename...> struct tuple { }; - -template<typename... Args1, typename... Args2> -void foo(tuple<Args1..., Args2...>, tuple<Args1...>, tuple<Args2...>); - -struct X{ }; - -void bar() -{ - tuple<int, float> tif; - tuple<double, X> tdx; - tuple<int, float, double, X> tall; - foo(tall, tif, tdx); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-unresolved.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-unresolved.C deleted file mode 100644 index a8463de19..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-unresolved.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/50086 -// { dg-options -std=c++0x } - -template<typename T> void tfun(); -template<typename T> void fun1(T); -template<typename... Types> void fun2(Types... args); - -int main() -{ - fun1(tfun<int>); // ok - fun2(tfun<int>); // error: unresolved overloaded function type -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-value1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-value1.C deleted file mode 100644 index 179919a5b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic-value1.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/52796 -// { dg-do run { target c++11 } } - -inline void *operator new(__SIZE_TYPE__ s, void *p) { return p; } - -struct A -{ - int i; - template<class... Ts> - A(Ts&&... ts): i(ts...) { } -}; - -static union { - unsigned char c[sizeof(A)]; - int i; -}; - -int main() -{ - i = 0xdeadbeef; - new(c) A; - if (i != 0) - __builtin_abort(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic1.C deleted file mode 100644 index f87d53ca3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic1.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename...> -class tuple; - -template<typename... Args> -class tuple { }; - -template<typename T1, class... Args> -class tuple1p { }; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic10.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic10.C deleted file mode 100644 index 5f73eba8d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic10.C +++ /dev/null @@ -1,22 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T1, typename T2> -struct pair {}; - -template<typename... Args> -struct tuple { - static const int value = 0; -}; - -template<> -struct tuple<pair<int, float> > { }; - -template<typename... Outer> -struct X { - template<typename... Inner> - struct Y - { - typedef tuple<pair<Outer, Inner>...> type; // { dg-error "mismatched argument pack lengths" } - }; -}; - -X<int, double>::Y<short, char, double>::type honk; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic100.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic100.C deleted file mode 100644 index a364bbc91..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic100.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/43143 -// { dg-options "-std=c++0x" } - -template<typename T> -T&& declval(); - -template<class T, class... Args> -void test() { - T t(declval<Args>()...); -} - -int main() { - test<const int>(); // OK - test<int[23]>(); // Error -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic101.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic101.C deleted file mode 100644 index 445a770af..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic101.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/43382 -// { dg-options "-std=c++0x" } - -template<class T> -struct Container -{ T f() const; }; - -template<class T> -T deref(const T& t) -{ return t; } - - -template <class T, class... Args> -auto -deref(const T& u, int r, Args... args) --> decltype(deref(u.f(), args...)) -{ return deref(u.f(), args...); } - -int main(void) -{ - Container<Container<int>> v; - deref(v,1,2); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic102.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic102.C deleted file mode 100644 index dc9c4aea8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic102.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options "-std=c++0x" } - -struct nAny { - template<class... T> - nAny(T&&...); -}; - -template<class T> -T&& create(); - -template<class T, class... Args> -void test() { - T t(create<Args>()...); - (void) t; -} - -int main() { - test<nAny>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic103.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic103.C deleted file mode 100644 index 9d6b5ea20..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic103.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<class T> -T&& create(); - -template<class T, class... Args> -void test() { - T t(create<Args>()...); // { dg-error "incomplete" } - (void) t; -} - -int main() { - test<int[]>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic105.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic105.C deleted file mode 100644 index 66d24a7ef..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic105.C +++ /dev/null @@ -1,25 +0,0 @@ -// PR c++/47289 -// { dg-options -std=c++0x } -// { dg-prune-output "note" } - -template <template <typename... __ARGS> class _F, typename... _ARGS> -auto reverse (_ARGS... args) -> decltype(_F<_ARGS...>::call_function(args...)) { - return _F<_ARGS...>::call_function(args...); -} - -template <typename _T> -_T sum(_T x) { return x; } - -template <typename _T, typename... _ARGS> -_T sum(_T x, _ARGS... args) { return x + sum(args...); } - -template <typename _T, typename... _ARGS> -struct call_sum { - static _T call_function(_T x1, _ARGS... args) { return sum(x1, args...); } -}; - -int main() { - // This shouldn't be an error; this is bug 35722. - reverse<call_sum>(1,2); // { dg-bogus "no match" "" } - // { dg-bogus "sorry, unimplemented" "candidate explanation" { target *-*-* } 6 } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic106.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic106.C deleted file mode 100644 index 80ec0844f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic106.C +++ /dev/null @@ -1,22 +0,0 @@ -// Origin: PR c++/47326 -// { dg-options "-std=c++0x" } -// { dg-do compile } - -template <int _N> -struct A -{ - typedef int value_type; -}; - -template <typename... _ARGS> -auto -f (_ARGS... args) -> typename A<sizeof...(args)>::value_type -{ - return 12; -} - -int -main() -{ - f(1,2); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic107.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic107.C deleted file mode 100644 index 5c3f46851..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic107.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/48451 -// { dg-options -std=c++0x } - -namespace std { - template <class T> T&& declval(); -} - -template<class T, class... Args, - class = decltype(T(std::declval<Args>()...)) - > -char f(int); - -struct From2Ints { From2Ints(int, int); }; - -static_assert(sizeof(f<From2Ints, int, int>(0)) == 1, "Error"); // b diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic108.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic108.C deleted file mode 100644 index 3ad5af457..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic108.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/48736 -// { dg-options -std=c++0x } - -template<class T> -T&& create(); - -template<class T, class... Args, - class = decltype(T{create<Args>()...}) // Line X -> -char f(int); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic109.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic109.C deleted file mode 100644 index 0ec69af81..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic109.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/48292 -// { dg-options -std=c++0x } - -template <typename... Args> int g(Args...); - -template <int N = 0> -struct A -{ - template <typename... Args> - static auto f(Args... args) -> decltype(g(args...)); -}; - -int main() -{ - A<>::f(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic11.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic11.C deleted file mode 100644 index 3c27de0fb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic11.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename...> struct count; - -template<> -struct count<> { - static const int value = 0; -}; - -template<typename T, typename... Args> -struct count<T, Args...> { - static const int value = 1 + count<Args...>::value; -}; - -int a0[count<>::value == 0? 1 : -1]; -int a1[count<char>::value == 1? 1 : -1]; -int a2[count<char, short>::value == 2? 1 : -1]; -int a3[count<char, short, int>::value == 3? 1 : -1]; -int a4[count<char, short, int, long>::value == 4? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic110.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic110.C deleted file mode 100644 index 86f1bb154..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic110.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/45698 -// { dg-options -std=c++0x } - -template <class... Ts> struct tuple { }; - -template<class... Ts> -struct A { - template<typename T> struct N { }; - tuple<N<Ts>...> tup; -}; - -int main() -{ - A<int, double> a; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic111.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic111.C deleted file mode 100644 index cb94ce697..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic111.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/48424 -// { dg-options "-std=c++0x -fabi-version=0" } - -template<typename... Args1> -struct S -{ - template<typename... Args2> - void f(Args1... args1, Args2&&... args2) - { - } -}; - -int main() -{ - S<int, double> s; - s.f(1,2.0,false,'a'); -} - -// { dg-final { scan-assembler "_ZN1SIJidEE1fIJbcEEEvidDpOT_" } } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic112.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic112.C deleted file mode 100644 index 1640657d9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic112.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/49420 -// { dg-options -std=c++0x } - -struct A { }; - -template <class T> struct B -{ - typedef typename T::type type ; // { dg-error "no type" } -}; - -template <typename Array, typename... Args> -typename B<Array>::type -get(const Array& a, Args... args); - -int main() -{ - A a; - int x = get(a, 1, 2, 3); // { dg-error "no match" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic113.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic113.C deleted file mode 100644 index 3f1bb2ad0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic113.C +++ /dev/null @@ -1,20 +0,0 @@ -// PR c++/49251 -// { dg-options "-std=c++0x -Wunused-parameter" } - -struct A {}; -template <int> int f(A); - -template< int... Indices > -struct indices {}; - -template< class... Args > -void sink( Args&&... ) {} - -template< class T, int... Indices > -void unpack_test( T && t, indices<Indices...> ) { - sink( f<Indices>(t)... ); -} - -int main() { - unpack_test( A(), indices<>() ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic114.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic114.C deleted file mode 100644 index 3ffede5c5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic114.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/49785 -// { dg-options -std=c++0x } - -template <typename, typename ...> struct B { }; -template <typename> class A; - -template <typename R, typename ... S> -struct A <R (S ...)> : public B <R, S ...> -{ - struct C {}; - template <typename D> A (D, C = C ()) { } - R operator () (...); -}; - -template <typename R, typename ... S, typename T> -auto operator >> (A <R (S ...)>, T)->A <R (S ...)> -{ - []() {}; -} - -int -main () -{ - A <int (int, int)> a = [](int, int) {}; - auto b = []{}; - (a >> b) (3, 5); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic115.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic115.C deleted file mode 100644 index fa032e3b0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic115.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/49593 -// { dg-options -std=c++0x } - -template<typename... T> void f(T...) { } - -template<typename... Args> -static void -g(Args&&... args) -{ - f( static_cast<Args>(args)... ); - f( (Args)args... ); - f( Args(args)... ); - f( Args{args}... ); -} - -int main() -{ - g(1, '2', 3.0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic116.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic116.C deleted file mode 100644 index 079d751cb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic116.C +++ /dev/null @@ -1,32 +0,0 @@ -// Origin: PR c++/48320 -// { dg-options -std=c++0x } - -template<class... T> -struct tuple -{ - typedef int type; -}; - -template<int... Indices> -struct indices -{ -}; - -template<unsigned i, class Tuple> -struct tuple_element -{ - typedef Tuple type; -}; - -template<class Tuple, - int... Indices, - class Result = tuple<typename tuple_element<Indices, Tuple>::type...> > -Result -f(Tuple&&, indices<Indices...>); - - -void -foo() -{ - f(tuple<int, char, unsigned> (), indices<2, 1, 0> ()); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic117.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic117.C deleted file mode 100644 index 22f2fc5ae..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic117.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options -std=c++0x } - -template <class T> struct A { typedef T type; }; - -template <template <class...> class T, class... U> -void f(typename T<U...>::type); - -int main() -{ - f<A,int>(42); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic118.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic118.C deleted file mode 100644 index 43bf9bab2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic118.C +++ /dev/null @@ -1,11 +0,0 @@ -// This should fail deduction, before it produces a candidate. -// { dg-options -std=c++0x } - -template <class... T> -void f(T... ts); // { dg-message "deduction" } - -struct B { }; -int main() -{ - f<int>(B(), 1); // { dg-error "" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic119.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic119.C deleted file mode 100644 index 78cd23e20..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic119.C +++ /dev/null @@ -1,13 +0,0 @@ -// PR c++/51046 -// { dg-do compile { target c++11 } } - -template<int... IS> -void f() -{ - for (int i : IS); // { dg-error "not expanded" } -} - -int main() -{ - f<0, 1, 2>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic12.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic12.C deleted file mode 100644 index 30108c999..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic12.C +++ /dev/null @@ -1,42 +0,0 @@ -// { dg-options "-std=gnu++0x" } -// A tuple type -template<typename... Args> struct tuple { }; - -// Determine if two types are the same -template<typename T, typename U> -struct is_same { - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> { - static const bool value = true; -}; - -// Append 'T' to the end of Tuple -template<typename T, typename Tuple> -struct append_to_tuple; - -template<typename T, typename... Args> -struct append_to_tuple<T, tuple<Args...> > { - typedef tuple<Args..., T> type; -}; - -// Reverse a sequence of arguments (and return the result as a tuple) -template<typename... Args> struct reverse; - -template<typename T, typename... Args> -struct reverse<T, Args...> { - typedef typename append_to_tuple<T, typename reverse<Args...>::type>::type - type; -}; - -template<> -struct reverse<> { - typedef tuple<> type; -}; - -int a0[is_same<reverse<>::type, tuple<> >::value? 1 : -1]; -int a1[is_same<reverse<int>::type, tuple<int> >::value? 1 : -1]; -int a2[is_same<reverse<char, int>::type, tuple<int, char> >::value? 1 : -1]; -int a3[is_same<reverse<char, int, long>::type, tuple<long, int, char> >::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic120.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic120.C deleted file mode 100644 index e26ee4e9a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic120.C +++ /dev/null @@ -1,24 +0,0 @@ -// PR c++/48322 -// { dg-do compile { target c++11 } } - -template <class... T> struct tuple; -template <class T> struct tuple<T> { T t; }; - -template <class T, class U> struct pair; -template<> struct pair<int,double> { }; - -template <class... Ts> -struct A -{ - template <class... Us, - class V = tuple<pair<Ts,Us>...> > - static void f() - { - V v; - } -}; - -int main() -{ - A<int>::f<double>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic121.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic121.C deleted file mode 100644 index 805c0065f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic121.C +++ /dev/null @@ -1,12 +0,0 @@ -// PR c++/51507 -// { dg-options -std=c++0x } - -template<typename ...> -struct foo { typedef void type; }; -template<typename ...Ts> -auto g(Ts ...ts)-> - typename foo<decltype(ts)...>::type -{} -int main() { - g(42); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic122.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic122.C deleted file mode 100644 index 7f03c107c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic122.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/52043 -// { dg-options "-std=c++11 -Wreturn-type" } - -template < class T > struct Container -{ - T f (); -}; - -template < class T > -T deref (T) -{} // { dg-warning "no return" } - -template < class T, class ... Args > -auto deref (T u, int, Args ... args)->decltype (deref (u.f (), args ...)) -{} // { dg-warning "no return" } - -void -foo () -{ - Container < Container < int > > v; - deref (v, 2); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic123.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic123.C deleted file mode 100644 index f0ab9fc22..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic123.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/52824 -// { dg-do compile { target c++11 } } - -template<typename G, typename H> -struct foo -{}; - -template<typename... G> -struct bar : foo<G...> -{}; - -int main() { - bar<int, float> f; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic124.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic124.C deleted file mode 100644 index 8ddc810b3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic124.C +++ /dev/null @@ -1,29 +0,0 @@ -// PR c++/52292 -// { dg-options -std=c++11 } - -template <template <typename...> class T> -struct foo { - template <typename... U> - foo(T<U...> x) { } -}; - -template <typename T> -struct bar { - bar(T x) : value(x) { } - - T value; -}; - -struct generic : private foo<bar> { - template <typename T> - generic(bar<T> x) : foo(x) - { - } - -}; - -int main() -{ - bar<int> x(32); - generic y(x); // FAILS -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic125.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic125.C deleted file mode 100644 index 89fd6b00d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic125.C +++ /dev/null @@ -1,25 +0,0 @@ -// PR c++/52380 -// { dg-do compile { target c++11 } } - -template<typename T> -struct S -{ - template<typename U> - struct Unary // Line 5 - {}; - - template<unsigned, typename... Args> - struct Dispatch // Line 9 - : public Unary<Args...> - {}; - - template<typename... Args> - struct Variadic - : public Dispatch<sizeof...(Args), Args...> - {}; -}; - -int main() -{ - S<void>::Variadic<void> z; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic126.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic126.C deleted file mode 100644 index 513c7e54a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic126.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/47220 -// { dg-do compile { target c++11 } } - -template < typename ... > struct A; - -struct B : A < // { dg-error "invalid" } -{ -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic127.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic127.C deleted file mode 100644 index 2e0d593ac..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic127.C +++ /dev/null @@ -1,15 +0,0 @@ -// PR c++/51148 -// { dg-do compile { target c++11 } } - -template<typename... Types> -struct S -{}; - -template<typename... Types> -struct T -{ - friend class S<Types>; // { dg-error "parameter packs not expanded" } -}; - -int main() -{} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic128.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic128.C deleted file mode 100644 index 8c2d3b233..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic128.C +++ /dev/null @@ -1,16 +0,0 @@ -// PR c++/50303 -// { dg-do compile { target c++11 } } - -template<typename Interface> -struct A1 { -}; - -template<template<class I> class... Actions> -void g2() { - g2<Actions...>(); -} - -int main() -{ - g2<A1>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic129.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic129.C deleted file mode 100644 index 711830141..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic129.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/50830 -// { dg-do compile { target c++11 } } - -template<template<class> class...> -struct list_templates {}; - -template<class> -struct aa {}; - -template<class... T> -struct test {}; - -template<template<class> class... F, class T> -struct test<list_templates<F...>, T> -{ - struct inner {}; -}; - -test<list_templates<aa>, int> a4; // error diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic13.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic13.C deleted file mode 100644 index 7794e8a3d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic13.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> struct tuple1 { }; -template<typename... Args> struct tuple2 { }; - -template<typename T, typename U> -struct same_tuple_args { - static const bool value = false; -}; - -template<typename... Args> -struct same_tuple_args<tuple1<Args...>, tuple2<Args...> > { - static const bool value = true; -}; - -int same0[same_tuple_args<tuple1<>, tuple2<> >::value? 1 : -1]; -int same1[same_tuple_args<tuple1<int>, tuple2<int> >::value? 1 : -1]; -int same2[same_tuple_args<tuple1<float, int>, tuple2<float, int> >::value? 1 : -1]; -int diff0[!same_tuple_args<tuple1<>, tuple2<int> >::value? 1 : -1]; -int diff1[!same_tuple_args<tuple1<int, float>, tuple2<float, int> >::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic130.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic130.C deleted file mode 100644 index f73c8b512..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic130.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/52008 -// { dg-do compile { target c++11 } } - -template <int I, typename T, typename... Ts> -struct A; - -template<typename... Ts> -struct A<0, Ts...>; // { dg-error "not more specialized" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic131.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic131.C deleted file mode 100644 index 3006f87ed..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic131.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/38543 -// { dg-do compile { target c++11 } } - -template< typename ... T > void foo( T ... args ); -template<> void foo( ){} -template<> void foo(int,double){} -int main() -{ - foo( 0, 0.0 ); - return 55; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic132.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic132.C deleted file mode 100644 index 1b9c28686..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic132.C +++ /dev/null @@ -1,27 +0,0 @@ -// PR c++/53305 -// { dg-do compile { target c++11 } } - -template<class... Ts> struct tuple { }; - -struct funct -{ - template<class... argTs> - int operator()(argTs...); -}; - -template<class...> struct test; - -template<template <class...> class tp, - class... arg1Ts, class... arg2Ts> -struct test<tp<arg1Ts...>, tp<arg2Ts...>> -{ - template<class func, class...arg3Ts> - auto test2(func fun, arg1Ts... arg1s, arg3Ts... arg3s) - -> decltype(fun(arg1s..., arg3s...)); -}; - -int main() -{ - test<tuple<>, tuple<char,int>> t2; - t2.test2(funct(), 'a', 2); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic133.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic133.C deleted file mode 100644 index 0265f0991..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic133.C +++ /dev/null @@ -1,46 +0,0 @@ -// PR c++/53039 -// { dg-do compile { target c++11 } } - -template <class, class> -struct is_convertible -{ - static const bool value = true; -}; - -template<bool, class T> -struct enable_if -{ - typedef T type; -}; - -template <bool...> -struct Xs -{ - static const bool value = true; -}; - -template<typename... BTs> - class BType - { - template <typename... BUs, - typename enable_if< - Xs<is_convertible<BUs, BTs>::value...>::value, - bool>::type = false> - void fooX(BUs&&...); - }; - -template <typename... ATs> - struct AType - { - template <typename... AUs, - typename enable_if< - Xs<is_convertible<AUs, ATs>::value...>::value, - bool>::type = false> - void foo(AUs&&...); - }; - -int main() -{ - AType<int, int> t; - t.foo(1, 1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic134.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic134.C deleted file mode 100644 index d4181b02c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic134.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/53862 -// { dg-do compile { target c++11 } } - -typedef unsigned long size_t; - -template<typename> struct is_scalar { static const bool value = true; }; -template<bool, typename T> struct enable_if { typedef T type; }; - -template <size_t N, typename... Args> -void f(Args...) {} - -template <size_t N, typename T, typename... Args> -typename enable_if<is_scalar<T>::value, void>::type f(T, Args...) {} - -int main() { - f<1>(1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic135.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic135.C deleted file mode 100644 index fbf5dec47..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic135.C +++ /dev/null @@ -1,5 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -template <typename ...> struct S; - -int i = S<int,>::undefined; // { dg-error "template argument 2 is invalid" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic139.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic139.C deleted file mode 100644 index a1c64f30f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic139.C +++ /dev/null @@ -1,14 +0,0 @@ -// Origin: PR c++/53609 -// { dg-do compile { target c++11 } } - -template<class...I> struct List {}; -template<int T> struct Z {static const int value = T;}; -template<int...T> using LZ = List<Z<T>...>; - -template<class...U> -struct F -{ - using N = LZ<U::value...>; -}; - -F<Z<1>, Z<2> >::N A; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic14.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic14.C deleted file mode 100644 index 3c1bb0d6d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic14.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename R, typename... ArgTypes> -struct make_function_type -{ - typedef R type(ArgTypes...); -}; - -template<typename T, typename U> -struct is_same { - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> { - static const bool value = true; -}; - -int a0[is_same<make_function_type<int>::type, int()>::value? 1 : -1]; -int a1[is_same<make_function_type<int, float>::type, int(float)>::value? 1 : -1]; -int a2[is_same<make_function_type<int, float>::type, int(float)>::value? 1 : -1]; -int a3[is_same<make_function_type<int, float, double>::type, int(float, double)>::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic140.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic140.C deleted file mode 100644 index 17ca9e5fd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic140.C +++ /dev/null @@ -1,22 +0,0 @@ -// Origin: PR c++/53609 -// { dg-do compile { target c++11 } } - -template<class...I> struct List{ static const bool is_ok = false;}; -template<int T> struct Z -{ - static const int value = T; - static const int value_square = T * T; -}; - -template<template<int> class U> -struct List<U<2>, U<3>, U<4>, U<9>> { static const bool is_ok = true;}; - -template<int...T> using LZ = List<Z<T>...>; - -template<class...T> -struct F -{ - using N = LZ<T::value..., T::value_square...>; -}; - -static_assert (F<Z<2>, Z<3>>::N::is_ok, ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic141.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic141.C deleted file mode 100644 index 6b893a77c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic141.C +++ /dev/null @@ -1,22 +0,0 @@ -// Origin: PR c++/53609 -// { dg-do compile { target c++11 } } - -template<class...I> struct List{ static const bool is_ok = false;}; -template<int T> struct Z -{ - static const int value = T; - static const int value_square = T * T; -}; - -template<template<int> class U> -struct List<U<2>, U<3>, U<4>, U<9>> { static const bool is_ok = true;}; - -template<int...T> using LZ = List<Z<T>...>; - -template<class...T> -struct F -{ - using N = LZ<T::value..., Z<4>::value, Z<9>::value>; -}; - -static_assert (F<Z<2>, Z<3>>::N::is_ok, ""); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic142.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic142.C deleted file mode 100644 index 7737b4cac..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic142.C +++ /dev/null @@ -1,63 +0,0 @@ -// PR c++/56782 -// { dg-options -std=c++0x } - -template<class T> -T&& declval(); - -struct is_convertible_impl { - template<class T> - static void sink(T); - - template<class T, class U, class = decltype(sink<U>(declval<T>()))> - static auto test(int) -> char; - - template<class, class> - static auto test(...) -> char(&)[2]; -}; - -template<class T, class U> -struct is_convertible : is_convertible_impl -{ - static const bool value = sizeof(test<T, U>(0)) == 1; -}; - -template<bool, class> -struct enable_if {}; - -template<class T> -struct enable_if<true, T> { typedef T type; }; - -template<bool, class If, class Else> -struct conditional { typedef If type; }; - -template<class If, class Else> -struct conditional<false, If, Else> { typedef Else type; }; - -template<class...> -struct and_; - -template<> -struct and_<> -{ - static const bool value = true; -}; - -template<class P> -struct and_<P> : P -{ -}; - -template<class P1, class P2> -struct and_<P1, P2> : conditional<P1::value, P2, P1>::type -{ -}; - -template<class... T> -struct Tuple { - template<class... U, - class = typename enable_if<and_<is_convertible<U, T>... >::value, int>::type - > - Tuple(U&&...){} -}; - -static_assert(is_convertible<Tuple<>, Tuple<>>::value, "Ouch"); //#1 diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic15.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic15.C deleted file mode 100644 index 68786cb82..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic15.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename R, typename... ArgTypes> -struct make_function_type -{ - typedef R type(const ArgTypes&...); -}; - -template<typename T, typename U> -struct is_same { - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> { - static const bool value = true; -}; - -int a0[is_same<make_function_type<int>::type, int()>::value? 1 : -1]; -int a1[is_same<make_function_type<int, float>::type, int(const float&)>::value? 1 : -1]; -int a2[is_same<make_function_type<int, float>::type, int(const float&)>::value? 1 : -1]; -int a3[is_same<make_function_type<int, float, double>::type, int(const float&, double const&)>::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic16.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic16.C deleted file mode 100644 index 001919d46..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic16.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename R, typename... ArgTypes> -struct make_function_type -{ - typedef R type(const ArgTypes&... args); -}; - -template<typename T, typename U> -struct is_same { - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> { - static const bool value = true; -}; - -int a0[is_same<make_function_type<int>::type, int()>::value? 1 : -1]; -int a1[is_same<make_function_type<int, float>::type, int(const float&)>::value? 1 : -1]; -int a2[is_same<make_function_type<int, float>::type, int(const float&)>::value? 1 : -1]; -int a3[is_same<make_function_type<int, float, double>::type, int(const float&, double const&)>::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic17.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic17.C deleted file mode 100644 index 986721bbe..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic17.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename R, typename... ArgTypes> -struct make_function_type -{ - typedef R type(const ArgTypes&......); -}; - -template<typename T, typename U> -struct is_same { - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> { - static const bool value = true; -}; - -int a0[is_same<make_function_type<int>::type, int(...)>::value? 1 : -1]; -int a1[is_same<make_function_type<int, float>::type, int(const float&...)>::value? 1 : -1]; -int a2[is_same<make_function_type<int, float>::type, int(const float&,...)>::value? 1 : -1]; -int a3[is_same<make_function_type<int, float, double>::type, int(const float&, double const&...)>::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic18.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic18.C deleted file mode 100644 index 147ed8e4b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic18.C +++ /dev/null @@ -1,47 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename...> class tuple { }; - -template<typename T, template<typename T> class... Metafunctions> -struct apply_all -{ - typedef tuple<typename Metafunctions<T>::type...> type; -}; - -template<typename T, typename U> -struct is_same { - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> { - static const bool value = true; -}; - -template<typename T> -struct add_pointer { - typedef T* type; -}; - -template<typename T> -struct add_pointer<T&> -{ - typedef T& type; -}; - -template<typename T> -struct add_reference { - typedef T& type; -}; - -template<typename T> -struct add_reference<T&> -{ - typedef T& type; -}; - -int a0[is_same<apply_all<int>::type,tuple<> >::value? 1 : -1]; -int a1[is_same<apply_all<int, add_pointer>::type,tuple<int*> >::value? 1 : -1]; -int a2[is_same<apply_all<int, add_pointer, add_reference>::type,tuple<int*, int&> >::value? 1 : -1]; -int a3[is_same<apply_all<int&, add_pointer, add_reference>::type,tuple<int&, int&> >::value? 1 : -1]; - - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic19.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic19.C deleted file mode 100644 index 92e7a953a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic19.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> -struct tuple { - static const int value = 0; -}; - -template<typename T, template<class T> class... Metafunctions> -struct tuple<Metafunctions<T>...> { - static const int value = 1; -}; - -template<typename T> struct add_pointer; -template<typename T> struct add_reference; - -int a0[tuple<int, float>::value == 0? 1 : -1]; -int a1[tuple<add_pointer<int>, add_pointer<float> >::value == 0? 1 : -1]; -int a2[tuple<>::value == 0? 1 : -1]; -int a3[tuple<add_pointer<int> >::value == 1? 1 : -1]; -int a4[tuple<add_pointer<int>, add_reference<int> >::value == 1? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic2.C deleted file mode 100644 index 207a80648..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic2.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args = int> // { dg-error "default argument" } -class tuple2; - -template<typename... = int> // { dg-error "default argument" } -class tuple3; - -template<typename T1, typename T2, typename... Rest> -struct two_or_more {}; // { dg-error "provided for" } - -typedef two_or_more<int> bad; // { dg-error "2 or more" "2 or more" } -// { dg-error "invalid type" "invalid type" { target *-*-* } 11 } - -void f() -{ - two_or_more<int, float> z = 5; // { dg-error "two_or_more<int, float>" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic20.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic20.C deleted file mode 100644 index bfb42bea0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic20.C +++ /dev/null @@ -1,47 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T> struct add_pointer; -template<typename T> struct add_reference; - -template<template<class T> class... Metafunctions> -struct metatuple { - static const int value = 0; -}; - -template<> -struct metatuple<add_pointer> { - static const int value = 1; -}; - -template<template<class T> class Meta> -struct metatuple<Meta, Meta> { // { dg-error "candidates" } - static const int value = 2; -}; - -template<template<class T> class... Metafunctions> -struct metatuple<add_pointer, Metafunctions...> { // { dg-error "" } - static const int value = 3; -}; - -template<template<class T> class First, - template<class T> class... Metafunctions> -struct metatuple<First, Metafunctions...> { // { dg-error "struct" } - static const int value = 4; -}; - -template<template<class T> class First, - template<class T> class Second, - template<class T> class... Metafunctions> -struct metatuple<First, Second, Metafunctions...> { // { dg-error "struct" } - static const int value = 5; -}; - -int a0[metatuple<>::value == 0? 1 : -1]; -int a1[metatuple<add_pointer>::value == 1? 1 : -1]; -int a2a[metatuple<add_pointer, add_pointer>::value == 2? 1 : -1]; // { dg-error "ambiguous|array bound" "bound" } -int a2b[metatuple<add_reference, add_reference>::value == 2? 1 : -1]; -int a3[metatuple<add_pointer, add_reference>::value == 3? 1 : -1]; // { dg-error "ambiguous|array bound" "bound" } -int a4[metatuple<add_reference>::value == 4? 1 : -1]; -int a5[metatuple<add_reference, add_pointer>::value == 5? 1 : -1]; - -// { dg-error "incomplete" "incomplete" { target *-*-* } 40 } -// { dg-error "incomplete" "incomplete" { target *-*-* } 42 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic21.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic21.C deleted file mode 100644 index b65e995b9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic21.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T, int... Dims> -struct array { }; - -array<int> a0; -array<int, 1> a1; -array<int, 1, 2, 3, 4> a1234; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic22.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic22.C deleted file mode 100644 index 1d26e40d9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic22.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename R, typename... ArgTypes> -struct make_function_type -{ - typedef R type(ArgTypes... args); -}; - -template<typename T, typename U> -struct is_same { - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> { - static const bool value = true; -}; - -int a0[is_same<make_function_type<int>::type, int()>::value? 1 : -1]; -int a1[is_same<make_function_type<int, float>::type, int(float)>::value? 1 : -1]; -int a2[is_same<make_function_type<int, float>::type, int(float)>::value? 1 : -1]; -int a3[is_same<make_function_type<int, float, double>::type, int(float, double const)>::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic23.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic23.C deleted file mode 100644 index 43309a1e1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic23.C +++ /dev/null @@ -1,25 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T, int... Dims> -struct array { - static const int value = 0; -}; - -template<> -struct array<int, 17> { - static const int value = 1; -}; - -template<int... Dims> -struct array<float, 1, Dims...> { - static const int value = 2; -}; - -template<typename T, int... Dims> -struct array<T, 1, Dims...> { - static const int value = 3; -}; - -int a0[array<int>::value == 0? 1 : -1]; -int a1[array<int, 17>::value == 1? 1 : -1]; -int a2[array<float, 1, 2, 3>::value == 2? 1 : -1]; -int a3[array<double, 1, 2, 3>::value == 3? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic24.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic24.C deleted file mode 100644 index 6ef8e8a77..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic24.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T, T... Values> -struct vector_c { }; - -vector_c<int, 17, 42> intvec; -vector_c<char, 'a', 'b', 'c'> charvec; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic25.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic25.C deleted file mode 100644 index 6589e7f60..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic25.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<int... Values> -struct sum; - -template<> -struct sum<> { - static const int value = 0; -}; - -template<int Value, int... Values> -struct sum<Value, Values...> { - static const int value = Value + sum<Values...>::value; -}; - -int a0[sum<>::value == 0? 1 : -1]; -int a1[sum<1, 2, 3, 4, 5>::value == 15? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic26.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic26.C deleted file mode 100644 index 7f9f6bc80..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic26.C +++ /dev/null @@ -1,24 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<template<int, int> class Meta, int Initial, int... Values> -struct accumulate { - static const int value = Initial; -}; - -template<template<int, int> class Meta, int Initial, int Value, int... Rest> -struct accumulate<Meta, Initial, Value, Rest...> { - static const int value = - Meta<Value, accumulate<Meta, Initial, Rest...>::value>::value; -}; - -template<int X, int Y> -struct sum { - static const int value = X + Y; -}; - -template<int X, int Y> -struct prod { - static const int value = X * Y; -}; - -int a0[accumulate<sum,0,1,2,3,4,5>::value == 15? 1 : -1]; -int a1[accumulate<prod,1,1,2,3,4,5>::value == 120? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic27.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic27.C deleted file mode 100644 index 45a897ce2..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic27.C +++ /dev/null @@ -1,22 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename Signature> -struct function_traits; - -template<typename R, typename... ArgTypes> -struct function_traits<R(ArgTypes...)> { - typedef R result_type; -}; - -template<typename T, typename U> -struct same_type { - static const bool value = false; -}; - -template<typename T> -struct same_type<T, T> { - static const bool value = true; -}; - -int a0[same_type<function_traits<int()>::result_type, int>::value? 1 : -1]; -int a1[same_type<function_traits<int(float)>::result_type, int>::value? 1 : -1]; -int a2[same_type<function_traits<int(double, char)>::result_type, int>::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic28.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic28.C deleted file mode 100644 index 167088b49..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic28.C +++ /dev/null @@ -1,25 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename Signature> -struct function_traits; - -template<typename R, typename... ArgTypes> -struct function_traits<R(ArgTypes......)> { - typedef R result_type; -}; - -template<typename T, typename U> -struct same_type { - static const bool value = false; -}; - -template<typename T> -struct same_type<T, T> { - static const bool value = true; -}; - -int a0[same_type<function_traits<int(double, char...)>::result_type, int>::value? 1 : -1]; -int a1[same_type<function_traits<int(double, char,...)>::result_type, int>::value? 1 : -1]; -int a2[same_type<function_traits<int(char,...)>::result_type, int>::value? 1 : -1]; -int a3[same_type<function_traits<int(...)>::result_type, int>::value? 1 : -1]; -int a4[same_type<function_traits<int(double x, char...)>::result_type, int>::value? 1 : -1]; -int a5[same_type<function_traits<int(double, char y...)>::result_type, int>::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic29.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic29.C deleted file mode 100644 index aaed59583..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic29.C +++ /dev/null @@ -1,35 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename Signature> -struct function_traits; - -template<typename R, typename... ArgTypes> -struct function_traits<R(ArgTypes...)> { - typedef R result_type; -}; - -template<typename R, typename Class, typename... ArgTypes> -struct function_traits<R (Class::*)(ArgTypes...)> { - typedef R result_type; -}; - -template<typename R, typename Class, typename... ArgTypes> -struct function_traits<R (Class::*)(ArgTypes...) const> { - typedef R result_type; -}; - -template<typename T, typename U> -struct same_type { - static const bool value = false; -}; - -template<typename T> -struct same_type<T, T> { - static const bool value = true; -}; - -struct X {}; - -int a0[same_type<function_traits<int (X::*)()>::result_type, int>::value? 1 : -1]; -int a1[same_type<function_traits<int (X::*)(float)>::result_type, int>::value? 1 : -1]; -int a2[same_type<function_traits<int (X::*)(double, char)>::result_type, int>::value? 1 : -1]; -int a3[same_type<function_traits<int (X::*)(double, char) const>::result_type, int>::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic3.C deleted file mode 100644 index 42ba8ab47..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic3.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> -class tuple {}; - -void f() -{ - tuple<> x; - tuple<int> y; - tuple<int, float> z; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic30.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic30.C deleted file mode 100644 index 66cbe9f62..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic30.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... T> -void eat(T...); - -void f() -{ - eat(); - eat(1); - eat(1, 2); - eat(17, 3.14159, "Hello, World!"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic31.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic31.C deleted file mode 100644 index db8daa898..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic31.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=gnu++0x -g" } -template<typename... T> -void eat(T...) { } - -void f() -{ - eat(); - eat(1); - eat(1, 2); - eat(17, 3.14159, "Hello, World!"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic32.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic32.C deleted file mode 100644 index c5bee55cc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic32.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... T> -void eat(const T&...) { } - -void f() -{ - eat(); - eat(1); - eat(1, 2); - eat(17, 3.14159, "Hello, World!"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic33.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic33.C deleted file mode 100644 index 5784be887..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic33.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options "-std=gnu++0x" } -void print_all() {} - -template<typename T, typename... Rest> -void print_all(const T& t, const Rest&... rest) -{ - print_all(rest...); -} - -void f() -{ - print_all(); - print_all(1); - print_all(1, 3.14159); - print_all("Hello, World!", 17, 3.14159); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic34.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic34.C deleted file mode 100644 index 5eee3f13c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic34.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<int I, typename... Args> -void get_ith(const Args&... args); - -void f() -{ - get_ith<1>(1, 2, 3); - get_ith<1, int>(1, 2.0, 'x'); - get_ith<1, int, double>(1, 2.0, 'x'); - get_ith<1, int, double, char>(1, 2.0, 'x'); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic35.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic35.C deleted file mode 100644 index 666a1f5d0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic35.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<int I, typename... Args> -void get_ith(const Args&... args); // { dg-message "note" } - -void f() -{ - get_ith<1, float>(1, 2.0, 'x'); - get_ith<1, int, double, char, int>(1, 2.0, 'x'); // { dg-error "too few arguments" } -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic36.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic36.C deleted file mode 100644 index 906360204..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic36.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T, typename... Args> -void f(const T&, const Args&... args) -{ - f(args); // { dg-error "packs not expanded" } -} - -template<typename... Values> -struct tuple_base { }; - -template<typename... Values> -struct tuple : tuple_base<Values> { }; // { dg-error "packs not expanded" } - -// { dg-message "args" "note" { target *-*-* } 5 } -// { dg-message "Values" "note" { target *-*-* } 12 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic37.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic37.C deleted file mode 100644 index a6e5f613f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic37.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Values> -struct tuple -{ - static const __SIZE_TYPE__ length = sizeof...(Values); -}; - -int a0[tuple<>::length == 0? 1 : -1]; -int a1[tuple<int>::length == 1? 1 : -1]; -int a2[tuple<int, float>::length == 2? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic38.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic38.C deleted file mode 100644 index e4ae4a630..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic38.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<int... Values> -struct int_vec {}; - -template<int... Values> -struct int_vec<0, (Values+1)...> {}; // { dg-error "involves template parameter" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic39.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic39.C deleted file mode 100644 index bd656ba85..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic39.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> -struct tuple {}; - -template<typename T, typename... Args> -struct tuple<Args..., T> { }; // { dg-error "end" } - - -template<int... Values> -struct int_vec { }; - -template<int I, int... Values> -struct int_vec<Values..., I> { }; // { dg-error "end" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic4.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic4.C deleted file mode 100644 index 1bdad3256..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic4.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=gnu++0x -fabi-version=0" } -// { dg-do compile } -template<typename... Args> -class tuple {}; - -void f_none(tuple<>) {} -void f_one(tuple<int>) {} -void f_two(tuple<int, float>) {} -void f_nested(tuple<int, tuple<double, char>, float>) { } - - -// { dg-final { scan-assembler "_Z6f_none5tupleIJEE" } } -// { dg-final { scan-assembler "_Z5f_one5tupleIJiEE" } } -// { dg-final { scan-assembler "_Z5f_two5tupleIJifEE" } } -// { dg-final { scan-assembler "_Z8f_nested5tupleIJiS_IJdcEEfEE" } } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic40.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic40.C deleted file mode 100644 index 6cc9273a8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic40.C +++ /dev/null @@ -1,3 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Values, typename T> -struct backward_tuple {}; // { dg-error "end" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic41.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic41.C deleted file mode 100644 index 9cfd847f3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic41.C +++ /dev/null @@ -1,14 +0,0 @@ -// A function parameter pack is only deduced if it's at the end -// { dg-options "-std=gnu++0x" } -template<typename... Args> -void f(const Args&... args, int oops); - -int main() -{ - f<>(1); - f(1); - f<int>(1,2); - f(1,2); // { dg-error "no match" } -} - -// { dg-prune-output "note" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic42.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic42.C deleted file mode 100644 index 3ec68e8b1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic42.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=gnu++0x -fabi-version=5" } -// { dg-do compile } -template<typename... Args> -void f(Args...) { } - -void g() -{ - f<int*, float*, double*>(0, 0, 0); - f<int*>(0,0,0); -} -// { dg-final { scan-assembler "_Z1fIIPiPfPdEEvDpT_" } } -// { dg-final { scan-assembler "_Z1fIIPiiiEEvDpT_" } } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic43.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic43.C deleted file mode 100644 index fce81ae0d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic43.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> -int f(const Args&...); - -void g() -{ - int (*fp)(const int&, const float&) = &f; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic44.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic44.C deleted file mode 100644 index 8452a96cc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic44.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=gnu++0x" } -// { dg-do compile } -template<typename... Args> -int f(const Args&...); - -template<typename T> void g(T) { } - -void h() -{ - g(&f<int, float>); -} - -// { dg-final { scan-assembler "_Z1gIPFiRKiRKfEEvT_"} } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic45.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic45.C deleted file mode 100644 index c5a66ab20..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic45.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> -int& f(Args...); - -template<typename T1, typename T2> -float& f(T1, T2); - -float& g() { - return f(17, 3.14159); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic46.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic46.C deleted file mode 100644 index 8b81a363b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic46.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> -int& f(Args&...); - -template<typename... Args> -float& f(const Args&...); - -int& g(int x, float y) -{ - return f(x, y); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic47.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic47.C deleted file mode 100644 index d80371c0e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic47.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T> struct wrap { }; - -template<typename... Args> -int& f(const Args&...); - -template<typename... Args> -float& f(const wrap<Args>&...); - -int& g(int x, float y, double z) -{ - return f(x, y, z); -} - -float& h(wrap<int> x, wrap<float> y, wrap<double> z) -{ - return f(x, y, z); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic48.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic48.C deleted file mode 100644 index ab3f777f7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic48.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T, typename... Args> -int& f(const T&, Args...); - -template<typename T> -float& f(const T&); - -float& g() { - return f(17); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic49.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic49.C deleted file mode 100644 index 7e2215f2c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic49.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=gnu++0x" } -int& f(...); - -template<typename... Args> -float& f(Args...); - -float& g() { - return f(17, 3.14159); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic5.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic5.C deleted file mode 100644 index d1f333566..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic5.C +++ /dev/null @@ -1,38 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> -struct tuple { - static const int value = 0; -}; - -template<> -struct tuple<> { - static const int value = 1; -}; - -template<> -struct tuple<int> { - static const int value = 2; -}; - - -template<> -struct tuple<int, float> { - static const int value = 3; -}; - -template<typename T> -struct tuple<T, T> { - static const int value = 4; -}; - -template<> -struct tuple<float, float> { - static const int value = 5; -}; - -int a0[tuple<float>::value == 0? 1 : -1]; -int a1[tuple<>::value == 1? 1 : -1]; -int a2[tuple<int>::value == 2? 1 : -1]; -int a3[tuple<int, float>::value == 3? 1 : -1]; -int a4[tuple<int, int>::value == 4? 1 : -1]; -int a5[tuple<float, float>::value == 5? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic50.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic50.C deleted file mode 100644 index a2c3b7c90..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic50.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=gnu++0x" } -int& f(int, double, ...); - -template<typename... Args> -float& f(Args...); - -float& g() { - return f(17, 3.14159, 3); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic51.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic51.C deleted file mode 100644 index e2e2d630a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic51.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T1, typename T2> -float& f(T1, T2); - -template<typename... Args> -int& f(Args...); - -float& g() { - return f(17, 3.14159); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic52.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic52.C deleted file mode 100644 index 12b121fe4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic52.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T, T... Values> -struct vector_c { }; - -vector_c<int, 1, 2, 3> v1; -vector_c<char, 'a', 'b', 'c'> v2; -vector_c<long, 1u, 2, 3l> v3; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic53.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic53.C deleted file mode 100644 index 09a3879b4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic53.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename F, typename... BoundArgs> -class bound_functor -{ - public: - typedef typename F::result_type result_type; - - template<typename... Args> - typename F::result_type operator()(Args&... args); -}; - -template<typename F, typename... BoundArgs> -template<typename... Args> -typename F::result_type -bound_functor<F, BoundArgs...>::operator()(Args&... args) -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic54.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic54.C deleted file mode 100644 index db750d765..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic54.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename F, typename... BoundArgs> -class bound_functor -{ - public: - bound_functor(); -}; - -template<typename F, typename... BoundArgs> -bound_functor<F, BoundArgs...>::bound_functor() -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic55.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic55.C deleted file mode 100644 index b9c8cffb0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic55.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename F, typename... BoundArgs> -class bound_functor -{ - public: - bound_functor(const BoundArgs&... bound_args); -}; - -template<typename F, typename... BoundArgs> -bound_functor<F, BoundArgs...>::bound_functor(const BoundArgs&...) -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic56.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic56.C deleted file mode 100644 index 77846e513..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic56.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Elements> -struct tuple { }; - -template<typename T, typename... Elements> -struct tuple<T, Elements...> { - int foo(); -}; - -template<typename T, typename... Elements> -struct tuple<T*, Elements...> { - int bar(); -}; - -template<typename T, typename... Elements> -int tuple<T, Elements...>::foo() { return 0; } - -template<typename T, typename... Elements> -int tuple<T*, Elements...>::bar() { return 0; } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic57.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic57.C deleted file mode 100644 index 9833b1bb3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic57.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T, int... Dims> -struct array { - int foo(); -}; - -template<typename T> -struct array<T, 0> { - int bar(); -}; - -template<typename T, int... Dims> -int array<T, Dims...>::foo() { } - -template<typename T> -int array<T, 0>::bar() { } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic58.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic58.C deleted file mode 100644 index 5da0730b5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic58.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options "-std=gnu++0x" } -#include <typeinfo> - -template<typename... Args> -void foo(Args...) { } - -template<typename... Args> -void bar(Args... args) { - foo(Args()...); - foo(args = args...); - foo(reinterpret_cast<void*>(&args)...); - foo(const_cast<const Args>(args)...); - foo(static_cast<void*>(&args)...); - foo(dynamic_cast<void*>(&args)...); - foo(typeid(Args)...); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic59.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic59.C deleted file mode 100644 index 6d6e52f93..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic59.C +++ /dev/null @@ -1,4 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<class T, typename... VarArgs> -void print(T t, VarArgs args); // { dg-error "packs not expanded" } -// { dg-message "VarArgs" "note" { target *-*-* } 3 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic6.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic6.C deleted file mode 100644 index 105550bb9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic6.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename ... Args> -struct tuple_base {}; - -template<typename ... Args> -struct tuple : public tuple_base<Args...> -{ -}; - -tuple<> zero; -tuple<int> one; -tuple<float, int> two; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic60.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic60.C deleted file mode 100644 index 8e1681eec..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic60.C +++ /dev/null @@ -1 +0,0 @@ -template<typename... Args> class tuple; // { dg-error "variadic templates" "" { target c++98 } } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic61.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic61.C deleted file mode 100644 index d06c5f6b9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic61.C +++ /dev/null @@ -1,2 +0,0 @@ -// { dg-options "-std=gnu++98 -pedantic" } -template<typename... Args> class tuple; // { dg-warning "variadic templates" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic62.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic62.C deleted file mode 100644 index 010b3a5d4..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic62.C +++ /dev/null @@ -1,2 +0,0 @@ -// { dg-options "-std=gnu++98 -pedantic-errors" } -template<typename... Args> class tuple; // { dg-error "variadic templates" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic63.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic63.C deleted file mode 100644 index 359def1cd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic63.C +++ /dev/null @@ -1,2 +0,0 @@ -// { dg-options "-std=gnu++0x -pedantic" } -template<typename... Args> class tuple; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic64.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic64.C deleted file mode 100644 index c9212e2e9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic64.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<int... Indexes> - struct _Index_tuple { }; - -template<int _Num, typename _Tuple = _Index_tuple<> > -struct _Build_index_tuple; - -template<int _Num, int... _Indexes> -struct _Build_index_tuple<_Num, _Index_tuple<_Indexes...> > - : _Build_index_tuple<_Num - 1, - _Index_tuple<_Indexes..., sizeof...(_Indexes)> > -{ -}; - -template<int... _Indexes> -struct _Build_index_tuple<0, _Index_tuple<_Indexes...> > -{ - typedef _Index_tuple<_Indexes...> __type; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic65.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic65.C deleted file mode 100644 index 77be10676..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic65.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=gnu++0x" } -struct unused; -template<typename T1 = unused, typename T2 = unused, typename T3 = unused, - typename T4 = unused, typename T5 = unused, typename T6 = unused> -struct tuple {}; - -template<typename... Args> -tuple<Args...> foo() { } // { dg-bogus "cannot expand" "" } - -int main() -{ - foo<int,int,int,int,int,int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic66.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic66.C deleted file mode 100644 index 5c31ae06f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic66.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -template<typename Result, typename Functor, typename... ArgTypes> -Result bind(Functor, ArgTypes...) { } - -void f() -{ - bind<int>(17, 20, 22); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic67.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic67.C deleted file mode 100644 index e496bfc17..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic67.C +++ /dev/null @@ -1,24 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Elements> struct tuple {}; - -template<typename... Args> -struct nested -{ - typedef tuple<tuple<Args, Args...>...> type; -}; - -template<typename T, typename U> -struct is_same -{ - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> -{ - static const bool value = true; -}; - -int a0[is_same<nested<int, float>::type, - tuple<tuple<int, int, float>, - tuple<float, int, float> > >::value? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic68.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic68.C deleted file mode 100644 index 07cf8e389..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic68.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } -extern "C" void abort(); - -template<typename T, T... Values> -void f(T* expected_values, int n) -{ - if (sizeof...(Values) != n) - abort (); - - T values[] = { Values... }; - for (int i = 0; i < n; ++i) - if (values[i] != expected_values[i]) - abort(); -} - -int main() -{ - int test_arr1[3] = { 1, 2, 3 }; - f<int, 1, 2, 3>(test_arr1, 3); - - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic69.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic69.C deleted file mode 100644 index 5fe9a1950..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic69.C +++ /dev/null @@ -1,34 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T> -struct stored_value -{ - explicit stored_value() : value() { } - - explicit stored_value(const T& value) : value(value) { } - - stored_value(int, const T& value) : value(value) { } - - T value; -}; - -template<typename... Values> -struct myclass : public stored_value<Values>... -{ - myclass() { } - - explicit myclass(const Values&... values) - : stored_value<Values>(values)... { } - - explicit myclass(int x, const Values&... values) - : stored_value<Values>(x, values)... { } - -}; - -void f() -{ - int i; - float f; - myclass<int*, float*> ifp1; - myclass<int*, float*> ifp2(&i, &f); - myclass<int*, float*> ifp3(1, &i, &f); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic7.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic7.C deleted file mode 100644 index 3ba37bfb6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic7.C +++ /dev/null @@ -1,33 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> -struct tuple_base { - static const int value = 0; -}; - -template<> -struct tuple_base<int> { - static const int value = 1; -}; - -template<> -struct tuple_base<int, float> { - static const int value = 2; -}; - -template<> -struct tuple_base<float, int> { - static const int value = 3; -}; - -template<typename... Args> -struct int_tuple : tuple_base<int, Args...> { }; - -template<typename... Args> -struct tuple_int : tuple_base<Args..., int> { }; - -int a0a[int_tuple<int>::value == 0? 1 : -1]; -int a0b[int_tuple<int>::value == 0? 1 : -1]; -int a1a[int_tuple<>::value == 1? 1 : -1]; -int a1b[tuple_int<>::value == 1? 1 : -1]; -int a2[int_tuple<float>::value == 2? 1 : -1]; -int a3[tuple_int<float>::value == 3? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic70.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic70.C deleted file mode 100644 index 15bed461d..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic70.C +++ /dev/null @@ -1,22 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } -template <typename T, T... Args> struct bomb; - -template <typename T> -struct bomb<T> { - static const T value = 0; -}; - -template <typename T, T v, T... Args> -struct bomb<T, v, Args...> { - static const T value = v + bomb<T, Args...>::value; -}; - -extern "C" void abort(); - -int main() { - bomb<int, 1, 2, 3, 4> b; - if (b.value != 10) - abort(); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic71.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic71.C deleted file mode 100644 index bea3cc346..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic71.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename...> struct list {}; - -template<typename Sequence, typename Head> -struct push_front; - -template<typename... Elements, typename Head> -struct push_front<list<Elements...>, Head> { - typedef list<Head, Elements> type; // { dg-error "parameter packs not expanded" } -}; - -// { dg-message "Elements" "note" { target *-*-* } 9 } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic72.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic72.C deleted file mode 100644 index b1a620d53..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic72.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-options "-std=gnu++0x" } -struct A {}; -struct B {}; -struct C {}; - -template<typename... Mixins> -struct mixed_up : public Mixins... -{ -}; - -void fA(A); -void fB(B); -void fC(C); - -void g() -{ - mixed_up<A, B, C> m; - fA(m); - fB(m); - fC(m); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic73.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic73.C deleted file mode 100644 index 05925e7aa..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic73.C +++ /dev/null @@ -1,33 +0,0 @@ -// { dg-do run } -// { dg-options "-std=gnu++0x" } -struct A {}; -struct B {}; -struct C {}; - -template<typename... Exceptions> void f(int idx) throw(Exceptions...) { - if (idx == 0) throw A(); - else if (idx == 1) throw B(); - else if (idx == 2) throw C(); -} - -extern "C" void abort(); - -int main() -{ - try { - f<A, B, C>(0); - abort(); - } catch (A) { - } - try { - f<A, B, C>(1); - abort(); - } catch (B) { - } - try { - f<A, B, C>(2); - abort(); - } catch (C) { - } - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic74.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic74.C deleted file mode 100644 index 312fe9d70..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic74.C +++ /dev/null @@ -1,26 +0,0 @@ -// { dg-do compile { target c++11 } } -template <class... Types> class A -{ -public: - template <Types... Values> class X { /* ... */ }; // { dg-error "not a valid type for a template non-type parameter" } -}; - -template<class... Types> class B -{ -public: - template <Types*... Values> class X { - typename A<Types*...>::template X<Values...> foo; - }; -}; - -int i; -float f; - -A<int*, float*>::X<&i, &f> apple1; -B<int, float>::X<&i, &f> banana1; - -A<int*, float*>::X<&i> apple2; // { dg-error "wrong number of template arguments" "wrong number" } -// { dg-error "invalid type" "invalid" { target *-*-* } 22 } -A<int*, float*>::X<&i, &f, &f> apple3; // { dg-error "wrong number of template arguments" "wrong number" } -// { dg-error "invalid type" "invalid" { target *-*-* } 24 } -A<int, float> apple4; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic75.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic75.C deleted file mode 100644 index f57f8b3ef..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic75.C +++ /dev/null @@ -1,33 +0,0 @@ -// { dg-options "-std=gnu++0x" } - -template<typename...> struct tuple { }; - -template<template<typename T> class Meta, typename... Values> -struct apply_all -{ - typedef tuple<typename Meta<Values>::type...> type; -}; - -template<typename T, typename U> -struct is_same { - static const bool value = false; -}; - -template<typename T> -struct is_same<T, T> { - static const bool value = true; -}; - -template<typename T> -struct add_reference { - typedef T& type; -}; - -template<typename T> -struct add_reference<T&> { - typedef T& type; -}; - -static_assert(is_same<apply_all<add_reference, int, int&, float>::type, - tuple<int&, int&, float&> >::value, - "check apply"); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic76.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic76.C deleted file mode 100644 index fb80244d6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic76.C +++ /dev/null @@ -1,14 +0,0 @@ -// PR c++/33496 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<int... N> int foo () -{ - return sizeof... (N ()); // { dg-error "cannot be used as a function" } - return sizeof... (N) (); // { dg-error "cannot be used as a function" } -} - -int bar () -{ - return foo<0> (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic77.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic77.C deleted file mode 100644 index 43f2d1e43..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic77.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/33496 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<int M, int N> struct pair -{ - int i, j; - pair () : i (M), j (N) {} -}; - -template<int... M> struct S -{ - template<int... N> static int foo () - { - return sizeof... (pair<M, N>); // { dg-error "mismatched argument pack lengths" } - } -}; - -int bar () -{ - return S<0, 1, 2>::foo<0, 1> (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic78.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic78.C deleted file mode 100644 index 9e2b84ad0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic78.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/33496 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<int M, int N> struct pair -{ - int i, j; - pair () : i (M), j (N) {} -}; - -template<int... M> struct S -{ - template<int... N> static int *foo () - { - static int x[] = { (M + N)... }; // { dg-error "mismatched argument pack lengths" } - return x; - } -}; - -int *bar () -{ - return S<0, 1, 2>::foo<0, 1> (); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic79.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic79.C deleted file mode 100644 index c6479e04f..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic79.C +++ /dev/null @@ -1,7 +0,0 @@ -// PR c++/33213 -// { dg-do compile } -// { dg-options "-std=gnu++0x" } - -template<template<typename> class...> struct A; - -template<template<typename...> class... B> struct A<B...> {}; // { dg-error "mismatch|'template<class ...> class ... B ...'" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic8.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic8.C deleted file mode 100644 index c3a1340cf..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic8.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename... Args> -struct tuple_base { - static const int value = 0; -}; - -template<> -struct tuple_base<int*> -{ - static const int value = 1; -}; - -template<typename T> -struct tuple_base<T*> -{ - static const int value = 2; -}; - -template<typename... Args> -struct tuple_of_pointers : tuple_base<Args*...> { }; - -int a1[tuple_of_pointers<int>::value == 1? 1 : -1]; -int a2[tuple_of_pointers<float>::value == 2? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic80.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic80.C deleted file mode 100644 index a56cdb404..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic80.C +++ /dev/null @@ -1,28 +0,0 @@ -// PR c++/31434 -// { dg-do run } -// { dg-options "-std=c++0x" } - -extern "C" void abort (); - -template<typename... T> inline int foo (const T...) { return 1; } -template<typename... T> inline int foo (const T *...) { return 2; } - -void -bar (int *a) -{ - a[0] = foo (0); - a[1] = foo (*a); - a[2] = foo<int> (a); - a[3] = foo<int> (2, 3, 4, 5); - a[4] = foo<int> (a, a + 1, a + 2); -} - -int -main () -{ - int a[5]; - bar (a); - if (a[0] != 1 || a[1] != 1 || a[2] != 2 || a[3] != 1 || a[4] != 2) - abort (); - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic81.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic81.C deleted file mode 100644 index cce61b316..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic81.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/33461 -// { dg-options "-std=gnu++0x" } - -template<typename> struct A; - -template<typename... T> struct A<T*> // { dg-error "not expanded|T|not used|T" } -{ - struct B; -}; - -A<void*> a; // { dg-error "incomplete" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic82.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic82.C deleted file mode 100644 index 03aec8021..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic82.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/33461 -// { dg-options "-std=gnu++0x" } - -template<typename> struct A; - -template<typename... T> struct A<T*...> // { dg-bogus "cannot expand" "" } -{ - struct B; -}; - -A<void*> a; // { dg-bogus "incomplete type" "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic83.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic83.C deleted file mode 100644 index c446e6974..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic83.C +++ /dev/null @@ -1,8 +0,0 @@ -// PR c++/31441 -// { dg-options "-std=gnu++0x" } - -template<typename> struct A; - -template<typename... T> struct A<T...> { }; // { dg-bogus "cannot expand" "" } - -A<int> a; // { dg-bogus "incomplete type" "" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic84.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic84.C deleted file mode 100644 index ce3126795..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic84.C +++ /dev/null @@ -1,26 +0,0 @@ -// PR c++/32565 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<typename...> struct A1; -template<template<int...> class T> struct A1<T<0> > {}; -template<typename...> struct A2; -template<template<int...> class T> struct A2<T<0, 1> > {}; -template<typename...> struct A3; -template<template<int, int...> class T> struct A3<T<0, 1> > {}; -template<typename...> struct A4; -template<template<typename...> class T> struct A4<T<int> > {}; -template<typename...> struct A5; -template<template<typename...> class T> struct A5<T<int, long> > {}; -template<typename...> struct A6; -template<template<typename, typename...> class T> struct A6<T<int, long> > {}; -template<int> struct B1 {}; -template<int, int> struct B2 {}; -template<typename> struct B3 {}; -template<typename, typename> struct B4 {}; -A1<B1<0> > a1; -A2<B2<0, 1> > a2; -A3<B2<0, 1> > a3; -A4<B3<int> > a4; -A5<B4<int, long> > a5; -A6<B4<int, long> > a6; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic85.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic85.C deleted file mode 100644 index facb26391..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic85.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/32565 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<typename...> struct A1; -template<template<int, int...> class T> struct A1<T<0, 1> > {}; -template<int, int, int...> struct B1 {}; -A1<B1<0, 1> > a1; -template<int...> struct B2 {}; -A1<B2<0, 1> > a2; // { dg-error "incomplete type" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic86.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic86.C deleted file mode 100644 index d8fcd620e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic86.C +++ /dev/null @@ -1,19 +0,0 @@ -// PR c++/33943 -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template<typename... A> struct foo {}; - -template<typename A0, typename... A1> struct bar {}; - -template<typename U> struct baz; - -template<template<typename...> class T, typename... U> struct baz< T<U...> > -{}; - -template<template<typename, typename...> class T, typename U, typename... V> -struct baz< T<U, V...> > -{}; - -baz< foo<int, short> > b1; -baz< bar<int, short> > b2; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic87.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic87.C deleted file mode 100644 index 1defa23da..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic87.C +++ /dev/null @@ -1,23 +0,0 @@ -// PR c++/33965 -// { dg-options -std=c++0x } -template<typename T> -struct foo -{ - static bool const value = false; -}; - -template<template<typename...> class T, typename... Args> -struct foo<T<Args...> > -{ - static bool const value = true; -}; - -template<int I> -struct int_ -{}; - -int main() -{ - static_assert(foo<int_<0> >::value == false, - "picked up partial specialization, but should not have"); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic88.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic88.C deleted file mode 100644 index b14cabe32..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic88.C +++ /dev/null @@ -1,23 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<template<typename...> class TT> -TT<int, float, double> foo(TT<int, float>) -{ - return TT<int, float, double>(); -} - -template<typename T> -int& foo(T) -{ - static int i = 0; return i; -} - -template<typename T, typename U> -struct pair {}; - -void bar() -{ - pair<int, float> p; - int& i = foo(p); -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic89.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic89.C deleted file mode 100644 index b943771a6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic89.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "-std=c++0x" } -// Contributed by Eric Niebler -template<typename T, typename U> -struct pair -{}; - -template<typename T> -struct test; - -template<template<typename...> class T, typename... Args> -struct test<T<Args...> > -{}; - -test<pair<int, double> > t; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic9.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic9.C deleted file mode 100644 index c5db6af6a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic9.C +++ /dev/null @@ -1,38 +0,0 @@ -// { dg-options "-std=gnu++0x" } -template<typename T1, typename T2> -struct pair {}; - -template<typename... Args> -struct tuple { - static const int value = 0; -}; - -template<> -struct tuple<pair<int, float> > { - static const int value = 1; -}; - -template<typename U> -struct tuple<pair<int, U> > { - static const int value = 2; -}; - -template<typename T, typename U> -struct tuple<pair<T, U>, pair<T, U> > { - static const int value = 3; -}; - - -template<typename... Outer> -struct X { - template<typename... Inner> - struct Y - { - typedef tuple<pair<Outer, Inner>...> type; - }; -}; - -int a0[X<int, double>::Y<short, char>::type::value == 0? 1 : -1]; -int a1[X<int>::Y<float>::type::value == 1? 1 : -1]; -int a2[X<int>::Y<double>::type::value == 2? 1 : -1]; -int a3[X<int, int>::Y<double, double>::type::value == 3? 1 : -1]; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic90.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic90.C deleted file mode 100644 index 632e166c3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic90.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<template<typename...> class TT> -struct X { }; - -template<typename T, typename U> struct pair { }; - -X<pair> x; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic91.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic91.C deleted file mode 100644 index d78b791fb..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic91.C +++ /dev/null @@ -1,17 +0,0 @@ -// { dg-options "-std=c++0x" } -template<int N> struct Int2Type { }; - -template<typename... T> -struct Outer { - template<typename... U> - void foo(Int2Type<sizeof...(T)>, Int2Type<sizeof...(U)>); -}; - - -Outer<short, int, long> outer; - -void g4() { - outer.foo<float, double>(Int2Type<3>(), Int2Type<2>()); -} - -template<typename... T, template<T...> class X> void f1(); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic92.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic92.C deleted file mode 100644 index d382912c9..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic92.C +++ /dev/null @@ -1,70 +0,0 @@ -// Various tests for variadic templates and partial specialization. -// { dg-options "-std=c++0x" } - -// PR c++/36846 -template<typename A, typename B> -struct pair; - -template<typename... T> -struct pairs; - -template<typename... AS, typename... BS> -struct pairs<pair<AS, BS>...> { - struct mismatched_packs {}; -}; - -template class pairs< - pair<int, int>, - pair<int, int> ->; - -template<int A, int B> -struct point; - -template<typename... T> -struct points; - -template<int... AS, int... BS> -struct points<point<AS, BS>...> { - struct mismatched_packs {}; -}; - -template class points< - point<0, 1>, - point<0, 1> ->; - -// PR c++/35477 -template <class...ARGS> struct tuple {}; -template <class A, class B> struct test {}; -template <class... ARGS, class B> struct test<B, tuple<ARGS...>> -{ - template <class T> struct inside {}; -}; - -// PR c++/38276 -template<typename...> struct A; - -template<typename, typename> struct B; - -template<typename... T, typename... U> struct B<A<T...>, A<U...> > -{ - static int i; -}; - -B<A<>, A<int> > b1; - -B<A<int>, A<> > b2; - -// PR c++/35784 -template <typename...> struct p; - -template <typename, typename> struct d; - -template <typename... A, typename... B> -struct d<p<A...>, p<B...> > { typedef int t; }; - -typedef d<p<>, p<int, float> >::t q; -typedef d<q, d<p<int>, p<float> >::t> r; // * - -typedef d<d<p<>, p<int, float> >::t, d<p<>, p<> >::t> s; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic93.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic93.C deleted file mode 100644 index 7d8c3298e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic93.C +++ /dev/null @@ -1,11 +0,0 @@ -// PR c++/35297 -// { dg-options "-std=c++0x" } - -template <class T=int, class... ARGS> -struct test2 {}; - -int main() -{ - test2<> a; - return 0; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic94.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic94.C deleted file mode 100644 index 8420f73a6..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic94.C +++ /dev/null @@ -1,33 +0,0 @@ -// PR c++/40595 -// { dg-options "-std=c++0x" } - -template<int N> -struct S -{ - typedef int type; -}; - -template<typename T> -struct Get -{ - static T get(); -}; - -template<typename F> -struct B -{ - template<typename ... Args> - typename S<sizeof( Get<F>::get() (Get<Args>::get() ...) )>::type - f(Args&& ... a); -}; - -struct X -{ - bool operator()(int) const; -}; - -int main() -{ - B<X> b; - b.f(1); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic95.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic95.C deleted file mode 100644 index ebb04ebc1..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic95.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR c++/39863 -// { dg-options -std=c++0x } - -template <typename... T> -struct A {}; - -template <typename T, typename U> -struct S {}; - -template <typename... T, typename... U> -A< S<T, U>... > f(U... u) -{ return A< S<T, U>... >(); } - -int main() -{ - f<int>(0.0); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic96.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic96.C deleted file mode 100644 index d4709d074..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic96.C +++ /dev/null @@ -1,26 +0,0 @@ -// Contributed by Dodji Seketeli <dodji@redhat.com> -// Origin: PR c++/41785 -// { dg-options -std=c++0x } - -struct a {}; - -template < typename T, typename ENCLOSING > -struct base; - -template < typename... T > -struct derived - : public base< T, derived< T... > >... -{}; - -template < typename... T> -struct base< a, derived< T... > > -{ - typedef derived< T... > - Derived; -}; - -int main() -{ - derived< a > instance; -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic97.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic97.C deleted file mode 100644 index a2070319e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic97.C +++ /dev/null @@ -1,35 +0,0 @@ -// PR c++/42266 -// { dg-options -std=c++0x } - -template<typename... _Elements> - class tuple; - -template<typename _Arg> - class _Mu; - -template<typename _Signature> - struct _Bind; - -template<typename _Functor, typename... _Bound_args> - class _Bind<_Functor(_Bound_args...)> - { - template<typename... _Args, typename - = decltype(_Functor()(_Mu<_Bound_args>()(_Bound_args(), - tuple<_Args...>())...) )> - void __call() { } - }; - -template<typename _Functor, typename _Arg> - _Bind<_Functor(_Arg)> - bind(_Functor, _Arg) { } - -struct State -{ - bool ready() { return true; } - - void f() - { - bind(&State::ready, this); - } -}; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic98.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic98.C deleted file mode 100644 index 6af599fca..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic98.C +++ /dev/null @@ -1,411 +0,0 @@ -// PR c++/42358 -// { dg-do assemble } -// { dg-options -std=c++0x } - -typedef __PTRDIFF_TYPE__ ptrdiff_t; -typedef __SIZE_TYPE__ size_t; -namespace std __attribute__ ((__visibility__ ("default"))) { - using ::size_t; -} -namespace std __attribute__ ((__visibility__ ("default"))) { - struct __sfinae_types { - typedef char __one; - typedef struct { - } __two; - }; - template<typename _Tp, _Tp __v> struct integral_constant { - static const _Tp value = __v; - typedef _Tp value_type; - typedef integral_constant<_Tp, __v> type; - }; - typedef integral_constant<bool, false> false_type; - template<typename> struct remove_cv; - template<typename> struct __is_void_helper : public false_type { - }; - template<typename _Tp> struct is_void : public integral_constant<bool, (__is_void_helper<typename remove_cv<_Tp>::type>::value)> { - }; - template<typename> struct is_array : public false_type { - }; - template<typename> struct is_function : public false_type { - }; - template<typename, unsigned _Uint = 0> struct extent : public integral_constant<std::size_t, 0> { - }; - template<typename _Tp> struct remove_const { - typedef _Tp type; - }; - template<typename _Tp> struct remove_volatile { - typedef _Tp type; - }; - template<typename _Tp> struct remove_cv { - typedef typename remove_const<typename remove_volatile<_Tp>::type>::type type; - }; - template<typename> struct is_lvalue_reference : public false_type { - }; - template<typename> struct is_rvalue_reference : public false_type { - }; - template<typename _Tp> struct is_reference : public integral_constant<bool, (is_lvalue_reference<_Tp>::value || is_rvalue_reference<_Tp>::value)> { - }; - template<typename _Tp> struct remove_reference { - typedef _Tp type; - }; - template<typename _Tp, bool = !is_reference<_Tp>::value && !is_void<_Tp>::value> struct __add_rvalue_reference_helper { - typedef _Tp type; - }; - template<typename _Tp> struct add_rvalue_reference : public __add_rvalue_reference_helper<_Tp> { - }; - template<typename _Tp> typename add_rvalue_reference<_Tp>::type declval(); - template<typename _From, typename _To, bool = (is_void<_From>::value || is_void<_To>::value || is_function<_To>::value || is_array<_To>::value)> struct __is_convertible_helper { - }; - template<typename _From, typename _To> struct __is_convertible_helper<_From, _To, false> : public __sfinae_types { - static __one __test(_To); - static __two __test(...); - static const bool __value = sizeof(__test(declval<_From>())) == 1; - }; - template<typename _From, typename _To> struct is_convertible : public integral_constant<bool, __is_convertible_helper<_From, _To>::__value> { - }; - template<bool, typename _Tp = void> struct enable_if { - }; - template<typename _Tp> struct enable_if<true, _Tp> { - typedef _Tp type; - }; - template<typename _Tp> struct identity { - typedef _Tp type; - }; - template<typename _Tp> inline typename enable_if<!is_lvalue_reference<_Tp>::value, _Tp&&>::type forward(typename std::identity<_Tp>::type& __t) { - } - template<typename _Tp> inline typename enable_if<is_lvalue_reference<_Tp>::value, _Tp>::type forward(typename std::identity<_Tp>::type __t) { - } - template<typename _Tp> inline typename std::remove_reference<_Tp>::type&& move(_Tp&& __t) { - } - template<class _T1, class _T2> struct pair { - typedef _T1 first_type; - typedef _T2 second_type; - _T1 first; - _T2 second; - template<class _U1, class = typename std::enable_if<std::is_convertible<_U1, _T1>::value>::type> pair(_U1&& __x, const _T2& __y) : first(std::forward<_U1>(__x)), second(__y) { - } - template<class _U2, class = typename std::enable_if<std::is_convertible<_U2, _T2>::value>::type> pair(const _T1& __x, _U2&& __y) : first(__x), second(std::forward<_U2>(__y)) { - } - template<class _U1, class _U2, class = typename std::enable_if<std::is_convertible<_U1, _T1>::value && std::is_convertible<_U2, _T2>::value>::type> pair(_U1&& __x, _U2&& __y) : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { - } - template<class _U1, class _U2> pair(pair<_U1, _U2>&& __p) : first(std::move(__p.first)), second(std::move(__p.second)) { - } - template<class _U1, class _U2> pair& operator=(pair<_U1, _U2>&& __p) { - } - }; - struct input_iterator_tag { - }; - struct output_iterator_tag { - }; - struct forward_iterator_tag : public input_iterator_tag { - }; - struct bidirectional_iterator_tag : public forward_iterator_tag { - }; - template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&> struct iterator { - typedef _Category iterator_category; - typedef _Tp value_type; - typedef _Distance difference_type; - typedef _Pointer pointer; - typedef _Reference reference; - }; - template<typename _Iterator> struct iterator_traits { - typedef typename _Iterator::iterator_category iterator_category; - typedef typename _Iterator::value_type value_type; - typedef typename _Iterator::difference_type difference_type; - typedef typename _Iterator::pointer pointer; - typedef typename _Iterator::reference reference; - }; - template<typename _Iter> inline typename iterator_traits<_Iter>::iterator_category __iterator_category(const _Iter&) { - } - template<typename _InputIterator> inline typename iterator_traits<_InputIterator>::difference_type __distance(_InputIterator __first, _InputIterator __last, input_iterator_tag) { - } - template<typename _InputIterator> inline typename iterator_traits<_InputIterator>::difference_type distance(_InputIterator __first, _InputIterator __last) { - return std::__distance(__first, __last, std::__iterator_category(__first)); - } - template<typename _Iterator> class reverse_iterator : public iterator<typename iterator_traits<_Iterator>::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference> { - }; - template<typename _Container> class back_insert_iterator : public iterator<output_iterator_tag, void, void, void, void> { - }; -} -namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { - template<typename _Tp> class new_allocator { - public: - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - typedef _Tp value_type; - new_allocator() throw() { - } - new_allocator(const new_allocator&) throw() { - } - template<typename _Tp1> new_allocator(const new_allocator<_Tp1>&) throw() { - } - template<typename... _Args> void construct(pointer __p, _Args&&... __args) { - } - }; -} -namespace std __attribute__ ((__visibility__ ("default"))) { - template<typename _Tp> class allocator: public __gnu_cxx::new_allocator<_Tp> { - public: - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - typedef _Tp value_type; - template<typename _Tp1> struct rebind { - typedef allocator<_Tp1> other; - }; - allocator() throw() { - } - template<typename _Tp1> allocator(const allocator<_Tp1>&) throw() { - } - }; - extern template class allocator<char>; - extern template class allocator<wchar_t>; - template<typename _Arg, typename _Result> struct unary_function { - typedef _Arg argument_type; - typedef _Result result_type; - }; - template<typename _Arg1, typename _Arg2, typename _Result> struct binary_function { - typedef _Arg1 first_argument_type; - typedef _Arg2 second_argument_type; - typedef _Result result_type; - }; - template<typename _Tp> struct less : public binary_function<_Tp, _Tp, bool> { - bool operator()(const _Tp& __x, const _Tp& __y) const { - } - }; - template<typename _Pair> struct _Select1st : public unary_function<_Pair, typename _Pair::first_type> { - const typename _Pair::first_type& operator()(const _Pair& __x) const { - } - }; - struct _Rb_tree_node_base { - typedef _Rb_tree_node_base* _Base_ptr; - typedef const _Rb_tree_node_base* _Const_Base_ptr; - }; - template<typename _Val> struct _Rb_tree_node : public _Rb_tree_node_base { - typedef _Rb_tree_node<_Val>* _Link_type; - _Val _M_value_field; - template<typename... _Args> _Rb_tree_node(_Args&&... __args) : _Rb_tree_node_base(), _M_value_field(std::forward<_Args>(__args)...) { - } - }; - template<typename _Tp> struct _Rb_tree_iterator { - typedef _Tp value_type; - typedef _Tp& reference; - typedef _Tp* pointer; - typedef bidirectional_iterator_tag iterator_category; - typedef ptrdiff_t difference_type; - typedef _Rb_tree_iterator<_Tp> _Self; - typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; - typedef _Rb_tree_node<_Tp>* _Link_type; - _Base_ptr _M_node; - }; - template<typename _Tp> struct _Rb_tree_const_iterator { - typedef _Tp value_type; - typedef const _Tp& reference; - typedef const _Tp* pointer; - typedef _Rb_tree_iterator<_Tp> iterator; - typedef bidirectional_iterator_tag iterator_category; - typedef ptrdiff_t difference_type; - typedef _Rb_tree_const_iterator<_Tp> _Self; - typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; - typedef const _Rb_tree_node<_Tp>* _Link_type; - explicit _Rb_tree_const_iterator(_Link_type __x) : _M_node(__x) { - } - _Rb_tree_const_iterator(const iterator& __it) : _M_node(__it._M_node) { - } - _Base_ptr _M_node; - }; - template<typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc = allocator<_Val> > class _Rb_tree { - typedef typename _Alloc::template rebind<_Rb_tree_node<_Val> >::other _Node_allocator; - typedef _Rb_tree_node_base* _Base_ptr; - typedef const _Rb_tree_node_base* _Const_Base_ptr; - public: - typedef _Key key_type; - typedef _Val value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef _Rb_tree_node<_Val>* _Link_type; - typedef const _Rb_tree_node<_Val>* _Const_Link_type; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _Alloc allocator_type; - _Node_allocator& _M_get_Node_allocator() { - } - _Link_type _M_get_node() { - } - template<typename... _Args> _Link_type _M_create_node(_Args&&... __args) { - _Link_type __tmp = _M_get_node(); - try { - _M_get_Node_allocator().construct(__tmp, std::forward<_Args>(__args)...); - } - catch(...) { - } - } - template<typename _Key_compare, bool _Is_pod_comparator = __is_pod(_Key_compare)> struct _Rb_tree_impl : public _Node_allocator { - _Key_compare _M_key_compare; - _Rb_tree_node_base _M_header; - size_type _M_node_count; - _Rb_tree_impl(const _Key_compare& __comp, const _Node_allocator& __a) : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), _M_node_count(0) { - } - void _M_initialize() { - } - }; - _Rb_tree_impl<_Compare> _M_impl; - _Base_ptr& _M_rightmost() { - } - _Link_type _M_begin() { - } - _Link_type _M_end() { - } - _Const_Link_type _M_end() const { - } - static _Link_type _S_right(_Base_ptr __x) { - } - static const_reference _S_value(_Const_Base_ptr __x) { - } - static const _Key& _S_key(_Const_Base_ptr __x) { - return _KeyOfValue()(_S_value(__x)); - } - typedef _Rb_tree_iterator<value_type> iterator; - typedef _Rb_tree_const_iterator<value_type> const_iterator; - typedef std::reverse_iterator<iterator> reverse_iterator; - typedef std::reverse_iterator<const_iterator> const_reverse_iterator; - iterator _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __y, const value_type& __v); - iterator _M_insert_lower(_Base_ptr __x, _Base_ptr __y, const value_type& __v); - iterator _M_insert_equal_lower(const value_type& __x); - iterator _M_lower_bound(_Link_type __x, _Link_type __y, const _Key& __k); - iterator _M_upper_bound(_Link_type __x, _Link_type __y, const _Key& __k); - _Rb_tree(const _Compare& __comp, const allocator_type& __a = allocator_type()) : _M_impl(__comp, __a) { - } - iterator end() { - } - iterator _M_insert_equal_(const_iterator __position, const value_type& __x); - template<typename _InputIterator> void _M_insert_unique(_InputIterator __first, _InputIterator __last); - template<typename _InputIterator> void _M_insert_equal(_InputIterator __first, _InputIterator __last); - size_type count(const key_type& __k) const; - pair<iterator, iterator> equal_range(const key_type& __k); - pair<const_iterator, const_iterator> equal_range(const key_type& __k) const; - }; - template<typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc> typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __p, const _Val& __v) { - _Link_type __z = _M_create_node(__v); - } - template<typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc> typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_lower(_Base_ptr __x, _Base_ptr __p, const _Val& __v) { - _Link_type __z = _M_create_node(__v); - } - template<typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc> typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_equal_lower(const _Val& __v) { - _Link_type __x = _M_begin(); - _Link_type __y = _M_end(); - return _M_insert_lower(__x, __y, __v); - } - template<typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc> pair<typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator> _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: equal_range(const _Key& __k) { - _Link_type __x = _M_begin(); - _Link_type __y = _M_end(); - while (__x != 0) { - if (_M_impl._M_key_compare(_S_key(__x), __k)) __x = _S_right(__x); - else { - _Link_type __xu(__x), __yu(__y); - return pair<iterator, iterator>(_M_lower_bound(__x, __y, __k), _M_upper_bound(__xu, __yu, __k)); - } - } - } - template<typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc> pair<typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator> _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: equal_range(const _Key& __k) const { - _Const_Link_type __y = _M_end(); - return pair<const_iterator, const_iterator>(const_iterator(__y), const_iterator(__y)); - } - template<typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc> typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: _M_insert_equal_(const_iterator __position, const _Val& __v) { - if (__position._M_node == _M_end()) { - if (__position._M_node == _M_rightmost()) return _M_insert_(0, _M_rightmost(), __v); - else return _M_insert_equal_lower(__v); - } - } - template<typename _Key, typename _Val, typename _KoV, typename _Cmp, typename _Alloc> template<class _II> void _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: _M_insert_equal(_II __first, _II __last) { - for (; - __first != __last; - ++__first) _M_insert_equal_(end(), *__first); - } - template<typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc> typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: count(const _Key& __k) const { - pair<const_iterator, const_iterator> __p = equal_range(__k); - const size_type __n = std::distance(__p.first, __p.second); - } - template<class _E> class initializer_list { - public: - typedef _E value_type; - typedef const _E& reference; - typedef const _E& const_reference; - typedef size_t size_type; - typedef const _E* iterator; - typedef const _E* const_iterator; - iterator _M_array; - size_type _M_len; - initializer_list(const_iterator __a, size_type __l) : _M_array(__a), _M_len(__l) { - } - const_iterator begin() const { - } - const_iterator end() const { - } - }; - template <typename _Key, typename _Tp, typename _Compare = std::less<_Key>, typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > > class multimap { - typedef _Key key_type; - typedef _Tp mapped_type; - typedef std::pair<const _Key, _Tp> value_type; - typedef _Compare key_compare; - typedef _Alloc allocator_type; - typedef typename _Alloc::value_type _Alloc_value_type; - typedef typename _Alloc::template rebind<value_type>::other _Pair_alloc_type; - typedef _Rb_tree<key_type, value_type, _Select1st<value_type>, key_compare, _Pair_alloc_type> _Rep_type; - _Rep_type _M_t; - public: - typedef typename _Pair_alloc_type::pointer pointer; - typedef typename _Pair_alloc_type::const_pointer const_pointer; - typedef typename _Pair_alloc_type::reference reference; - typedef typename _Pair_alloc_type::const_reference const_reference; - typedef typename _Rep_type::iterator iterator; - typedef typename _Rep_type::const_iterator const_iterator; - typedef typename _Rep_type::size_type size_type; - typedef typename _Rep_type::difference_type difference_type; - typedef typename _Rep_type::reverse_iterator reverse_iterator; - typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; - multimap(initializer_list<value_type> __l, const _Compare& __comp = _Compare(), const allocator_type& __a = allocator_type()) : _M_t(__comp, __a) { - _M_t._M_insert_equal(__l.begin(), __l.end()); - } - template<typename _InputIterator> multimap(_InputIterator __first, _InputIterator __last) : _M_t() { - } - template<typename _InputIterator> multimap(_InputIterator __first, _InputIterator __last, const _Compare& __comp, const allocator_type& __a = allocator_type()) : _M_t(__comp, __a) { - } - template<typename _InputIterator> void insert(_InputIterator __first, _InputIterator __last) { - } - size_type count(const key_type& __x) const { - return _M_t.count(__x); - } - std::pair<iterator, iterator> equal_range(const key_type& __x) { - return _M_t.equal_range(__x); - } - template<typename _K1, typename _T1, typename _C1, typename _A1> friend bool operator==(const multimap<_K1, _T1, _C1, _A1>&, const multimap<_K1, _T1, _C1, _A1>&); - template<typename _K1, typename _T1, typename _C1, typename _A1> friend bool operator<(const multimap<_K1, _T1, _C1, _A1>&, const multimap<_K1, _T1, _C1, _A1>&); - }; -} -extern "C" { - extern void __assert_fail (__const char *__assertion, __const char *__file, unsigned int __line, __const char *__function) throw () __attribute__ ((__noreturn__)); -} -using namespace std; -int test01() { - typedef multimap<int,double> Container; - typedef Container::iterator iterator; - typedef pair<iterator,iterator> itpair; - Container m({ - { - 1, 1.0 } - } - ); - itpair ip = m.equal_range(1); - ((distance(ip.first, ip.second) == 3) ? static_cast<void> (0) : __assert_fail ("distance(ip.first, ip.second) == 3", "/home/richard/src/trunk/libstdc++-v3/testsuite/23_containers/multimap/init-list.cc", 36, __PRETTY_FUNCTION__)); - ((m.count(7) == 2) ? static_cast<void> (0) : __assert_fail ("m.count(7) == 2", "/home/richard/src/trunk/libstdc++-v3/testsuite/23_containers/multimap/init-list.cc", 54, __PRETTY_FUNCTION__)); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic99.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic99.C deleted file mode 100644 index 457212712..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/variadic99.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/43054 -// { dg-options "-std=c++0x" } - -template<typename R> struct future { }; - -template<typename Fn, typename... Args> - auto - async(Fn&& fn, Args&&... args) - -> future<decltype(fn(args...))>; - -template<typename Fn, typename... Args> - auto - async(Fn&& fn, Args&&... args) - -> future<decltype(fn(args...))>; - -int work2(int value); - -void work(int value) -{ - async(work2, value); -} - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-33964.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-33964.C deleted file mode 100644 index 0b84b6cec..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-33964.C +++ /dev/null @@ -1,20 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename ... Args> -struct foo -{ - static bool const value = true; -}; - -template<typename ... Args> -struct foo< typename Args::is_applied... > // { dg-error "not used|Args" } -{ - static bool const value = false; -}; - -struct not_applied { typedef void is_applied; }; -struct applied { typedef applied is_applied; }; - -int main() -{ - foo<applied, applied> i; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34050.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34050.C deleted file mode 100644 index cb19b3914..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34050.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } -struct A {}; - -template<typename... T> struct B : T... -{ - B() : T()... {} -}; - -B<A> b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34051-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34051-2.C deleted file mode 100644 index 2c7bb50f0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34051-2.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename... T> struct A -{ - int i __attribute__((aligned(__alignof(T)))); // { dg-error "parameter packs|T" } -}; - -A<int> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34051.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34051.C deleted file mode 100644 index 88ae56703..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34051.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=c++0x" } -struct A -{ - operator int(); -}; - -template <typename... T> struct B : A -{ - using A::operator T; // { dg-error "parameter packs|T" } -}; - -B<int> b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34052.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34052.C deleted file mode 100644 index 15310cfe7..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34052.C +++ /dev/null @@ -1,8 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename... T, typename = T> struct A {}; // { dg-error "must be at the end" } - - -template<template<typename... T, typename = T> class U> struct B // { dg-error "must be at the end" } -{ - template<int> U<int> foo(); // { dg-error "mismatch|constant|invalid|invalid" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34055.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34055.C deleted file mode 100644 index c50778430..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34055.C +++ /dev/null @@ -1,31 +0,0 @@ -// { dg-options "-std=c++0x" } -// PR c++/34055 -template<typename...> struct A; - -template<typename...T> struct A<T*> // { dg-error "parameter packs|T" } -{ - void foo(); -}; - -template<typename...T> void A<T*>::foo() {} // { dg-error "invalid declarator" } - - - -template<typename...> struct B; - -template<typename...T> struct B<T&> // { dg-error "parameter packs|T" } -{ - void foo(); -}; - -template<typename...T> void B<T&>::foo() {} // { dg-error "invalid declarator" } - - -template<typename...> struct C; - -template<typename...T> struct C<T()> // { dg-error "parameter packs|T" } -{ - void foo(); -}; - -template<typename...T> void C<T()>::foo() {} // { dg-error "invalid declarator" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34102.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34102.C deleted file mode 100644 index 00f0b4f4a..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34102.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=c++0x" } -// PR c++/34102 -struct A {}; - -template<typename> struct B : virtual A {}; - -template<typename...T> struct C : B<T> {}; // { dg-error "parameter packs|T" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34103.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34103.C deleted file mode 100644 index 3bbbb46a0..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34103.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=c++0x" } -// PR c++/34103 -template<typename> struct A {}; - -template<typename...T> void foo(A<T>, A<T>); // { dg-error "parameter packs|T" } - -template<typename...T> void foo(A<T>, A<T>) {} // { dg-error "parameter packs|T" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C deleted file mode 100644 index 193bc0c6c..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34219-2.C +++ /dev/null @@ -1,22 +0,0 @@ -// { dg-options "-std=c++0x" } -template<template<typename... T> class Comp, typename... T> void f( T... Value) -{ - static_assert( Comp<T>::value > 0, "" ); // { dg-error "parameter packs|T" } -} - -template<template<typename... T> class Comp, typename... T> void g( T... Value) -{ - static_assert( Comp<T...>::value > 0, "" ); -} - -template <typename... T> -struct Foo -{ - static const int value=1; -}; - -int main() -{ - f<Foo>( 2 ); - g<Foo>( 2 ); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34219.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34219.C deleted file mode 100644 index fb3584ea8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34219.C +++ /dev/null @@ -1,15 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename T, T a, T... Params> -struct max -{ - static const T value = a > max<T, Params>::value ? a : max<T, Params>::value; // { dg-error "not expanded|Params" } -}; - -template<typename T, T a, T b> -struct max<T, a, b> -{ - static const T value = a > b ? a : b; -}; - -static const int value1 = max< int, 1, 2>::value; -static const int value2 = max< int, 1, 3, 5>::value; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34314.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34314.C deleted file mode 100644 index 4a935b367..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34314.C +++ /dev/null @@ -1,50 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<typename Fun, typename... Args> // { dg-error "template parameter" } -struct call; - -template<typename Fun, typename Arg0> -struct call // { dg-error "redeclared here" } -{ - template<typename Sig> - struct result; - - template<typename X, typename Y> - struct result<X(Y)> - { - typedef X type; - }; -}; - - -template<typename Fun, int... N> // { dg-error "template parameter" } -struct call2; - -template<typename Fun, int N> -struct call2 // { dg-error "redeclared here" } -{ - template<typename Sig> - struct result; - - template<typename X, typename Y> - struct result<X(Y)> - { - typedef X type; - }; -}; - -template<typename Fun, template<typename> class... TT> // { dg-error "template parameter" } -struct call3; - -template<typename Fun, template<typename> class TT> -struct call3 // { dg-error "redeclared here" } -{ - template<typename Sig> - struct result; - - template<typename X, typename Y> - struct result<X(Y)> - { - typedef X type; - }; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34399.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34399.C deleted file mode 100644 index 542fae586..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34399.C +++ /dev/null @@ -1,10 +0,0 @@ -// { dg-options "-std=c++0x" } -template<int...> struct A -{ - void foo(); -}; - -struct B -{ - template<int N> friend void A<N>::A::foo(); // { dg-error "declared as friend" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34606.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34606.C deleted file mode 100644 index 467943354..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34606.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename...> struct A; - -template<typename T, typename... U> struct A<T, U> // { dg-error "parameter packs|U" } -{ - template<typename> struct B; - - template<typename X> struct B<X*> {}; -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34751.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34751.C deleted file mode 100644 index e3ca39e79..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34751.C +++ /dev/null @@ -1,19 +0,0 @@ -// { dg-options "-std=c++0x" } -// PR c++/34751 -struct A {}; - -template<typename... Args = int> // { dg-error "cannot have a default" } -void f(Args... args = 0); // { dg-error "cannot have a default argument" } - -template<typename... Args> -void g(Args... = 0); // { dg-error "cannot have a default argument" } - - -template<int, typename T = A, int T::*...p = 0 > struct B {}; // { dg-error "cannot have a default argument|no default argument" } - -B<0> b; - -template<int, typename T = A, int T::*... = 0 > struct C {}; // { dg-error "cannot have a default argument|no default argument" } - -C<0> c; - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34753.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34753.C deleted file mode 100644 index 15eaebebc..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34753.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename... T> struct A -{ - template<T> struct B {}; // { dg-error "not expanded|T" } -}; - -A<int>::B<0> b; - -template<typename... T> struct B -{ - template<T> B(); // { dg-error "not expanded|T" } -}; - -B<int> c; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34754.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34754.C deleted file mode 100644 index 97c006532..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34754.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=c++0x" } -template<template<int> class... T> struct A -{ - void foo(T<0>); // { dg-error "not expanded|T" } - void bar(T<0>); // { dg-error "not expanded|T" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34755.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34755.C deleted file mode 100644 index 9d5a3d1ca..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34755.C +++ /dev/null @@ -1,6 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename> struct A {}; - -template<template<typename> class... T> void foo(T<int>) {} // { dg-error "not expanded|T" } - -template void foo<A>(A<int>); // { dg-error "does not match" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34919.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34919.C deleted file mode 100644 index 829579918..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34919.C +++ /dev/null @@ -1,13 +0,0 @@ -// { dg-options "-std=c++0x" } -template<int... N> struct A -{ - static void foo() - { - int i = N; // { dg-error "not expanded|N" } - } -}; - -void bar() -{ - A<0>::foo(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34961.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34961.C deleted file mode 100644 index 3a872146e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-34961.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename... T> struct A -{ - static const int i __attribute__((aligned(__alignof(T)))) = 0; // { dg-error "not expanded|T" } -}; - -A<int> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35023.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35023.C deleted file mode 100644 index 9db20503e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35023.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename... T> int foo() -{ - T t; // { dg-error "parameter packs|T" } - return t; -} - -void bar() -{ - foo<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35024.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35024.C deleted file mode 100644 index 77f0b66bd..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35024.C +++ /dev/null @@ -1,11 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename... T> int foo() -{ - typename T::X x; // { dg-error "parameter packs|T" } - return x; -} - -void bar() -{ - foo<int>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35026.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35026.C deleted file mode 100644 index 643a416c5..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35026.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename... T> struct A -{ - T* x[1]; // { dg-error "parameter packs|T" } -}; - -A<int> a; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35147.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35147.C deleted file mode 100644 index fecb36ec8..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35147.C +++ /dev/null @@ -1,18 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<typename _Tp> - _Tp&& forward(_Tp&& __t) { return __t; } // { dg-message "note" } - -void f(...); - -template<typename... Args> -void g(Args&&... args) -{ - f(forward<Args...>(args...)); // { dg-error "no matching" } - // { dg-message "candidate" "candidate note" { target *-*-* } 11 } -} - -void h() -{ - g(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35242.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35242.C deleted file mode 100644 index 9cc859b87..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35242.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=c++0x" } -struct A -{ - template<typename... T> struct B; -}; - -template<typename... T> struct A::B<T*> {}; // { dg-error "parameter packs|T" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35243.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35243.C deleted file mode 100644 index 4b5557442..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35243.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=c++0x" } -struct A {}; - -template<typename... T> struct B : T... -{ - B() : T(x)... {} // { dg-error "not declared" } -}; - -B<A> b; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35331.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35331.C deleted file mode 100644 index 0add9819b..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-35331.C +++ /dev/null @@ -1,7 +0,0 @@ -// { dg-options "-std=c++0x" } -template<typename...> struct A; - -template<typename...T> struct A<T*> // { dg-error "not expanded|T" } -{ - friend void foo(); -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-37737-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-37737-1.C deleted file mode 100644 index de11b1651..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-37737-1.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=c++0x" } -// { dg-prune-output "note" } - -void f() { } - -template<class U, class... T> -void f(){ f<T...>(); } // { dg-error "no matching" } - -int main() -{ - f<char>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-37737-2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-37737-2.C deleted file mode 100644 index 5514259ec..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-37737-2.C +++ /dev/null @@ -1,16 +0,0 @@ -// { dg-options "-std=c++0x" } - -template<class U, class... T> -void f() // { dg-message "note" } -{ - f<T...>(); // { dg-error "no matching" } - // { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } 6 } -} - -template<> -void f() { } // { dg-error "template-id" } - -int main() -{ - f<char>(); -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-40092.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-40092.C deleted file mode 100644 index ecb698061..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-40092.C +++ /dev/null @@ -1,21 +0,0 @@ -// { dg-do compile } -// { dg-options "-std=c++0x" } - -template <typename... Types> struct package {}; - -template <int ArgGen> struct wrapper_gen {}; - -template <int ArgNest> struct wrapper_nest -{ - typedef wrapper_gen<ArgNest> type_nest; -}; - -template <int... ArgPack> -struct wrapper_pack -{ - typedef package<wrapper_gen <ArgPack>...> type_pack; - // incorrect error: expansion pattern 'wrapper_gen<ArgNest>' - // contains no argument packs -}; - - diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-51314.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-51314.C deleted file mode 100644 index 9f8c64633..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-51314.C +++ /dev/null @@ -1,14 +0,0 @@ -// { dg-options "-std=c++11 -pedantic-errors" } -// { dg-prune-output "invalid" } - -template<int>struct A{}; -template<class...U>void f(U...){ - A<sizeof...U> x; // { dg-error "surrounded by parentheses" } -} - - -template<int...> struct Indices; -template<class> struct Next_increasing_indices; -template<int...I> struct Next_increasing_indices<Indices<I...> > { - typedef Indices<I...,sizeof...I> type; // { dg-error "surrounded by parentheses" } -}; diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-55323.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-55323.C deleted file mode 100644 index d517b6086..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-55323.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-options "-std=c++11" } - -struct foo { - foo(int a, float b); -}; - -struct bar : foo { - template<typename... Args> - bar(Args&&... args) : foo(2, args){} // { dg-error "parameter packs" } -}; - -bar b(2,1.); diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-55542.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-55542.C deleted file mode 100644 index 3d5efee87..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/vt-55542.C +++ /dev/null @@ -1,22 +0,0 @@ -// PR c++/55542 -// { dg-options "-std=c++11" } - -template <typename ... P> -struct B -{ - template <typename O> - B (O *o, void (O::*f) (P ... p)) {} -}; -class C -{ - void foo (void *, int); - template <typename ... A> - void bar (A ... a); - B <void *> c; - B <void *, int> d; - C (int) : c (this, &C::bar), d (this, &C::foo) {} -}; -template <typename ... A> -void C::bar (A ...) -{ -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x.C deleted file mode 100644 index 5c5eeffb3..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x.C +++ /dev/null @@ -1,9 +0,0 @@ -// { dg-options "-std=gnu++98 -Wc++11-compat" } -int static_assert; // { dg-warning "is a keyword" } -int nullptr; // { dg-warning "is a keyword" } - -void foo() -{ - static_assert = 5; - nullptr = 5; -} diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x2.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x2.C deleted file mode 100644 index 116b23317..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x2.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/50810 -// { dg-options "-std=gnu++98 -Wc++11-compat" } - -signed char data[] = { 0xff }; // { dg-warning "narrowing" } diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x3.C b/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x3.C deleted file mode 100644 index c3df9d99e..000000000 --- a/gcc-4.8.1/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x3.C +++ /dev/null @@ -1,4 +0,0 @@ -// PR c++/50810 -// { dg-options "-std=gnu++98 -Wc++11-compat -Wno-narrowing" } - -signed char data[] = { 0xff }; |