ProtectedMemberAccess2.java:38: pkg.SuperClass.pC has protected access in pkg.SuperClass
  pkg.SuperClass.pC  obj1;                      // illegal
                ^
ProtectedMemberAccess2.java:39: pkg.SuperClass.spC has protected access in pkg.SuperClass
  pkg.SuperClass.spC obj2;                      // illegal
                ^
ProtectedMemberAccess2.java:41: pkg.SuperClass.pI has protected access in pkg.SuperClass
  pkg.SuperClass.pI  obj3;                      // illegal
                ^
ProtectedMemberAccess2.java:42: pkg.SuperClass.spI has protected access in pkg.SuperClass
  pkg.SuperClass.spI obj4;                      // illegal
                ^
ProtectedMemberAccess2.java:50: pkg.SuperClass.pC has protected access in pkg.SuperClass
  class C1 extends pkg.SuperClass.pC {}         // illegal
                                 ^
ProtectedMemberAccess2.java:51: pkg.SuperClass.spC has protected access in pkg.SuperClass
  class C2 extends pkg.SuperClass.spC {}        // illegal
                                 ^
ProtectedMemberAccess2.java:53: pkg.SuperClass.pI has protected access in pkg.SuperClass
  interface I1 extends pkg.SuperClass.pI {}     // illegal
                                     ^
ProtectedMemberAccess2.java:54: pkg.SuperClass.spI has protected access in pkg.SuperClass
  interface I2 extends pkg.SuperClass.spI {}    // illegal
                                     ^
ProtectedMemberAccess2.java:23: pi has protected access in pkg.SuperClass
  int i = x.pi;                                 // illegal
           ^
ProtectedMemberAccess2.java:24: spi has protected access in pkg.SuperClass
  int j = x.spi;                                // illegal
           ^
ProtectedMemberAccess2.java:26: pi has protected access in pkg.SuperClass
  int n = sx.pi;                                // illegal
            ^
ProtectedMemberAccess2.java:27: spi has protected access in pkg.SuperClass
  int m = sx.spi;                               // illegal
            ^
ProtectedMemberAccess2.java:29: pi has protected access in pkg.SuperClass
  static int sn = sx.pi;                        // illegal
                    ^
ProtectedMemberAccess2.java:30: spi has protected access in pkg.SuperClass
  static int sm = sx.spi;                       // illegal
                    ^
ProtectedMemberAccess2.java:32: pm() has protected access in pkg.SuperClass
  int w = x.pm();                               // illegal
           ^
ProtectedMemberAccess2.java:33: spm() has protected access in pkg.SuperClass
  int y = x.spm();                              // illegal
           ^
ProtectedMemberAccess2.java:35: pm() has protected access in pkg.SuperClass
  int u = sx.pm();                              // illegal
            ^
ProtectedMemberAccess2.java:36: spm() has protected access in pkg.SuperClass
  int v = sx.spm();                             // illegal
            ^
ProtectedMemberAccess2.java:44: pkg.SuperClass.pC has protected access in pkg.SuperClass
  Object o1 = (pkg.SuperClass.pC) null;         // illegal
                             ^
ProtectedMemberAccess2.java:45: pkg.SuperClass.spC has protected access in pkg.SuperClass
  Object o2 = (pkg.SuperClass.spC) null;        // illegal
                             ^
ProtectedMemberAccess2.java:47: pkg.SuperClass.pI has protected access in pkg.SuperClass
  Object o3 = (pkg.SuperClass.pI) null;         // illegal
                             ^
ProtectedMemberAccess2.java:48: pkg.SuperClass.spI has protected access in pkg.SuperClass
  Object o4 = (pkg.SuperClass.spI) null;        // illegal
                             ^
ProtectedMemberAccess2.java:60: pi has protected access in pkg.SuperClass
    sx.pi  = 1;                                 // illegal
      ^
ProtectedMemberAccess2.java:61: spi has protected access in pkg.SuperClass
    sx.spi = 2;                                 // illegal
      ^
ProtectedMemberAccess2.java:63: pi has protected access in pkg.SuperClass
    lx.pi  = 1;                                 // illegal
      ^
ProtectedMemberAccess2.java:64: spi has protected access in pkg.SuperClass
    lx.spi = 2;                                 // illegal
      ^
ProtectedMemberAccess2.java:66: pi has protected access in pkg.SuperClass
    int n = sx.pi;                              // illegal
              ^
ProtectedMemberAccess2.java:67: spi has protected access in pkg.SuperClass
    int m = sx.spi;                             // illegal
              ^
ProtectedMemberAccess2.java:69: pi has protected access in pkg.SuperClass
    int k = lx.pi;                              // illegal
              ^
ProtectedMemberAccess2.java:70: spi has protected access in pkg.SuperClass
    int l = lx.spi;                             // illegal
              ^
ProtectedMemberAccess2.java:72: pm() has protected access in pkg.SuperClass
    int u = sx.pm();                            // illegal
              ^
ProtectedMemberAccess2.java:73: spm() has protected access in pkg.SuperClass
    int v = sx.spm();                           // illegal
              ^
ProtectedMemberAccess2.java:75: pm() has protected access in pkg.SuperClass
    int w = lx.pm();                            // illegal
              ^
ProtectedMemberAccess2.java:76: spm() has protected access in pkg.SuperClass
    int z = lx.spm();                           // illegal
              ^
ProtectedMemberAccess2.java:78: pkg.SuperClass.pC has protected access in pkg.SuperClass
    pkg.SuperClass.pC  obj1;                    // illegal
                  ^
ProtectedMemberAccess2.java:79: pkg.SuperClass.spC has protected access in pkg.SuperClass
    pkg.SuperClass.spC obj2;                    // illegal
                  ^
