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:
parent
7a7d38044d
commit
69723be2b3
4 changed files with 39 additions and 5 deletions
|
@ -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
|
||||
|
|
19
gcc/c-opts.c
19
gcc/c-opts.c
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
14
gcc/testsuite/gcc.dg/pr25993.c
Normal file
14
gcc/testsuite/gcc.dg/pr25993.c
Normal 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
|
||||
|
Loading…
Add table
Reference in a new issue