Fix ICE in substring-handling building 502.gcc_r (PR 87562)
[official-gcc.git] / gcc / testsuite / gcc.dg / builtin-object-size-5.c
blob7c274cdfd4253e4972600a406c58fc30ef18a2a5
1 /* { dg-do compile { target i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } } */
2 /* { dg-options "-O2" } */
4 typedef __SIZE_TYPE__ size_t;
5 extern void abort (void);
6 extern char buf[0x40000000];
8 void
9 test1 (size_t x)
11 char *p = &buf[8];
12 size_t i;
14 for (i = 0; i < x; ++i)
15 p = p + 4;
16 if (__builtin_object_size (p, 0) != sizeof (buf) - 8)
17 abort ();
20 void
21 test2 (size_t x)
23 char *p = &buf[8];
24 size_t i;
26 for (i = 0; i < x; ++i)
27 p = p + 4;
28 if (__builtin_object_size (p, 1) != sizeof (buf) - 8)
29 abort ();
32 void
33 test3 (size_t x)
35 char *p = &buf[8];
36 size_t i;
38 for (i = 0; i < x; ++i)
39 p = p + 4;
40 if (__builtin_object_size (p, 2) != 0)
41 abort ();
44 void
45 test4 (size_t x)
47 char *p = &buf[8];
48 size_t i;
50 for (i = 0; i < x; ++i)
51 p = p + 4;
52 if (__builtin_object_size (p, 3) != 0)
53 abort ();
56 /* { dg-final { scan-assembler-not "abort" } } */