#include "gfortran.h"
#include "match.h"
#include "parse.h"
-#include "debug.h"
/* Current statement label. Zero means no statement label. Because new_st
can get wiped during statement matching, we have to keep it separate. */
break;
}
- if (gfc_define_undef_line ())
- continue;
-
st = (gfc_current_form == FORM_FIXED) ? next_fixed () : next_free ();
if (st != ST_NONE)
gfc_statement st;
locus prog_locus;
- /* If the debugger wants the name of the main source file,
- we give it. */
- if (debug_hooks->start_end_main_source_file)
- (*debug_hooks->start_source_file) (0, gfc_source_file);
-
top.state = COMP_NONE;
top.sym = NULL;
top.previous = NULL;
goto loop;
done:
- if (debug_hooks->start_end_main_source_file)
- (*debug_hooks->end_source_file) (0);
-
return SUCCESS;
duplicate_main:
#include "system.h"
#include "gfortran.h"
#include "toplev.h"
-#include "debug.h"
-#include "flags.h"
/* Structure for holding module and include file search path. */
typedef struct gfc_directorylist
return;
}
- if (gfc_current_locus.lb->next)
- {
- if (gfc_current_locus.lb->file->next
- && gfc_current_locus.lb->file->up == gfc_current_locus.lb->file->next)
- /* We exit from an included file. */
- (*debug_hooks->end_source_file)
- (gfc_linebuf_linenum (gfc_current_locus.lb->next));
- else if (gfc_current_locus.lb->next->file != gfc_current_locus.lb->file)
- /* We enter into a new file. */
- (*debug_hooks->start_source_file)
- (gfc_linebuf_linenum (gfc_current_locus.lb),
- gfc_current_locus.lb->next->file->filename);
- }
-
gfc_current_locus.lb = gfc_current_locus.lb->next;
if (gfc_current_locus.lb != NULL)
}
-int
-gfc_define_undef_line (void)
-{
- /* All lines beginning with '#' are either #define or #undef. */
- if (! (debug_info_level == DINFO_LEVEL_VERBOSE
- && (write_symbols == DWARF2_DEBUG
- || write_symbols == VMS_AND_DWARF2_DEBUG))
- || gfc_peek_char () != '#')
- return 0;
-
- if (strncmp (gfc_current_locus.nextc, "#define ", 8) == 0)
- (*debug_hooks->define) (gfc_linebuf_linenum (gfc_current_locus.lb),
- &(gfc_current_locus.nextc[8]));
-
- if (strncmp (gfc_current_locus.nextc, "#undef ", 7) == 0)
- (*debug_hooks->undef) (gfc_linebuf_linenum (gfc_current_locus.lb),
- &(gfc_current_locus.nextc[7]));
-
- /* Skip the rest of the line. */
- skip_comment_line ();
-
- return 1;
-}
-
-
/* Comment lines are null lines, lines containing only blanks or lines
on which the first nonblank line is a '!'.
Return true if !$ openmp conditional compilation sentinel was
if (line[0] == '#')
{
- /* When -g3 is specified, it's possible that we emit #define
- and #undef lines, which we need to pass to the middle-end
- so that it can emit correct debug info. */
- if (debug_info_level == DINFO_LEVEL_VERBOSE
- && (write_symbols == DWARF2_DEBUG
- || write_symbols == VMS_AND_DWARF2_DEBUG)
- && (strncmp (line, "#define ", 8) == 0
- || strncmp (line, "#undef ", 7) == 0))
- ;
- else
- {
- preprocessor_line (line);
- continue;
- }
+ preprocessor_line (line);
+ continue;
}
/* Preprocessed files have preprocessor lines added before the byte