re PR c/25993 (-std= produces incorrect preprocessor output for .S)

gcc/
	PR c/25993
	* c-opts.c (c_common_handle_option): Ignore the -std options
	if the input language is assembly.

testsuite/
	PR c/25993
	* gcc.dg/pr25993.c: New test.

From-SVN: r117005
This commit is contained in:
Steven Bosscher 2006-09-17 13:14:53 +00:00
parent 7a7d38044d
commit 69723be2b3
4 changed files with 39 additions and 5 deletions

View file

@ -1,3 +1,9 @@
2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
PR c/25993
* c-opts.c (c_common_handle_option): Ignore the -std options
if the input language is assembly.
2006-09-17 Ira Rosen <irar@il.ibm.com>
PR tree-opt/21591

View file

@ -268,6 +268,10 @@ c_common_handle_option (size_t scode, const char *arg, int value)
enum opt_code code = (enum opt_code) scode;
int result = 1;
/* Prevent resetting the language standard to a C dialect when the driver
has already determined that we're looking at assembler input. */
bool preprocessing_asm_p = (cpp_get_options (parse_in)->lang == CLK_ASM);
switch (code)
{
default:
@ -905,29 +909,34 @@ c_common_handle_option (size_t scode, const char *arg, int value)
case OPT_std_c__98:
case OPT_std_gnu__98:
set_std_cxx98 (code == OPT_std_c__98 /* ISO */);
if (!preprocessing_asm_p)
set_std_cxx98 (code == OPT_std_c__98 /* ISO */);
break;
case OPT_std_c89:
case OPT_std_iso9899_1990:
case OPT_std_iso9899_199409:
set_std_c89 (code == OPT_std_iso9899_199409 /* c94 */, true /* ISO */);
if (!preprocessing_asm_p)
set_std_c89 (code == OPT_std_iso9899_199409 /* c94 */, true /* ISO */);
break;
case OPT_std_gnu89:
set_std_c89 (false /* c94 */, false /* ISO */);
if (!preprocessing_asm_p)
set_std_c89 (false /* c94 */, false /* ISO */);
break;
case OPT_std_c99:
case OPT_std_c9x:
case OPT_std_iso9899_1999:
case OPT_std_iso9899_199x:
set_std_c99 (true /* ISO */);
if (!preprocessing_asm_p)
set_std_c99 (true /* ISO */);
break;
case OPT_std_gnu99:
case OPT_std_gnu9x:
set_std_c99 (false /* ISO */);
if (!preprocessing_asm_p)
set_std_c99 (false /* ISO */);
break;
case OPT_trigraphs:

View file

@ -1,3 +1,8 @@
2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
PR c/25993
* gcc.dg/pr25993.c: New test.
2006-09-17 Ira Rosen <irar@il.ibm.com>
PR tree-opt/21591

View file

@ -0,0 +1,14 @@
/* { dg-do assemble { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-std=c99 -x assembler-with-cpp" } */
#ifndef __ASSEMBLER__
extern int func(void);
#else
.global func
.type func,%function
.align 4
func:
ret
.size func,.-func
#endif