blob: c367d6bc15dc243a6c4d11c06f2e2fb60b5d4785 [file] [log] [blame]
/* { dg-do assemble } */
/* { dg-options "-mthumb -Os -save-temps" } */
/* { dg-require-effective-target arm_thumb2_ok } */
#include <stdio.h>
extern int lseek(int, long, int);
int getFileStartAndLength (int fd, int *start_, size_t *length_)
{
int start, end;
size_t length;
start = lseek (fd, 0L, SEEK_CUR);
end = lseek (fd, 0L, SEEK_END);
if (start == -1 || end == -1)
return -1;
length = end - start;
if (length == 0)
return -1;
*start_ = start;
*length_ = length;
return 0;
}
/* { dg-final { scan-assembler-times "pop" 2 } } */
/* { dg-final { scan-assembler-times "beq" 3 } } */
/* { dg-final { object-size text <= 54 { target { ! arm*-*-uclinuxfdpiceabi } } } } */