#include "compat-common.h"
#include "struct-align-1.h"

#define TEST(NAME)						\
extern char v1_##NAME;						\
extern double v2_##NAME;					\
extern int v3_##NAME;						\
								\
extern struct B1_##NAME b1_##NAME, ab1_##NAME[2];		\
extern struct B2_##NAME b2_##NAME, ab2_##NAME[2];		\
extern struct B3_##NAME b3_##NAME, ab3_##NAME[2];		\
								\
extern void pass1_##NAME (struct B1_##NAME);			\
extern void pass2_##NAME (struct B2_##NAME);			\
extern void pass3_##NAME (struct B3_##NAME);			\
extern struct B1_##NAME return1_##NAME (void);			\
extern struct B2_##NAME return2_##NAME (void);			\
extern struct B3_##NAME return3_##NAME (void);			\
								\
void								\
checkp1_##NAME (struct B1_##NAME *p)				\
{								\
  if (p->c != v1_##NAME)					\
    DEBUG_CHECK;						\
  if (p->d != v2_##NAME)					\
    DEBUG_CHECK;						\
}								\
								\
void								\
checkp2_##NAME (struct B2_##NAME *p)				\
{								\
  if (p->c != v1_##NAME)					\
    DEBUG_CHECK;						\
  if (p->a2.d != v2_##NAME)					\
    DEBUG_CHECK;						\
}								\
								\
void								\
checkp3_##NAME (struct B3_##NAME *p)				\
{								\
  if (p->c != v1_##NAME)					\
    DEBUG_CHECK;						\
  if (p->a3.d != v2_##NAME)					\
    DEBUG_CHECK;						\
  if (p->a3.i != v3_##NAME)					\
    DEBUG_CHECK;						\
}								\
								\
void								\
test_##NAME (void)						\
{								\
  struct B1_##NAME s1;						\
  struct B2_##NAME s2;						\
  struct B3_##NAME s3;						\
  DEBUG_FPUTS (DESC_##NAME);					\
  DEBUG_NL;							\
  DEBUG_FPUTS ("  global variable");				\
  checkp1_##NAME (&b1_##NAME);					\
  checkp2_##NAME (&b2_##NAME);					\
  checkp3_##NAME (&b3_##NAME);					\
  DEBUG_NL;							\
  DEBUG_FPUTS ("  global array");				\
  checkp1_##NAME (&ab1_##NAME[1]);				\
  checkp2_##NAME (&ab2_##NAME[1]);				\
  checkp3_##NAME (&ab3_##NAME[1]);				\
  DEBUG_NL;							\
  DEBUG_FPUTS ("  argument");					\
  pass1_##NAME (b1_##NAME);					\
  pass2_##NAME (b2_##NAME);					\
  pass3_##NAME (b3_##NAME);					\
  DEBUG_NL;							\
  DEBUG_FPUTS ("  function result");				\
  s1 = return1_##NAME ();					\
  checkp1_##NAME (&s1);						\
  s2 = return2_##NAME ();					\
  checkp2_##NAME (&s2);						\
  s3 = return3_##NAME ();					\
  checkp3_##NAME (&s3);						\
  DEBUG_NL;							\
}

TEST (orig)
#ifndef SKIP_ATTRIBUTE
TEST (p_all)
TEST (p_inner)
TEST (p_outer)
TEST (a_max)
TEST (m_outer_p_inner)
TEST (m_inner_p_outer)
#endif
