1f08c3bdfSopenharmony_ci#define bos(O, T)	__builtin_object_size(O, T)
2f08c3bdfSopenharmony_ci
3f08c3bdfSopenharmony_cistruct s {
4f08c3bdfSopenharmony_ci	char arr[8];
5f08c3bdfSopenharmony_ci	__INT32_TYPE__ i;
6f08c3bdfSopenharmony_ci	__INT32_TYPE__ padding;
7f08c3bdfSopenharmony_ci};
8f08c3bdfSopenharmony_ci
9f08c3bdfSopenharmony_cistatic struct s s;
10f08c3bdfSopenharmony_cistatic char *p = &s.arr[1];
11f08c3bdfSopenharmony_cistatic int  *q = &s.i;
12f08c3bdfSopenharmony_ci
13f08c3bdfSopenharmony_ciint obj_int0(void) { return bos(&s.i, 0) == 8; }
14f08c3bdfSopenharmony_ciint obj_arr0(void) { return bos(&s.arr[1], 0) == 15; }
15f08c3bdfSopenharmony_ci
16f08c3bdfSopenharmony_ciint ptr_int(struct s *p) { return bos(&p->i, 0) == -1; }
17f08c3bdfSopenharmony_ciint ptr_arr(struct s *p) { return bos(&p->arr[1], 0) == -1; }
18f08c3bdfSopenharmony_ci
19f08c3bdfSopenharmony_ci/*
20f08c3bdfSopenharmony_ci * check-name: builtin-objsize0
21f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file
22f08c3bdfSopenharmony_ci *
23f08c3bdfSopenharmony_ci * check-output-ignore
24f08c3bdfSopenharmony_ci * check-output-returns: 1
25f08c3bdfSopenharmony_ci */
26