ProtectedMemberAccess2.java:81: pkg.SuperClass.pI has protected access in pkg.SuperClass
    pkg.SuperClass.pI  obj3;                    // illegal
                  ^
ProtectedMemberAccess2.java:82: pkg.SuperClass.spI has protected access in pkg.SuperClass
    pkg.SuperClass.spI obj4;                    // illegal
                  ^
ProtectedMemberAccess2.java:84: pkg.SuperClass.pC has protected access in pkg.SuperClass
    Object o1 = (pkg.SuperClass.pC) null;       // illegal
                               ^
ProtectedMemberAccess2.java:85: pkg.SuperClass.spC has protected access in pkg.SuperClass
    Object o2 = (pkg.SuperClass.spC) null;      // illegal
                               ^
ProtectedMemberAccess2.java:87: pkg.SuperClass.pI has protected access in pkg.SuperClass
    Object o3 = (pkg.SuperClass.pI) null;       // illegal
                               ^
ProtectedMemberAccess2.java:88: pkg.SuperClass.spI has protected access in pkg.SuperClass
    Object o4 = (pkg.SuperClass.spI) null;      // illegal
                               ^
ProtectedMemberAccess2.java:91: pkg.SuperClass.spC has protected access in pkg.SuperClass
    class C2 extends pkg.SuperClass.spC {}      // illegal
                                   ^
ProtectedMemberAccess2.java:102: pi has protected access in pkg.SuperClass
    x.pi  = 1;                                  // illegal
     ^
ProtectedMemberAccess2.java:103: spi has protected access in pkg.SuperClass
    x.spi = 2;                                  // illegal
     ^
ProtectedMemberAccess2.java:105: pi has protected access in pkg.SuperClass
    sx.pi  = 1;                                 // illegal
      ^
ProtectedMemberAccess2.java:106: spi has protected access in pkg.SuperClass
    sx.spi = 2;                                 // illegal
      ^
ProtectedMemberAccess2.java:108: pi has protected access in pkg.SuperClass
    lx.pi  = 1;                                 // illegal
      ^
ProtectedMemberAccess2.java:109: spi has protected access in pkg.SuperClass
    lx.spi = 2;                                 // illegal
      ^
ProtectedMemberAccess2.java:111: pm() has protected access in pkg.SuperClass
    int t = x.pm();                             // illegal
             ^
ProtectedMemberAccess2.java:112: spm() has protected access in pkg.SuperClass
    int y = x.spm();                            // illegal
             ^
ProtectedMemberAccess2.java:114: pm() has protected access in pkg.SuperClass
    int u = sx.pm();                            // illegal
              ^
ProtectedMemberAccess2.java:115: spm() has protected access in pkg.SuperClass
    int v = sx.spm();                           // illegal
              ^
ProtectedMemberAccess2.java:117: pm() has protected access in pkg.SuperClass
    int w = lx.pm();                            // illegal
              ^
ProtectedMemberAccess2.java:118: spm() has protected access in pkg.SuperClass
    int z = lx.spm();                           // illegal
              ^
ProtectedMemberAccess2.java:120: pi has protected access in pkg.SuperClass
    int i = x.pi;                               // illegal
             ^
ProtectedMemberAccess2.java:121: spi has protected access in pkg.SuperClass
    int j = x.spi;                              // illegal
             ^
ProtectedMemberAccess2.java:123: pi has protected access in pkg.SuperClass
    int n = sx.pi;                              // illegal
              ^
ProtectedMemberAccess2.java:124: spi has protected access in pkg.SuperClass
    int m = sx.spi;                             // illegal
              ^
ProtectedMemberAccess2.java:126: pi has protected access in pkg.SuperClass
    int k = lx.pi;                              // illegal
              ^
ProtectedMemberAccess2.java:127: spi has protected access in pkg.SuperClass
    int l = lx.spi;                             // illegal
              ^
ProtectedMemberAccess2.java:129: pkg.SuperClass.pC has protected access in pkg.SuperClass
    pkg.SuperClass.pC  obj1;                    // illegal
                  ^
ProtectedMemberAccess2.java:130: pkg.SuperClass.spC has protected access in pkg.SuperClass
    pkg.SuperClass.spC obj2;                    // illegal
                  ^
ProtectedMemberAccess2.java:132: pkg.SuperClass.pI has protected access in pkg.SuperClass
    pkg.SuperClass.pI  obj3;                    // illegal
                  ^
ProtectedMemberAccess2.java:133: pkg.SuperClass.spI has protected access in pkg.SuperClass
    pkg.SuperClass.spI obj4;                    // illegal
                  ^
ProtectedMemberAccess2.java:135: pkg.SuperClass.pC has protected access in pkg.SuperClass
    Object o1 = (pkg.SuperClass.pC) null;       // illegal
                               ^
ProtectedMemberAccess2.java:136: pkg.SuperClass.spC has protected access in pkg.SuperClass
    Object o2 = (pkg.SuperClass.spC) null;      // illegal
                               ^
ProtectedMemberAccess2.java:138: pkg.SuperClass.pI has protected access in pkg.SuperClass
    Object o3 = (pkg.SuperClass.pI) null;       // illegal
                               ^
ProtectedMemberAccess2.java:139: pkg.SuperClass.spI has protected access in pkg.SuperClass
    Object o4 = (pkg.SuperClass.spI) null;      // illegal
                               ^
ProtectedMemberAccess2.java:141: pkg.SuperClass.pC has protected access in pkg.SuperClass
    class C1 extends pkg.SuperClass.pC {}       // illegal
                                   ^
ProtectedMemberAccess2.java:142: pkg.SuperClass.spC has protected access in pkg.SuperClass
    class C2 extends pkg.SuperClass.spC {}      // illegal
                                   ^
71 errors
