(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
20030714-1.c
       1  /* derived from PR optimization/11440  */
       2  
       3  extern void abort (void);
       4  extern void exit (int);
       5  
       6  typedef _Bool bool;
       7  const bool false = 0;
       8  const bool true = 1;
       9  
      10  enum EPosition 
      11  {
      12    STATIC, RELATIVE, ABSOLUTE, FIXED
      13  };
      14  typedef enum EPosition EPosition;
      15  
      16  enum EFloat 
      17  {
      18    FNONE = 0, FLEFT, FRIGHT
      19  };
      20  typedef enum EFloat EFloat;
      21  
      22  struct RenderBox
      23  {
      24    int unused[6];
      25    short m_verticalPosition;
      26    
      27    bool m_layouted : 1;
      28    bool m_unused : 1;
      29    bool m_minMaxKnown : 1;
      30    bool m_floating : 1;
      31    
      32    bool m_positioned : 1;
      33    bool m_overhangingContents : 1;
      34    bool m_relPositioned : 1;
      35    bool m_paintSpecial : 1;
      36    
      37    bool m_isAnonymous : 1;
      38    bool m_recalcMinMax : 1;
      39    bool m_isText : 1;
      40    bool m_inline : 1;
      41    
      42    bool m_replaced : 1;
      43    bool m_mouseInside : 1;
      44    bool m_hasFirstLine : 1;
      45    bool m_isSelectionBorder : 1;
      46    
      47    bool (*isTableCell) (struct RenderBox *this);
      48  };
      49  
      50  typedef struct RenderBox RenderBox;
      51  
      52  struct RenderStyle
      53  {
      54    struct NonInheritedFlags 
      55      {
      56        union 
      57  	{
      58  	  struct 
      59  	    {
      60  	      unsigned int _display : 4;
      61  	      unsigned int _bg_repeat : 2;
      62  	      bool _bg_attachment : 1;
      63  	      unsigned int _overflow : 4 ;
      64  	      unsigned int _vertical_align : 4;
      65  	      unsigned int _clear : 2;
      66  	      EPosition _position : 2;
      67  	      EFloat _floating : 2;
      68  	      unsigned int _table_layout : 1;
      69  	      bool _flowAroundFloats :1;
      70  
      71  	      unsigned int _styleType : 3;
      72  	      bool _hasHover : 1;
      73  	      bool _hasActive : 1;
      74  	      bool _clipSpecified : 1;
      75  	      unsigned int _unicodeBidi : 2;
      76  	      int _unused : 1;
      77  	    } f;
      78  	  int _niflags;
      79  	};
      80      } noninherited_flags;
      81  };
      82  
      83  typedef struct RenderStyle RenderStyle;
      84  
      85  extern void RenderObject_setStyle(RenderBox *this, RenderStyle *_style);
      86  extern void removeFromSpecialObjects(RenderBox *this);
      87  
      88  
      89  
      90  void RenderBox_setStyle(RenderBox *thisin, RenderStyle *_style)
      91  {
      92    RenderBox *this = thisin;
      93    bool oldpos, tmp;
      94    EPosition tmppo;
      95    
      96    tmp = this->m_positioned;
      97  
      98    oldpos = tmp;
      99  
     100    RenderObject_setStyle(this, _style);
     101    
     102    tmppo = _style->noninherited_flags.f._position;
     103  
     104    switch(tmppo)
     105      {
     106      case ABSOLUTE:
     107      case FIXED:
     108  	{
     109  	  bool ltrue = true;
     110  	  this->m_positioned = ltrue;
     111  	  break;
     112  	}
     113  
     114      default:
     115  	{
     116  	  EFloat tmpf;
     117  	  EPosition tmpp;
     118  	  if (oldpos)
     119  	    {
     120  	      bool ltrue = true;
     121  	      this->m_positioned = ltrue;
     122  	      removeFromSpecialObjects(this);
     123  	    }
     124  	    {
     125  	      bool lfalse = false;
     126  	      this->m_positioned = lfalse;
     127  	    }
     128  
     129  	  tmpf = _style->noninherited_flags.f._floating;
     130  
     131  	  if(!this->isTableCell (this) && !(tmpf == FNONE)) 
     132  	    {
     133  	      bool ltrue = true;
     134  	      this->m_floating = ltrue;
     135  	    }
     136  	  else 
     137  	    {
     138  	      tmpp = _style->noninherited_flags.f._position;
     139  	      if (tmpp == RELATIVE)
     140  		{
     141  		  bool ltrue = true;
     142  		  this->m_relPositioned = ltrue;
     143  		}
     144  	    }
     145  	}
     146      }
     147  }
     148  
     149  
     150  
     151  
     152  RenderBox g_this;
     153  RenderStyle g__style;
     154  
     155  void RenderObject_setStyle(RenderBox *this, RenderStyle *_style)
     156  {
     157    (void) this;
     158    (void) _style;
     159  }
     160  
     161  void removeFromSpecialObjects(RenderBox *this)
     162  {
     163    (void) this;
     164  }
     165  
     166  bool RenderBox_isTableCell (RenderBox *this)
     167  {
     168    (void) this;
     169    return false;
     170  }
     171  
     172  int main (void)
     173  {
     174  
     175    g_this.m_relPositioned = false;
     176    g_this.m_positioned = false;
     177    g_this.m_floating = false;
     178    g_this.isTableCell = RenderBox_isTableCell;
     179  
     180    g__style.noninherited_flags.f._position = FIXED;
     181    g__style.noninherited_flags.f._floating = FNONE;
     182  
     183    RenderBox_setStyle (&g_this, &g__style);
     184    
     185    if (g_this.m_positioned != true)
     186      abort ();
     187    if (g_this.m_relPositioned != false)
     188      abort ();
     189    if (g_this.m_floating != false)
     190      abort ();
     191  
     192    exit (0);
     193  }