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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [Wcxx-compat-6.c] - Blame information for rev 801

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
/* { dg-do compile } */
2
/* { dg-options "-Wc++-compat" } */
3
enum E1 { A, B, C };
4
enum E2 { D, E, F };
5
 
6
enum E1 v1a = A;
7
enum E1 v1b = D;                /* { dg-warning "invalid in C\[+\]\[+\]" } */
8
enum E1 v1c = 0;         /* { dg-warning "invalid in C\[+\]\[+\]" } */
9
enum E1 v1d = (enum E1) 0;
10
enum E1 v1e = (enum E2) 0;       /* { dg-warning "invalid in C\[+\]\[+\]" } */
11
 
12
enum E2 v2a;
13
 
14
enum E1 a1[] =
15
{
16
  A,
17
  D,                            /* { dg-warning "invalid in C\[+\]\[+\]" } */
18
  0,                             /* { dg-warning "invalid in C\[+\]\[+\]" } */
19
  (enum E1) 0,
20
  (enum E2) 0,                   /* { dg-warning "invalid in C\[+\]\[+\]" } */
21
  A
22
};
23
 
24
struct s1
25
{
26
  enum E1 e1;
27
};
28
 
29
struct s1 a2[] =
30
{
31
  { A },
32
  { D },                        /* { dg-warning "invalid in C\[+\]\[+\]" } */
33
  { 0 },                 /* { dg-warning "invalid in C\[+\]\[+\]" } */
34
  { (enum E1) 0 },
35
  { (enum E2) 0 },               /* { dg-warning "invalid in C\[+\]\[+\]" } */
36
  { A }
37
};
38
 
39
struct s1 a3[] =
40
{
41
  [ 5 ] = { .e1 = A },
42
  [ 4 ] = { .e1 = D },          /* { dg-warning "invalid in C\[+\]\[+\]" } */
43
  [ 3 ] = { .e1 = 0 },           /* { dg-warning "invalid in C\[+\]\[+\]" } */
44
  [ 2 ] = { .e1 = (enum E1) 0 },
45
  [ 1 ] = { .e1 = (enum E2) 0 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
46
  [ 0 ] = { .e1 = A }
47
};
48
 
49
struct s2
50
{
51
  enum E1 e1 : 3;
52
};
53
 
54
struct s2 a4[] =
55
{
56
  { A },
57
  { D },                        /* { dg-warning "invalid in C\[+\]\[+\]" } */
58
  { 0 },                 /* { dg-warning "invalid in C\[+\]\[+\]" } */
59
  { (enum E1) 0 },
60
  { (enum E2) 0 },               /* { dg-warning "invalid in C\[+\]\[+\]" } */
61
  { A }
62
};
63
 
64
struct s2 a5[] =
65
{
66
  [ 5 ] = { .e1 = A },
67
  [ 4 ] = { .e1 = D },          /* { dg-warning "invalid in C\[+\]\[+\]" } */
68
  [ 3 ] = { .e1 = 0 },           /* { dg-warning "invalid in C\[+\]\[+\]" } */
69
  [ 2 ] = { .e1 = (enum E1) 0 },
70
  [ 1 ] = { .e1 = (enum E2) 0 }, /* { dg-warning "invalid in C\[+\]\[+\]" } */
71
  [ 0 ] = { .e1 = A }
72
};
73
 
74
void
75
f(enum E1 e1, enum E2 e2, struct s1 vs1, struct s1 *vp1)
76
{
77
  enum E1 va1[] = {
78
    e1,
79
    e2,                         /* { dg-warning "invalid in C\[+\]\[+\]" } */
80
    v1a,
81
    v2a,                        /* { dg-warning "invalid in C\[+\]\[+\]" } */
82
    vs1.e1,
83
    vp1->e1,
84
    e1 ? e1 : e1,
85
    (0, e1)
86
  };
87
 
88
  struct s1 va2[] = {
89
    { e1 },
90
    { e2 },                     /* { dg-warning "invalid in C\[+\]\[+\]" } */
91
    { v1a },
92
    { v2a },                    /* { dg-warning "invalid in C\[+\]\[+\]" } */
93
    { vs1.e1 },
94
    { vp1->e1 },
95
    { e1 ? e1 : e1 },
96
    { (0, e1) }
97
  };
98
 
99
  struct s2 va3[] = {
100
    { e1 },
101
    { e2 },                     /* { dg-warning "invalid in C\[+\]\[+\]" } */
102
    { v1a },
103
    { v2a },                    /* { dg-warning "invalid in C\[+\]\[+\]" } */
104
    { vs1.e1 },
105
    { vp1->e1 },
106
    { e1 ? e1 : e1 },
107
    { (0, e1) }
108
  };
109
}
110
 
111
/* Match all extra informative notes.  */
112
/* { dg-warning "near initialization for" "expected" { target *-*-* } 0 } */

powered by: WebSVN 2.1.0

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