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/] [900121_02.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.36.1 bug 900121_02
3
 
4
// Assignment of structs is defined as memberwise assignment,
5
// however g++ (1.36.2) and Cfront 2.0 differ on the definition
6
// of assignment for unions.
7
 
8
// (NOTE: Stroustrup now says that assignment of unions which contain either
9
// members or sub-members (base classes are not allowed for unions) which
10
// have non-default assignment operators defined for them will be illegal
11
// in future.)
12
 
13
// g++ (1.36.2) on the other hand, accepts this program without errors.
14
 
15
// keywords: unions, operator=, inheritance, members
16
 
17
struct s0 {
18
 
19
  int i;
20
 
21
  void operator= (s0 & arg)
22
  {
23
    this->i = arg.i;
24
  }
25
};
26
 
27
struct s1 {
28
 
29
  double d;
30
 
31
  void operator= (s1 & arg)
32
  {
33
    this->d = arg.d;
34
  }
35
};
36
 
37
union u0 {
38
  s0 u0_member_0;               // { dg-error "" }
39
  s1 u0_member_1;               // { dg-error "" }
40
};
41
 
42
void function ()
43
{
44
  u0 u0_object_0;
45
  u0 u0_object_1;
46
 
47
  u0_object_0 = u0_object_1;
48
}
49
 
50
int main () { return 0; }

powered by: WebSVN 2.1.0

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