ubuntu-buildroot/output/build/host-gcc-initial-11.4.0/gcc/testsuite/gcc.target/nios2/pr92499-2.c

46 lines
908 B
C

/* PR target/92499 */
/* { dg-do compile } */
/* { dg-options "-O2 -mgpopt=global -G8" } */
/* Check placement and addressing of flexibly-sized objects with external
linkage. */
enum { size = 100 };
struct flexible
{
int length;
int data[];
};
extern struct flexible global_flexible;
struct flexible global_flexible =
{
.data = { [size - 1] = 0, }
};
extern struct flexible global_flexible_nonzero;
struct flexible global_flexible_nonzero =
{
.length = size,
.data = { [size - 1] = 0, }
};
struct flexible *
get_global_flexible (void)
{
return &global_flexible;
}
struct flexible *
get_global_flexible_nonzero (void)
{
return &global_flexible_nonzero;
}
/* To preserve ABI compatibility we place the flexibly-sized objects in
small data sections. */
/* { dg-final { scan-assembler-times "\\.sdata" 1 } } */
/* { dg-final { scan-assembler-times "\\.sbss" 1 } } */