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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.old-deja/] [g++.bugs/] [900514_03.C] - Blame information for rev 154

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 149 jeremybenn
// { dg-do assemble  }
2
// g++ 1.37.1 bug 900514_03
3
 
4
// g++ fails to flag ERRORs on the following erroneous code.
5
 
6
// In Section 12.3.2 it says "Defining conversion by both a constructor and
7
// a conversion function can lead to ambiguities."  However in the case below,
8
// the explicit cast syntax disambiguates the constructor as one which
9
// invokes the type conversion operator rather than the conversion.
10
 
11
// NO, IT DOESN'T.  It's still ambiguous.  --jason 2002-12-03
12
 
13
// cfront 2.0 passes this test.
14
 
15
// keywords: user-defined type conversion operator, constructor
16
 
17
struct t_0_st_0;
18
 
19
struct t_0_st_1 {
20
  int member;
21
 
22
  t_0_st_1 (t_0_st_0&);// { dg-error "" }
23
  t_0_st_1 ();
24
};
25
 
26
struct t_0_st_0 {
27
  int member;
28
 
29
  operator t_0_st_1 ();// { dg-error "" }
30
};
31
 
32
t_0_st_0 t_0_st_0_obj0;
33
 
34
void t_0_assignment ()
35
{
36
  t_0_st_1 t_0_st_1_obj0;
37
  t_0_st_1 t_0_st_1_obj1;
38
  t_0_st_1 t_0_st_1_obj2;
39
 
40
  t_0_st_1_obj0 = t_0_st_0_obj0;                        // { dg-error "" } caught
41
  t_0_st_1_obj1 = t_0_st_1 (t_0_st_0_obj0);
42
}
43
 
44
void t_0_local_init ()
45
{
46
  t_0_st_1 t_0_st_1_obj0 = t_0_st_0_obj0;               // { dg-error "" }
47
  t_0_st_1 t_0_st_1_obj1 = t_0_st_1 (t_0_st_0_obj0);
48
}
49
 
50
struct t_1_st_0;
51
 
52
struct t_1_st_1 {
53
  int member;
54
 
55
  t_1_st_1 (t_1_st_0&);                                   // { dg-error "" }
56
  t_1_st_1 ();
57
  void operator= (t_1_st_1&);                             // { dg-error "" }
58
};
59
 
60
struct t_1_st_0 {
61
  int member;
62
 
63
  operator t_1_st_1 ();                                 // { dg-error "" }
64
};
65
 
66
t_1_st_0 t_1_st_0_obj0;
67
 
68
void t_1_assignment ()
69
{
70
  t_1_st_1 t_1_st_1_obj0;
71
  t_1_st_1 t_1_st_1_obj1;
72
  t_1_st_1 t_1_st_1_obj2;
73
 
74
  t_1_st_1_obj0 = t_1_st_0_obj0;                        // { dg-error "" }
75
  t_1_st_1_obj1 = t_1_st_1 (t_1_st_0_obj0);             // { dg-error "" }
76
}
77
 
78
void t_1_local_init ()
79
{
80
  t_1_st_1 t_1_st_1_obj0 = t_1_st_0_obj0;               // { dg-error "" }
81
  t_1_st_1 t_1_st_1_obj1 = t_1_st_1 (t_1_st_0_obj0);
82
}
83
 
84
struct t_2_st_0;
85
 
86
struct t_2_st_1 {
87
  int member;
88
 
89
  t_2_st_1 (t_2_st_0);          // { dg-error "" } candidate
90
  t_2_st_1 ();
91
};
92
 
93
struct t_2_st_0 {
94
  int member;
95
 
96
  operator t_2_st_1 ();         // { dg-error "" } candidate
97
};
98
 
99
t_2_st_0 t_2_st_0_obj0;
100
 
101
void t_2_assignment ()
102
{
103
  t_2_st_1 t_2_st_1_obj0;
104
  t_2_st_1 t_2_st_1_obj1;
105
  t_2_st_1 t_2_st_1_obj2;
106
 
107
  t_2_st_1_obj0 = t_2_st_0_obj0;                        // { dg-error "" } caught
108
  t_2_st_1_obj1 = t_2_st_1 (t_2_st_0_obj0);
109
}
110
 
111
void t_2_local_init ()
112
{
113
  t_2_st_1 t_2_st_1_obj0 = t_2_st_0_obj0;               // { dg-error "" }
114
  t_2_st_1 t_2_st_1_obj1 = t_2_st_1 (t_2_st_0_obj0);
115
}

powered by: WebSVN 2.1.0

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