* stabsread.c (rs6000_builtin_type): Make logical types be
[external/binutils.git] / gdb / gcc.patch
1 In the 2.3.2 release of gcc/g++, how the compiler handles resolving
2 multiple inheritance lattices was reworked to properly discover
3 ambiguities.  We recently found an example which causes this new
4 algorithm to fail in a very subtle way.  For the time being, this
5 patch will make the compiler use the old algorithm, which works for
6 the failing case we've found.  Note it will revert the compiler's
7 ability to properly deduce MI ambiguities in many cases (to its state
8 in 2.2.2 and 2.3.1).  This bug will be fixed in the next gcc/g++
9 release.
10
11 Brendan Kehoe (brendan@cygnus.com)
12
13 *** cp-search.c.~1~     Thu Feb 18 18:03:24 1993
14 --- cp-search.c Thu Feb 18 18:03:27 1993
15 ***************
16 *** 2389,2392 ****
17 --- 2389,2393 ----
18         if ((*qfn)(base_binfo))
19         {
20 + #if 0
21           if (fn == dfs_init_vbase_pointers)
22             {
23 ***************
24 *** 2464,2467 ****
25 --- 2465,2469 ----
26               saw_first_vbase = save_saw_first_vbase;
27             } else
28 + #endif
29               dfs_walk (base_binfo, fn, qfn);
30         }
31 *************** dfs_init_vbase_pointers (binfo)
32 *** 2658,2661 ****
33 --- 2660,2664 ----
34       return;
35   
36 + #if 0
37     this_vbase_ptr = vbase_decl_ptr_intermediate;
38   
39 *************** dfs_init_vbase_pointers (binfo)
40 *** 2662,2668 ****
41     if (TYPE_POINTER_TO (type) != TREE_TYPE (this_vbase_ptr))
42       my_friendly_abort (125);
43   
44 - #if 0
45     distance = get_base_distance (type, TREE_TYPE (vbase_decl), 0, &path);
46     if (distance == -2)
47       {
48 --- 2665,2672 ----
49     if (TYPE_POINTER_TO (type) != TREE_TYPE (this_vbase_ptr))
50       my_friendly_abort (125);
51 + #endif
52   
53     distance = get_base_distance (type, TREE_TYPE (vbase_decl), 0, &path);
54 + #if 0
55     if (distance == -2)
56       {
57 *************** dfs_init_vbase_pointers (binfo)
58 *** 2669,2672 ****
59 --- 2673,2677 ----
60         error ("inheritance lattice too complex below");
61       }
62 + #endif
63     while (path)
64       {
65 *************** dfs_init_vbase_pointers (binfo)
66 *** 2682,2685 ****
67 --- 2687,2691 ----
68       this_vbase_ptr = convert_pointer_to (type, vbase_decl_ptr);
69   
70 + #if 0
71     /* This happens when it is ambiguous. */
72     if (this_vbase_ptr == error_mark_node)