#define UNUSED __attribute__((unused))
#define EXT __extension__
int undef(void);
inline static void
f1 (int i UNUSED)
{
}
inline static void
f2 (void)
{
f1 (EXT ({ int t1 UNUSED; undef (); }));
}
inline static void
f3 (void)
{
int v1 UNUSED;
int v2 UNUSED;
EXT ({ int t2 UNUSED; if (0) undef (); 0; })
&& EXT ({ int t3 UNUSED; if (0) undef (); 0; });
if (1)
{
undef ();
if (1)
f2 ();
}
{
undef ();
}
}
inline static void
f4 (void)
{
EXT ({ undef (); 1; }) && EXT ({ int t4 UNUSED = ({ 1; }); 1; });
{ }
EXT ({ int t5 UNUSED; if (0) undef (); 0; });
f4 ();
undef ();
f3 ();
return;
}