Branch: Tag:

2011-09-05

2011-09-05 17:30:46 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler: Fixed resolving of external symbols in deep inherits. Fixes [bug 6063 (#6063)].

Thanks to 郭雪松 <zenothing@hotmail.com> for the bugreport.

3732:    optimize_program(Pike_compiler->new_program);    Pike_compiler->new_program->flags |= PROGRAM_FINISHED;    } +  } else { +  /* All references in prog are now known. +  * Fixup identifier overrides, so that inherit is safe. +  */ +  for (e = 0; e < prog->num_identifier_references; e++) { +  struct reference *ref = prog->identifier_references + e; +  if (ref->id_flags & ID_HIDDEN) continue; +  if (ref->inherit_offset != 0) continue; +  override_identifier (ref, ID_FROM_PTR (prog, ref)->name);    } -  +  }      #ifdef PIKE_DEBUG    if (prog) {