Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(183)

Side by Side Diff: base/memory/scoped_ptr_unittest.nc

Issue 678263003: Switch to clang for nocompile tests and rebaseline existing results. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Downcasting Pass Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/callback_unittest.nc ('k') | base/memory/weak_ptr_unittest.nc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 8
9 namespace { 9 namespace {
10 10
11 class Parent { 11 class Parent {
12 }; 12 };
13 13
14 class Child : public Parent { 14 class Child : public Parent {
15 }; 15 };
16 16
17 class RefCountedClass : public base::RefCountedThreadSafe<RefCountedClass> { 17 class RefCountedClass : public base::RefCountedThreadSafe<RefCountedClass> {
18 }; 18 };
19 19
20 } // namespace 20 } // namespace
21 21
22 #if defined(NCTEST_NO_PASSAS_DOWNCAST) // [r"invalid conversion from"] 22 #if defined(NCTEST_NO_PASS_DOWNCAST) // [r"fatal error: no matching constructor for initialization of 'base::internal::scoped_ptr_impl<\(anonymous namespace\): :Child, base::DefaultDeleter<\(anonymous namespace\)::Child> >::Data'"]
23 23
24 scoped_ptr<Child> DowncastUsingPassAs(scoped_ptr<Parent> object) { 24 scoped_ptr<Child> DowncastUsingPassAs(scoped_ptr<Parent> object) {
25 return object.PassAs<Child>(); 25 return object.Pass();
26 } 26 }
27 27
28 #elif defined(NCTEST_NO_REF_COUNTED_SCOPED_PTR) // [r"size of array is negative "] 28 #elif defined(NCTEST_NO_REF_COUNTED_SCOPED_PTR) // [r"fatal error: static_asser t failed \"T_is_refcounted_type_and_needs_scoped_refptr\""]
29 29
30 // scoped_ptr<> should not work for ref-counted objects. 30 // scoped_ptr<> should not work for ref-counted objects.
31 void WontCompile() { 31 void WontCompile() {
32 scoped_ptr<RefCountedClass> x; 32 scoped_ptr<RefCountedClass> x;
33 } 33 }
34 34
35 #elif defined(NCTEST_NO_ARRAY_WITH_SIZE) // [r"size of array is negative"] 35 #elif defined(NCTEST_NO_ARRAY_WITH_SIZE) // [r"fatal error: static_assert faile d \"do_not_use_array_with_size_as_type\""]
36 36
37 void WontCompile() { 37 void WontCompile() {
38 scoped_ptr<int[10]> x; 38 scoped_ptr<int[10]> x;
39 } 39 }
40 40
41 #elif defined(NCTEST_NO_PASS_FROM_ARRAY) // [r"size of array is negative"] 41 #elif defined(NCTEST_NO_PASS_FROM_ARRAY) // [r"fatal error: static_assert faile d \"U_cannot_be_an_array\""]
42 42
43 void WontCompile() { 43 void WontCompile() {
44 scoped_ptr<int[]> a; 44 scoped_ptr<int[]> a;
45 scoped_ptr<int*> b; 45 scoped_ptr<int*> b;
46 b = a.Pass(); 46 b = a.Pass();
47 } 47 }
48 48
49 #elif defined(NCTEST_NO_PASS_TO_ARRAY) // [r"no match for 'operator='"] 49 #elif defined(NCTEST_NO_PASS_TO_ARRAY) // [r"fatal error: no viable overloaded '='"]
50 50
51 void WontCompile() { 51 void WontCompile() {
52 scoped_ptr<int*> a; 52 scoped_ptr<int*> a;
53 scoped_ptr<int[]> b; 53 scoped_ptr<int[]> b;
54 b = a.Pass(); 54 b = a.Pass();
55 } 55 }
56 56
57 #elif defined(NCTEST_NO_CONSTRUCT_FROM_ARRAY) // [r"is private"] 57 #elif defined(NCTEST_NO_CONSTRUCT_FROM_ARRAY) // [r"fatal error: 'impl_' is a p rivate member of 'scoped_ptr<int \[\], base::DefaultDeleter<int \[\]> >'"]
58 58
59 void WontCompile() { 59 void WontCompile() {
60 scoped_ptr<int[]> a; 60 scoped_ptr<int[]> a;
61 scoped_ptr<int*> b(a.Pass()); 61 scoped_ptr<int*> b(a.Pass());
62 } 62 }
63 63
64 #elif defined(NCTEST_NO_CONSTRUCT_TO_ARRAY) // [r"no matching function for call "] 64 #elif defined(NCTEST_NO_CONSTRUCT_TO_ARRAY) // [r"fatal error: no matching cons tructor for initialization of 'scoped_ptr<int \[\]>'"]
65 65
66 void WontCompile() { 66 void WontCompile() {
67 scoped_ptr<int*> a; 67 scoped_ptr<int*> a;
68 scoped_ptr<int[]> b(a.Pass()); 68 scoped_ptr<int[]> b(a.Pass());
69 } 69 }
70 70
71 #elif defined(NCTEST_NO_CONSTRUCT_SCOPED_PTR_ARRAY_FROM_NULL) // [r"is ambiguou s"] 71 #elif defined(NCTEST_NO_CONSTRUCT_SCOPED_PTR_ARRAY_FROM_NULL) // [r"is ambiguou s"]
72 72
73 void WontCompile() { 73 void WontCompile() {
74 scoped_ptr<int[]> x(NULL); 74 scoped_ptr<int[]> x(NULL);
75 } 75 }
76 76
77 #elif defined(NCTEST_NO_CONSTRUCT_SCOPED_PTR_ARRAY_FROM_DERIVED) // [r"is priva te"] 77 #elif defined(NCTEST_NO_CONSTRUCT_SCOPED_PTR_ARRAY_FROM_DERIVED) // [r"fatal er ror: calling a private constructor of class 'scoped_ptr<\(anonymous namespace\): :Parent \[\], base::DefaultDeleter<\(anonymous namespace\)::Parent \[\]> >'"]
78 78
79 void WontCompile() { 79 void WontCompile() {
80 scoped_ptr<Parent[]> x(new Child[1]); 80 scoped_ptr<Parent[]> x(new Child[1]);
81 } 81 }
82 82
83 #elif defined(NCTEST_NO_RESET_SCOPED_PTR_ARRAY_FROM_NULL) // [r"is ambiguous"] 83 #elif defined(NCTEST_NO_RESET_SCOPED_PTR_ARRAY_FROM_NULL) // [r"is ambiguous"]
84 84
85 void WontCompile() { 85 void WontCompile() {
86 scoped_ptr<int[]> x; 86 scoped_ptr<int[]> x;
87 x.reset(NULL); 87 x.reset(NULL);
88 } 88 }
89 89
90 #elif defined(NCTEST_NO_RESET_SCOPED_PTR_ARRAY_FROM_DERIVED) // [r"is private"] 90 #elif defined(NCTEST_NO_RESET_SCOPED_PTR_ARRAY_FROM_DERIVED) // [r"fatal error: 'reset' is a private member of 'scoped_ptr<\(anonymous namespace\)::Parent \[\] , base::DefaultDeleter<\(anonymous namespace\)::Parent \[\]> >'"]
91 91
92 void WontCompile() { 92 void WontCompile() {
93 scoped_ptr<Parent[]> x; 93 scoped_ptr<Parent[]> x;
94 x.reset(new Child[1]); 94 x.reset(new Child[1]);
95 } 95 }
96 96
97 #elif defined(NCTEST_NO_DELETER_REFERENCE) // [r"fails to be a struct or class type"] 97 #elif defined(NCTEST_NO_DELETER_REFERENCE) // [r"fatal error: base specifier mu st name a class"]
98 98
99 struct Deleter { 99 struct Deleter {
100 void operator()(int*) {} 100 void operator()(int*) {}
101 }; 101 };
102 102
103 // Current implementation doesn't support Deleter Reference types. Enabling 103 // Current implementation doesn't support Deleter Reference types. Enabling
104 // support would require changes to the behavior of the constructors to match 104 // support would require changes to the behavior of the constructors to match
105 // including the use of SFINAE to discard the type-converting constructor 105 // including the use of SFINAE to discard the type-converting constructor
106 // as per C++11 20.7.1.2.1.19. 106 // as per C++11 20.7.1.2.1.19.
107 void WontCompile() { 107 void WontCompile() {
108 Deleter d; 108 Deleter d;
109 int n; 109 int n;
110 scoped_ptr<int*, Deleter&> a(&n, d); 110 scoped_ptr<int*, Deleter&> a(&n, d);
111 } 111 }
112 112
113 #endif 113 #endif
OLDNEW
« no previous file with comments | « base/callback_unittest.nc ('k') | base/memory/weak_ptr_unittest.nc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698