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
This commit is contained in:
Roger Sayle 2004-10-11 22:57:53 +00:00 committed by Roger Sayle
parent 1ca939e5ec
commit afd85c1ac4
2 changed files with 21 additions and 14 deletions

View 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.

View 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_: