+ emit_byte (w, 0);
+ emit_byte (w, sizeof (gpointer) + 1);
+ emit_byte (w, DW_LNE_set_address);
+ if (start_symbol)
+ emit_pointer_unaligned (w, start_symbol);
+ else
+ emit_pointer_value (w, code);
+
+ /*
+ * The prolog+initlocals region does not have a line number, this
+ * makes them belong to the first line of the method.
+ */
+ emit_byte (w, DW_LNS_advance_line);
+ //printf ("FIRST: %d %d %d\n", prev_line, loc->row, il_offset);
+ emit_sleb128 (w, (gint32)loc->row - (gint32)prev_line);
+ prev_line = loc->row;
+ prev_native_offset = i;
+ first = FALSE;
+ }
+
+ if (loc->row != prev_line) {
+ if (!prev_file_name || strcmp (loc->source_file, prev_file_name) != 0) {
+ /* Add an entry to the file table */
+ /* FIXME: Avoid duplicates */
+ if (w->collect_line_info)
+ file_index = get_line_number_file_name (w, loc->source_file) + 1;
+ else
+ file_index = emit_line_number_file_name (w, loc->source_file, 0, 0);
+ g_free (prev_file_name);
+ prev_file_name = g_strdup (loc->source_file);
+
+ if (w->cur_file_index != file_index) {