]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p4.cpp
Vendor import of clang release_34 branch r197841 (effectively, 3.4 RC3):
[FreeBSD/FreeBSD.git] / test / CXX / dcl.dcl / dcl.spec / dcl.type / dcl.spec.auto / p4.cpp
1 // RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11
2 // RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++98 -Wno-c++11-extensions
3
4 template<typename T>
5 struct only {
6   only(T);
7   template<typename U> only(U) = delete;
8 };
9
10 void f() {
11   if (auto a = true) {
12   }
13
14   switch (auto a = 0) {
15   }
16
17   while (auto a = false) {
18   }
19
20   for (; auto a = false; ) {
21   }
22
23   new const auto (0);
24   new (auto) (0.0);
25
26   int arr[] = {1, 2, 3};
27   for (auto i : arr) {
28   }
29 }
30
31 class X {
32   static const auto n = 'x';
33
34   auto m = 0; // expected-error {{'auto' not allowed in non-static class member}}
35 };
36
37 struct S {
38   static const auto a; // expected-error {{declaration of variable 'a' with type 'const auto' requires an initializer}}
39   static const auto b = 0;
40   static const int c;
41 };
42 const int S::b;
43 const auto S::c = 0;