diff options
Diffstat (limited to 'gcc/fortran/options.c')
-rw-r--r-- | gcc/fortran/options.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index ebce409..a39876b 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -172,6 +172,8 @@ bool gfc_post_options (const char **pfilename) { const char *filename = *pfilename; + char *source_path; + int i; /* Verify the input file name. */ if (!filename || strcmp (filename, "-") == 0) @@ -181,6 +183,21 @@ gfc_post_options (const char **pfilename) gfc_source_file = filename; + /* Adds the path where the source file is to the list of include files. */ + + i = strlen(gfc_source_file); + while (i > 0 && !IS_DIR_SEPARATOR(gfc_source_file[i])) + i--; + if (i != 0) + { + source_path = alloca (i + 1); + memcpy (source_path, gfc_source_file, i); + source_path[i] = 0; + gfc_add_include_path (source_path); + } + else + gfc_add_include_path ("."); + /* Decide which form the file will be read in as. */ if (gfc_option.source_form != FORM_UNKNOWN) |