/* derived from PR optimization/11440 */ extern void abort (void); extern void exit (int); typedef _Bool bool; const bool false = 0; const bool true = 1; enum EPosition { STATIC, RELATIVE, ABSOLUTE, FIXED }; typedef enum EPosition EPosition; enum EFloat { FNONE = 0, FLEFT, FRIGHT }; typedef enum EFloat EFloat; struct RenderBox { int unused[6]; short m_verticalPosition; bool m_layouted : 1; bool m_unused : 1; bool m_minMaxKnown : 1; bool m_floating : 1; bool m_positioned : 1; bool m_overhangingContents : 1; bool m_relPositioned : 1; bool m_paintSpecial : 1; bool m_isAnonymous : 1; bool m_recalcMinMax : 1; bool m_isText : 1; bool m_inline : 1; bool m_replaced : 1; bool m_mouseInside : 1; bool m_hasFirstLine : 1; bool m_isSelectionBorder : 1; bool (*isTableCell) (struct RenderBox *this); }; typedef struct RenderBox RenderBox; struct RenderStyle { struct NonInheritedFlags { union { struct { unsigned int _display : 4; unsigned int _bg_repeat : 2; bool _bg_attachment : 1; unsigned int _overflow : 4 ; unsigned int _vertical_align : 4; unsigned int _clear : 2; EPosition _position : 2; EFloat _floating : 2; unsigned int _table_layout : 1; bool _flowAroundFloats :1; unsigned int _styleType : 3; bool _hasHover : 1; bool _hasActive : 1; bool _clipSpecified : 1; unsigned int _unicodeBidi : 2; int _unused : 1; } f; int _niflags; }; } noninherited_flags; }; typedef struct RenderStyle RenderStyle; extern void RenderObject_setStyle(RenderBox *this, RenderStyle *_style); extern void removeFromSpecialObjects(RenderBox *this); void RenderBox_setStyle(RenderBox *thisin, RenderStyle *_style) { RenderBox *this = thisin; bool oldpos, tmp; EPosition tmppo; tmp = this->m_positioned; oldpos = tmp; RenderObject_setStyle(this, _style); tmppo = _style->noninherited_flags.f._position; switch(tmppo) { case ABSOLUTE: case FIXED: { bool ltrue = true; this->m_positioned = ltrue; break; } default: { EFloat tmpf; EPosition tmpp; if (oldpos) { bool ltrue = true; this->m_positioned = ltrue; removeFromSpecialObjects(this); } { bool lfalse = false; this->m_positioned = lfalse; } tmpf = _style->noninherited_flags.f._floating; if(!this->isTableCell (this) && !(tmpf == FNONE)) { bool ltrue = true; this->m_floating = ltrue; } else { tmpp = _style->noninherited_flags.f._position; if (tmpp == RELATIVE) { bool ltrue = true; this->m_relPositioned = ltrue; } } } } } RenderBox g_this; RenderStyle g__style; void RenderObject_setStyle(RenderBox *this, RenderStyle *_style) { (void) this; (void) _style; } void removeFromSpecialObjects(RenderBox *this) { (void) this; } bool RenderBox_isTableCell (RenderBox *this) { (void) this; return false; } int main (void) { g_this.m_relPositioned = false; g_this.m_positioned = false; g_this.m_floating = false; g_this.isTableCell = RenderBox_isTableCell; g__style.noninherited_flags.f._position = FIXED; g__style.noninherited_flags.f._floating = FNONE; RenderBox_setStyle (&g_this, &g__style); if (g_this.m_positioned != true) abort (); if (g_this.m_relPositioned != false) abort (); if (g_this.m_floating != false) abort (); exit (0); }