aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/options.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/options.c')
-rw-r--r--gcc/fortran/options.c17
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)