mirror of git://gcc.gnu.org/git/gcc.git
parent
ab4bae0c13
commit
b081ed4efc
|
|
@ -0,0 +1,61 @@
|
||||||
|
/* This tests passing and returning of empty structures and unions. */
|
||||||
|
|
||||||
|
#include "defines.h"
|
||||||
|
#include "args.h"
|
||||||
|
|
||||||
|
struct IntegerRegisters iregbits = { ~0, ~0, ~0, ~0, ~0, ~0 };
|
||||||
|
struct IntegerRegisters iregs;
|
||||||
|
unsigned int num_iregs;
|
||||||
|
|
||||||
|
struct empty_struct
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
struct empty_struct
|
||||||
|
check_struct_passing(struct empty_struct s0 ATTRIBUTE_UNUSED,
|
||||||
|
struct empty_struct s1 ATTRIBUTE_UNUSED,
|
||||||
|
int i0 ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
struct empty_struct s;
|
||||||
|
check_int_arguments;
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define check_struct_passing WRAP_CALL(check_struct_passing)
|
||||||
|
|
||||||
|
union empty_union
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
union empty_union
|
||||||
|
check_union_passing(union empty_union u0 ATTRIBUTE_UNUSED,
|
||||||
|
union empty_union u1 ATTRIBUTE_UNUSED,
|
||||||
|
int i0 ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
union empty_union u;
|
||||||
|
check_int_arguments;
|
||||||
|
return u;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define check_union_passing WRAP_CALL(check_union_passing)
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
struct empty_struct s;
|
||||||
|
union empty_union u;
|
||||||
|
|
||||||
|
clear_struct_registers;
|
||||||
|
iregs.I0 = 32;
|
||||||
|
num_iregs = 1;
|
||||||
|
clear_int_hardware_registers;
|
||||||
|
check_union_passing(u,u,32);
|
||||||
|
|
||||||
|
clear_struct_registers;
|
||||||
|
iregs.I0 = 33;
|
||||||
|
num_iregs = 1;
|
||||||
|
clear_int_hardware_registers;
|
||||||
|
check_struct_passing(s,s,33);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue