OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [vla-16.c] - Blame information for rev 689

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
/* Test for modifying and taking addresses of compound literals whose
2
   variably modified types involve typeof.  */
3
/* Origin: Joseph Myers <joseph@codesourcery.com> */
4
/* { dg-do run } */
5
/* { dg-options "-std=gnu99" } */
6
 
7
#include <stdarg.h>
8
 
9
extern void exit (int);
10
extern void abort (void);
11
 
12
int a[1];
13
 
14
void
15
f1 (void)
16
{
17
  int i = 0;
18
  int (**p)[1] = &(typeof (++i, (int (*)[i])a)){&a};
19
  if (*p != &a)
20
    abort ();
21
  if (i != 1)
22
    abort ();
23
}
24
 
25
void
26
f2 (void)
27
{
28
  int i = 0;
29
  (typeof (++i, (int (*)[i])a)){&a} = 0;
30
  if (i != 1)
31
    abort ();
32
}
33
 
34
void
35
f3 (void)
36
{
37
  int i = 0;
38
  (typeof (++i, (int (*)[i])a)){&a} += 1;
39
  if (i != 1)
40
    abort ();
41
}
42
 
43
void
44
f4 (void)
45
{
46
  int i = 0;
47
  --(typeof (++i, (int (*)[i])a)){&a + 1};
48
  if (i != 1)
49
    abort ();
50
}
51
 
52
void
53
f5 (void)
54
{
55
  int i = 0;
56
  (typeof (++i, (int (*)[i])a)){&a}++;
57
  if (i != 1)
58
    abort ();
59
}
60
 
61
int
62
main (void)
63
{
64
  f1 ();
65
  f2 ();
66
  f3 ();
67
  f4 ();
68
  f5 ();
69
  exit (0);
70
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.