[Prev][Next][Index]
SgClassStmt::setSuperClass() bug
- To: sage-bugs@extreme.indiana.edu
- Cc: cc++@compbio.caltech.edu
- Subject: SgClassStmt::setSuperClass() bug
- Date: Fri, 19 Jan 1996 15:26:07 -0800
- From: John Garnett <garnett@compbio.caltech.edu>
- Sender: owner-sage-bugs@extreme.indiana.edu
This bit of code in libSage++.C:
void SgClassStmt::setSuperClass(int i, SgSymbol &type_symb, int access)
{
PTR_LLND pt;
if((access != BIT_PRIVATE) && (access != (BIT_PRIVATE | BIT_VIRTUAL)) &&
(access != BIT_PROTECTED) && (access != (BIT_PROTECTED | BIT_VIRTUAL)) &&
(access != BIT_PUBLIC) && (access != (BIT_PRIVATE | BIT_VIRTUAL))){
should be changed to look like this:
void SgClassStmt::setSuperClass(int i, SgSymbol &type_symb, int access)
{
PTR_LLND pt;
if((access != BIT_PRIVATE) && (access != (BIT_PRIVATE | BIT_VIRTUAL)) &&
(access != BIT_PROTECTED) && (access != (BIT_PROTECTED | BIT_VIRTUAL)) &&
(access != BIT_PUBLIC) && (access != (BIT_PUBLIC | BIT_VIRTUAL))){
note the BIT_PRIVATE on the third line was changed to BIT_PUBLIC. Otherwise
setSuperClass() doesn't allow "public virtual" inheritance.
-John