record_line (current_subfile, line, check_cu_functions (address, cu));
lh->file_names[file - 1].included_p = 1; if (!decode_for_pst_p) {  record_line (current_subfile, line, check_cu_functions (address, cu)); }
dwarf_decode_lines (struct line_header *lh, char *comp_dir, bfd *abfd,		    struct dwarf2_cu *cu){  char *line_ptr;  char *line_end;  unsigned int bytes_read;  unsigned char op_code, extended_op, adj_opcode;  CORE_ADDR baseaddr;  struct objfile *objfile = cu->objfile;  baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));  line_ptr = lh->statement_program_start;  line_end = lh->statement_program_end;  /* Read the statement sequences until there's nothing left.  */  while (line_ptr < line_end)    {      /* state machine registers  */      CORE_ADDR address = 0;      unsigned int file = 1;      unsigned int line = 1;      unsigned int column = 0;      int is_stmt = lh->default_is_stmt;      int basic_block = 0;      int end_sequence = 0;      /* Start a subfile for the current file of the state machine.  */      if (lh->num_file_names >= file)	{	  /* lh->include_dirs and lh->file_names are 0-based, but the	     directory and file name numbers in the statement program	     are 1-based.  */          struct file_entry *fe = &lh->file_names[file - 1];          char *dir;          if (fe->dir_index)            dir = lh->include_dirs[fe->dir_index - 1];          else            dir = comp_dir;	  dwarf2_start_subfile (fe->name, dir);	}      /* Decode the table. */      while (!end_sequence)	{	  op_code = read_1_byte (abfd, line_ptr);	  line_ptr += 1;	  if (op_code >= lh->opcode_base)	    {		/* Special operand.  */	      adj_opcode = op_code - lh->opcode_base;	      address += (adj_opcode / lh->line_range)		* lh->minimum_instruction_length;	      line += lh->line_base + (adj_opcode % lh->line_range);	      /* append row to matrix using current values */	      record_line (current_subfile, line, 	                   check_cu_functions (address, cu));	      basic_block = 1;	    }	  else switch (op_code)	    {	    case DW_LNS_extended_op:	      line_ptr += 1;	/* ignore length */	      extended_op = read_1_byte (abfd, line_ptr);	      line_ptr += 1;	      switch (extended_op)		{		case DW_LNE_end_sequence:		  end_sequence = 1;		  record_line (current_subfile, 0, address);		  break;		case DW_LNE_set_address:		  address = read_address (abfd, line_ptr, cu, &bytes_read);		  line_ptr += bytes_read;		  address += baseaddr;		  break;		case DW_LNE_define_file:                  {                    char *cur_file;                    unsigned int dir_index, mod_time, length;                                        cur_file = read_string (abfd, line_ptr, &bytes_read);                    line_ptr += bytes_read;                    dir_index =                      read_unsigned_leb128 (abfd, line_ptr, &bytes_read);                    line_ptr += bytes_read;                    mod_time =                      read_unsigned_leb128 (abfd, line_ptr, &bytes_read);                    line_ptr += bytes_read;                    length =                      read_unsigned_leb128 (abfd, line_ptr, &bytes_read);                    line_ptr += bytes_read;                    add_file_name (lh, cur_file, dir_index, mod_time, length);                  }		  break;		default:		  complaint (&symfile_complaints,			     "mangled .debug_line section");		  return;		}	      break;	    case DW_LNS_copy:	      record_line (current_subfile, line, 	                   check_cu_functions (address, cu));	      basic_block = 0;	      break;	    case DW_LNS_advance_pc:	      address += lh->minimum_instruction_length		* read_unsigned_leb128 (abfd, line_ptr, &bytes_read);	      line_ptr += bytes_read;	      break;	    case DW_LNS_advance_line:	      line += read_signed_leb128 (abfd, line_ptr, &bytes_read);	      line_ptr += bytes_read;	      break;	    case DW_LNS_set_file:              {                /* lh->include_dirs and lh->file_names are 0-based,                   but the directory and file name numbers in the                   statement program are 1-based.  */                struct file_entry *fe;                char *dir;                file = read_unsigned_leb128 (abfd, line_ptr, &bytes_read);                line_ptr += bytes_read;                fe = &lh->file_names[file - 1];                if (fe->dir_index)                  dir = lh->include_dirs[fe->dir_index - 1];                else                  dir = comp_dir;                dwarf2_start_subfile (fe->name, dir);              }	      break;	    case DW_LNS_set_column:	      column = read_unsigned_leb128 (abfd, line_ptr, &bytes_read);	      line_ptr += bytes_read;	      break;	    case DW_LNS_negate_stmt:	      is_stmt = (!is_stmt);	      break;	    case DW_LNS_set_basic_block:	      basic_block = 1;	      break;	    /* Add to the address register of the state machine the	       address increment value corresponding to special opcode	       255.  Ie, this value is scaled by the minimum instruction	       length since special opcode 255 would have scaled the	       the increment.  */	    case DW_LNS_const_add_pc:	      address += (lh->minimum_instruction_length			  * ((255 - lh->opcode_base) / lh->line_range));	      break;	    case DW_LNS_fixed_advance_pc:	      address += read_2_bytes (abfd, line_ptr);	      line_ptr += 2;	      break;	    default:	      {  /* Unknown standard opcode, ignore it.  */		int i;		for (i = 0; i < lh->standard_opcode_lengths[op_code]; i++)		  {		    (void) read_unsigned_leb128 (abfd, line_ptr, &bytes_read);		    line_ptr += bytes_read;		  }	      }	    }	}    }}