#ifndef XCOFF_TEST
extern int mainvar;
#endif
#ifndef XCOFF_TEST
int overriddenvar = -1;
#endif
int shlibvar1 = 3;
extern int shlibvar2;
#ifndef XCOFF_TEST
int
shlib_mainvar ()
{
return mainvar;
}
#endif
#ifndef XCOFF_TEST
int
shlib_overriddenvar ()
{
return overriddenvar;
}
#endif
int
shlib_shlibvar1 ()
{
return shlibvar1;
}
int
shlib_shlibvar2 ()
{
return shlibvar2;
}
extern int shlib_shlibcalled ();
int
shlib_shlibcall ()
{
return shlib_shlibcalled ();
}
#ifndef XCOFF_TEST
extern int shlib_overriddencall2 ();
int
shlib_shlibcall2 ()
{
return shlib_overriddencall2 ();
}
int
shlib_overriddencall2 ()
{
return 7;
}
#endif
#ifndef XCOFF_TEST
extern int main_called ();
int
shlib_maincall ()
{
return main_called ();
}
#endif
int
shlib_checkfunptr1 (p)
int (*p) ();
{
return p == shlib_shlibvar1;
}
#ifndef XCOFF_TEST
int
shlib_checkfunptr2 (p)
int (*p) ();
{
return p == main_called;
}
#endif
int
(*shlib_getfunptr1 ()) ()
{
return shlib_shlibvar1;
}
#ifndef XCOFF_TEST
int
(*shlib_getfunptr2 ()) ()
{
return main_called;
}
#endif
#ifndef __STDC__
#define const
#endif
static int i = 6;
static const char *str = "Hello, world\n";
int
shlib_check ()
{
const char *s1, *s2;
if (i != 6)
return 0;
s1 = "Hello, world\n";
s2 = str;
while (*s1 != '\0')
if (*s1++ != *s2++)
return 0;
if (*s2 != '\0')
return 0;
if (shlib_shlibvar1 () != 3)
return 0;
return 1;
}