This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

g++ && -fPIC: ICE


$ g++ -v
Reading specs from /opt/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 20000806 (experimental)

$ g++ -O2 -fPIC test.cc
test.cc: In method `void KDialogBase::setButtonStyle (int)':
test.cc:51: Internal compiler error in gen_lowpart, at emit-rtl.c:1084
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

$ cat test.cc
 
class KDialogBase
{
  public:
   enum ButtonCode
    {
      Help    = 0x00000001,
      Default = 0x00000002,
      Ok      = 0x00000004,
      Apply   = 0x00000008,
      Try     = 0x00000010,
      Cancel  = 0x00000020,
      Close   = 0x00000040,
      User1   = 0x00000080,
      User2   = 0x00000100,
      User3   = 0x00000200,
      No      = 0x00000080,
      Yes     = 0x00000100,
      Stretch = 0x80000000
    };
 
    struct SButton
    {
        int mask;
        int style;
    };
 
    void setButtonStyle( int style );
 
  private:
    SButton mButton;
    bool mMessageBoxMode;
};
 
void KDialogBase::setButtonStyle( int )
{
    const int *layout;
    static int layoutRule[5][8] =
    {
     
{Help,Default|Stretch,User3,User2,User1,Ok,Apply|Try,Cancel|Close},
     
{Help,Default|Stretch,User3,User2,User1,Cancel|Close,Apply|Try,Ok},
     
{Help,Default|Stretch,User3,User2,User1,Apply|Try,Cancel|Close,Ok},
     
{Ok,Apply|Try,Cancel|Close,User3,User2,User1|Stretch,Default,Help},
     
{Ok,Cancel|Close,Apply|Try,User3,User2,User1|Stretch,Default,Help},
    };
    layout = layoutRule[ mButton.style ];
 
    for( unsigned int i=0; i<8; i++ )
        if( i>0 && (layout[i-1]&Stretch) && mMessageBoxMode == false )
            {  }
} 

--
Regards,
Thomas Kunert

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]