41 lines
747 B
C
41 lines
747 B
C
/* { dg-do run } */
|
|
/* { dg-options "-O2 -fsplit-loops -fdump-tree-lsplit-details" } */
|
|
/* { dg-require-effective-target int32plus } */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" void abort (void);
|
|
#else
|
|
extern void abort (void);
|
|
#endif
|
|
|
|
typedef struct {
|
|
int n;
|
|
} region_t;
|
|
|
|
void set (region_t *region) __attribute__((noinline));
|
|
void doit (region_t *beg, region_t *end, region_t *limit)
|
|
__attribute__((noinline));
|
|
|
|
region_t regions[10];
|
|
|
|
void
|
|
set (region_t *region) {
|
|
region->n = 1;
|
|
}
|
|
|
|
void
|
|
doit (region_t *beg, region_t *end, region_t *limit) {
|
|
for (region_t *cur = beg; cur < end; cur++) {
|
|
if (cur < limit) {
|
|
set(cur);
|
|
}
|
|
}
|
|
}
|
|
|
|
int
|
|
main (void) {
|
|
doit(®ions[0], ®ions[2], ®ions[10]);
|
|
if (regions[1].n != 1)
|
|
abort();
|
|
}
|