summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug-2123.c
blob: 8293d13229654330dc3761a638f53537785cedbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
   bug-2123.c
 */

#include <testfwk.h>
struct {
  char *p;
  char ct[2];
} arr[] = {
  {arr[1].ct, "a"},
  {arr->ct, "b"},
  {(*arr).ct, "c"},
  {(&arr[2])->ct, "d"},
  {(*(&arr[3])).ct, "e"},
  {(&(*(&arr[4])))->ct, "f"},
};


void testBug(void)
{
  ASSERT (*(arr[0].p) == 'b');
  ASSERT (*(arr[1].p) == 'a');
  ASSERT (*(arr[2].p) == 'a');
  ASSERT (*(arr[3].p) == 'c');
  ASSERT (*(arr[4].p) == 'd');
  ASSERT (*(arr[5].p) == 'e');
}