summaryrefslogtreecommitdiff
path: root/gcc/c-opts.c
diff options
context:
space:
mode:
authorfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-04 08:29:16 +0000
committerfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-04 08:29:16 +0000
commit5f1220947c1397909f7faa88331c7875c6e03810 (patch)
tree4d84eda381e6ccb216977e5d703d88994573c9d3 /gcc/c-opts.c
parentf3a67091bbfd62cdd8db2c909489c57173b16403 (diff)
downloadgcc-5f1220947c1397909f7faa88331c7875c6e03810.tar.gz
PR fortran/18452
* gcc/fortran/lang-specs.h: Pass -lang-fortran to the preprocessor. * gcc/c.opt: Add a -lang-fortran option. * gcc/c-opts.c: Add a lang_fortran flag. (c_common_init_options): Handling the -lang-fortran option. (c_common_handle_option): Add a case for Fortran options in preprocessing. Remove cases for -ffixed-form and -ffixed-line-length. Add a case for -lang-fortran. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106483 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-opts.c')
-rw-r--r--gcc/c-opts.c27
1 files changed, 20 insertions, 7 deletions
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index b0efaf4a61b..62db668b4e1 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -70,6 +70,9 @@ static bool deps_seen;
/* If -v seen. */
static bool verbose;
+/* If -lang-fortran seen. */
+static bool lang_fortran = false;
+
/* Dependency output file. */
static const char *deps_file;
@@ -237,6 +240,15 @@ c_common_init_options (unsigned int argc, const char **argv)
result |= CL_C | CL_ObjC | CL_CXX | CL_ObjCXX;
break;
}
+
+#ifdef CL_Fortran
+ for (i = 1; i < argc; i++)
+ if (! strcmp (argv[i], "-lang-fortran"))
+ {
+ result |= CL_Fortran;
+ break;
+ }
+#endif
}
return result;
@@ -258,6 +270,10 @@ c_common_handle_option (size_t scode, const char *arg, int value)
default:
if (cl_options[code].flags & (CL_C | CL_CXX | CL_ObjC | CL_ObjCXX))
break;
+#ifdef CL_Fortran
+ if (lang_fortran && (cl_options[code].flags & (CL_Fortran)))
+ break;
+#endif
result = 0;
break;
@@ -651,13 +667,6 @@ c_common_handle_option (size_t scode, const char *arg, int value)
cpp_opts->extended_identifiers = value;
break;
- case OPT_ffixed_form:
- case OPT_ffixed_line_length_:
- /* Fortran front end options ignored when preprocessing only. */
- if (!flag_preprocess_only)
- result = 0;
- break;
-
case OPT_ffor_scope:
flag_new_for_scope = value;
break;
@@ -833,6 +842,10 @@ c_common_handle_option (size_t scode, const char *arg, int value)
cpp_opts->dollars_in_ident = false;
break;
+ case OPT_lang_fortran:
+ lang_fortran = true;
+ break;
+
case OPT_lang_objc:
cpp_opts->objc = 1;
break;