]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR other/17361 (gcc driver complains about C++ options when assembling)
authorRoger Sayle <roger@eyesopen.com>
Mon, 11 Oct 2004 22:57:53 +0000 (22:57 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Mon, 11 Oct 2004 22:57:53 +0000 (22:57 +0000)
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

gcc/ChangeLog
gcc/c-opts.c

index 5d8d74db8faf6ce3dc170113f157e6d832c44ae3..4083910e1d89f0868c88d1f9b9b072475caa0af2 100644 (file)
@@ -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.
index 0377a5d3fee41d1f0ac6294fb66e8166a3b30d6e..82932cec4f3a66ea296f7bf5b1a13d5774f2875f 100644 (file)
@@ -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_: