Lint fixes from Paul Eggert (eggert@twinsun.com):
[deliverable/binutils-gdb.git] / gdb / gcc.patch
... / ...
CommitLineData
1In the 2.3.2 release of gcc/g++, how the compiler handles resolving
2multiple inheritance lattices was reworked to properly discover
3ambiguities. We recently found an example which causes this new
4algorithm to fail in a very subtle way. For the time being, this
5patch will make the compiler use the old algorithm, which works for
6the failing case we've found. Note it will revert the compiler's
7ability to properly deduce MI ambiguities in many cases (to its state
8in 2.2.2 and 2.3.1). This bug will be fixed in the next gcc/g++
9release.
10
11Brendan 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)
This page took 0.022194 seconds and 4 git commands to generate.