This is the mail archive of the gas2@sourceware.cygnus.com mailing list for the gas2 project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
I found that listings in gas (dd. 940823) can get thoroughly confused about line numbers when processing included files (or cpp generated directives). -pk *** /usr/local/src/gnu/ARCHIVE/gas-940823/gas/listing.c Fri May 27 18:55:56 1994 --- ./listing.c Mon Aug 29 15:58:51 1994 *************** *** 301,312 **** char *file; unsigned int line; static unsigned int last_line = 0xffff; list_info_type *new; as_where (&file, &line); ! if (line != last_line) { last_line = line; new_frag (); new = (list_info_type *) xmalloc (sizeof (list_info_type)); --- 249,262 ---- char *file; unsigned int line; static unsigned int last_line = 0xffff; + static char *last_file = NULL; list_info_type *new; as_where (&file, &line); ! if (line != last_line || last_file && file && strcmp(file, last_file)) { last_line = line; + last_file = file; new_frag (); new = (list_info_type *) xmalloc (sizeof (list_info_type)); *************** *** 728,734 **** --- 678,688 ---- if (S_GET_NAME (ptr) && strlen (S_GET_NAME (ptr)) != 0) { if (ptr->sy_frag->line == 0 + #ifdef notyet && S_GET_SEGMENT (ptr) != reg_section) + #else + && !S_IS_REGISTER(ptr)) + #endif { if (!got_some) { *************** *** 885,896 **** print_source (current_hll_file, list, buffer, width); } ! p = buffer_line (list->file, buffer, width); ! if (!((listing & LISTING_NODEBUG) && debugging_pseudo (p))) ! { ! print_lines (list, p, calc_hex (list)); ! } if (list->edict == EDICT_EJECT) { --- 839,853 ---- print_source (current_hll_file, list, buffer, width); } ! while (list->file->file && ! list->file->linenum < list->line && !list->file->end_pending) { ! p = buffer_line (list->file, buffer, width); ! if (!((listing & LISTING_NODEBUG) && debugging_pseudo (p))) ! { ! print_lines (list, p, calc_hex (list)); ! } ! } if (list->edict == EDICT_EJECT) { *************** *** 900,906 **** else { ! p = buffer_line (list->file, buffer, width); } list = list->next; --- 857,865 ---- else { ! while (list->file->file && ! list->file->linenum < list->line && !list->file->end_pending) ! p = buffer_line (list->file, buffer, width); } list = list->next;