aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2004-10-11 22:57:53 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2004-10-11 22:57:53 +0000
commitafd85c1ac4ae0d686477f3e80d3bb08016e92872 (patch)
tree980a15344f27f138adaec49d0e95863c6769d4fd
parent1ca939e5ec6e33f8016a99ffe673e647a06ed6f3 (diff)
downloadgcc-afd85c1ac4ae0d686477f3e80d3bb08016e92872.zip
gcc-afd85c1ac4ae0d686477f3e80d3bb08016e92872.tar.gz
gcc-afd85c1ac4ae0d686477f3e80d3bb08016e92872.tar.bz2
re PR other/17361 (gcc driver complains about C++ options when assembling)
PR other/17361 * c-opts.c (permit_fortran_options): Delete/obsolete global variable. (c_common_init_options): Remove #ifdef CL_F77 code. Scan command line options for "-lang-asm" and if found allow any of the C-family front-end options. (c_common_handle_option): Remove last use of permit_fortran_options. From-SVN: r88906
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/c-opts.c26
2 files changed, 21 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5d8d74d..4083910 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2004-10-11 Roger Sayle <roger@eyesopen.com>
+
+ PR other/17361
+ * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
+ (c_common_init_options): Remove #ifdef CL_F77 code. Scan command
+ line options for "-lang-asm" and if found allow any of the C-family
+ front-end options.
+ (c_common_handle_option): Remove last use of permit_fortran_options.
+
2004-10-11 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (print_operand): Support 'S' format flag.
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index 0377a5d..82932ce 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -100,9 +100,6 @@ static size_t deferred_count;
/* Number of deferred options scanned for -include. */
static size_t include_cursor;
-/* Permit Fortran front-end options. */
-static bool permit_fortran_options;
-
static void set_Wimplicit (int);
static void handle_OPT_d (const char *);
static void set_std_cxx98 (int);
@@ -194,10 +191,10 @@ defer_opt (enum opt_code code, const char *arg)
/* Common initialization before parsing options. */
unsigned int
-c_common_init_options (unsigned int argc, const char ** ARG_UNUSED (argv))
+c_common_init_options (unsigned int argc, const char **argv)
{
static const unsigned int lang_flags[] = {CL_C, CL_ObjC, CL_CXX, CL_ObjCXX};
- unsigned int result;
+ unsigned int i, result;
/* This is conditionalized only because that is the way the front
ends used to do it. Maybe this should be unconditional? */
@@ -230,16 +227,17 @@ c_common_init_options (unsigned int argc, const char ** ARG_UNUSED (argv))
result = lang_flags[c_language];
- /* If potentially preprocessing Fortran we have to accept its front
- end options since the driver passes most of them through. */
-#ifdef CL_F77
- if (c_language == clk_c && argc > 2
- && !strcmp (argv[2], "-traditional-cpp" ))
+ if (c_language == clk_c)
{
- permit_fortran_options = true;
- result |= CL_F77;
+ /* If preprocessing assembly language, accept any of the C-family
+ front end options since the driver may pass them through. */
+ for (i = 1; i < argc; i++)
+ if (! strcmp (argv[i], "-lang-asm"))
+ {
+ result |= CL_C | CL_ObjC | CL_CXX | CL_ObjCXX;
+ break;
+ }
}
-#endif
return result;
}
@@ -260,7 +258,7 @@ 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;
- result = permit_fortran_options;
+ result = 0;
break;
case OPT__output_pch_: