* remote.c, remote-utils.c: Use SERIAL_FLUSH_INPUT after opening it.
[deliverable/binutils-gdb.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)
This page took 0.031904 seconds and 4 git commands to generate.