summaryrefslogtreecommitdiffstats
path: root/base/ref_counted_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/ref_counted_unittest.cc')
-rw-r--r--base/ref_counted_unittest.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/base/ref_counted_unittest.cc b/base/ref_counted_unittest.cc
index 724c64f..ba392d6 100644
--- a/base/ref_counted_unittest.cc
+++ b/base/ref_counted_unittest.cc
@@ -5,9 +5,22 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "base/ref_counted.h"
+namespace {
+
class SelfAssign : public base::RefCounted<SelfAssign> {
};
+class CheckDerivedMemberAccess : public scoped_refptr<SelfAssign> {
+ public:
+ CheckDerivedMemberAccess() {
+ // This shouldn't compile if we don't have access to the member variable.
+ SelfAssign** pptr = &ptr_;
+ EXPECT_EQ(*pptr, ptr_);
+ }
+};
+
+} // end namespace
+
TEST(RefCountedUnitTest, TestSelfAssignment) {
SelfAssign* p = new SelfAssign;
scoped_refptr<SelfAssign> var = p;
@@ -15,3 +28,6 @@ TEST(RefCountedUnitTest, TestSelfAssignment) {
EXPECT_EQ(var.get(), p);
}
+TEST(RefCountedUnitTest, ScopedRefPtrMemberAccess) {
+ CheckDerivedMemberAccess check;
+}