egcs-971023: Can't access private member in member function?

kwrohrer@enteract.com kwrohrer@enteract.com
Mon Oct 27 22:41:00 GMT 1997


I can confirm this problem, at least with the egcs-2.90.12p 971008 
(gcc2-970802 experimental) version of the compiler, and the KDE 
libraries.

Building kdecore/kprocess.cpp, I get the following errors (and non-
errors):
jadrek:/usr/src/kdelibs/kdecore# g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/local/include -I/usr/X11R6/include -O6 -Wall -DKDEDIR=\"/usr/local/\" -c -fPIC -DPIC kprocess.cpp
kprocess.cpp: In method `bool KProcess::normalExit()':
kprocess.cpp:215: member `status' is a private member of class `KProcess'
kprocess.cpp: In method `int KProcess::exitStatus()':
kprocess.cpp:222: member `status' is a private member of class `KProcess'

but using -bi486-linux -V2.7.2.1, I get a successful compilation.  This error
occurs even if I preprocess with 2.7.2.1.  Relevant sections of kprocess.cpp
and kprocess.ii:

bool KProcess::normalExit()
{
  return (pid != 0) && (!runs) && (WIFEXITED(status));
}
/* becomes: */
bool KProcess::normalExit()
{
  return (pid != 0) && (!runs) && (((( (__extension__ ({ union { __typeof(  stat
us  ) __in; int __i; } __u;     __u.__in = (  status  ); __u.__i; }))  ) & 0xff)
 == 0)  );
}



int KProcess::exitStatus()
{
  return WEXITSTATUS(status);
}
/* becomes: */
int KProcess::exitStatus()
{
  return ((( (__extension__ ({ union { __typeof(  status  ) __in; int __i; } __u
;       __u.__in = (  status  ); __u.__i; }))  ) & 0xff00) >> 8)  ;
}


	Keith




More information about the Gcc-bugs mailing list