Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/lookup/missing-std-include-7.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 /* PR c++/85021: Verify that we suggest missing headers for common names in std:: | |
2 if there's a "using namespace std;" active. */ | |
3 | |
4 /* No using-directive. */ | |
5 | |
6 void test_1 () | |
7 { | |
8 cout << "test"; // { dg-error "'cout' was not declared in this scope" } | |
9 // { dg-bogus "'<iostream>'" "" { target *-*-* } .-1 } | |
10 } | |
11 | |
12 /* Local using-directive. */ | |
13 | |
14 void test_2 () | |
15 { | |
16 using namespace std; | |
17 cout << "test"; // { dg-error "'cout' was not declared in this scope" } | |
18 // { dg-message "'std::cout' is defined in header '<iostream>'" "" { target *-*-* } .-1 } | |
19 } | |
20 | |
21 /* Local using-directive, but not of "std". */ | |
22 | |
23 namespace not_std {} | |
24 void test_3 () | |
25 { | |
26 using namespace not_std; | |
27 cout << "test"; // { dg-error "'cout' was not declared in this scope" } | |
28 // { dg-bogus "'<iostream>'" "" { target *-*-* } .-1 } | |
29 } | |
30 | |
31 /* Local using-directive in wrong block. */ | |
32 | |
33 void test_4 () | |
34 { | |
35 { | |
36 using namespace std; | |
37 } | |
38 cout << "test"; // { dg-error "'cout' was not declared in this scope" } | |
39 // { dg-bogus "'<iostream>'" "" { target *-*-* } .-1 } | |
40 } | |
41 | |
42 /* Local using-directive used from nested block. */ | |
43 | |
44 void test_5 () | |
45 { | |
46 using namespace std; | |
47 | |
48 for (int i = 0; i < 10; i++) | |
49 { | |
50 cout << "test"; // { dg-error "'cout' was not declared in this scope" } | |
51 // { dg-message "'std::cout' is defined in header '<iostream>'" "" { target *-*-* } .-1 } | |
52 } | |
53 } | |
54 | |
55 namespace ns_1 { | |
56 | |
57 namespace ns_2 { | |
58 | |
59 using namespace std; | |
60 | |
61 /* using-directive within the same namespace. */ | |
62 | |
63 void test_6 () | |
64 { | |
65 cout << "test"; // { dg-error "'cout' was not declared in this scope" } | |
66 // { dg-message "'std::cout' is defined in header '<iostream>'" "" { target *-*-* } .-1 } | |
67 } | |
68 | |
69 namespace ns_3 { | |
70 | |
71 /* Locate the using-directive within ns_2, the parent namespace. */ | |
72 | |
73 void test_7 () | |
74 { | |
75 cout << "test"; // { dg-error "'cout' was not declared in this scope" } | |
76 // { dg-message "'std::cout' is defined in header '<iostream>'" "" { target *-*-* } .-1 } | |
77 } | |
78 | |
79 } // namespace ns_3 | |
80 } // namespace ns_2 | |
81 | |
82 /* Back in ns_1, should not locate the using-directive. */ | |
83 | |
84 void test_8 () | |
85 { | |
86 cout << "test"; // { dg-error "'cout' was not declared in this scope" } | |
87 // { dg-bogus "'<iostream>'" "" { target *-*-* } .-1 } | |
88 } | |
89 | |
90 } // namespace ns_1 | |
91 | |
92 /* using-directive in global namespace. */ | |
93 using namespace std; | |
94 | |
95 void test_9 () | |
96 { | |
97 cout << "test"; // { dg-error "'cout' was not declared in this scope" } | |
98 // { dg-message "'std::cout' is defined in header '<iostream>'" "" { target *-*-* } .-1 } | |
99 } | |
100 |