home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / gdb-4.12-src.lha / GNU / src / amiga / gdb-4.12 / gdb / gcc.patch < prev    next >
Text File  |  1994-02-03  |  2KB  |  73 lines

  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)
  73.