re PR rtl-optimization/11440 (gcc-3.3.1 miscompiles c++ code with -O2, -fno-gcse cures it)
2003-07-14 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> PR optimization/11440 * gcc.c-torture/execute/20030714-1.c: New test. From-SVN: r69334
This commit is contained in:
parent
c786471404
commit
1b78cca94b
|
@ -1,3 +1,8 @@
|
|||
2003-07-14 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||||
|
||||
PR optimization/11440
|
||||
* gcc.c-torture/execute/20030714-1.c: New test.
|
||||
|
||||
2003-07-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||
|
||||
PR c++/11154
|
||||
|
|
|
@ -0,0 +1,193 @@
|
|||
/* 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);
|
||||
}
|
Loading…
Reference in New Issue