Fix Visual C++ error C2248:
authorYaron Keren <yaron.keren@gmail.com>
Thu, 6 Aug 2015 07:59:26 +0000 (07:59 +0000)
committerYaron Keren <yaron.keren@gmail.com>
Thu, 6 Aug 2015 07:59:26 +0000 (07:59 +0000)
'llvm::TrailingObjects<`anonymous-namespace'::Class1,short,llvm::NoTrailingTypeArg>::additionalSizeToAlloc' :
cannot access protected member declared in class
 'llvm::TrailingObjects<`anonymous-namespace'::Class1,short,llvm::NoTrailingTypeArg>'

 I'm not sure how this compiles with gcc.
 Aren't protecteded members accessible only with protected or public inheritance?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244199 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/Support/TrailingObjectsTest.cpp

index fe1fbf153076bb835ff216f5bfe8a0ad700ad1de..41e2d4181f508aff5b6b7fe7b9d21d75dcee7869 100644 (file)
@@ -16,7 +16,7 @@ namespace {
 // This class, beyond being used by the test case, a nice
 // demonstration of the intended usage of TrailingObjects, with a
 // single trailing array.
-class Class1 final : private TrailingObjects<Class1, short> {
+class Class1 final : protected TrailingObjects<Class1, short> {
   friend TrailingObjects;
 
   unsigned NumShorts;
@@ -47,7 +47,7 @@ public:
 
 // Here, there are two singular optional object types appended.
 // Note that it fails to compile without the alignment spec.
-class LLVM_ALIGNAS(8) Class2 final : private TrailingObjects<Class2, double, short> {
+class LLVM_ALIGNAS(8) Class2 final : protected TrailingObjects<Class2, double, short> {
   friend TrailingObjects;
 
   bool HasShort, HasDouble;