diff options
author | David Edelsohn <edelsohn@gnu.org> | 2002-12-30 18:21:49 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2002-12-30 13:21:49 -0500 |
commit | c73aecdfc05847ecdea447746bb5204348924e07 (patch) | |
tree | a7e2c0278fb3c367bff74a5ef818b20bbada47d5 /gcc | |
parent | b599b1359143a1c023c873114a62ee8c903cc2e0 (diff) | |
download | gcc-c73aecdfc05847ecdea447746bb5204348924e07.zip gcc-c73aecdfc05847ecdea447746bb5204348924e07.tar.gz gcc-c73aecdfc05847ecdea447746bb5204348924e07.tar.bz2 |
parser.c (cp_parser_parameter_declaration_clause): Treat system header as extern "C" if NO_IMPLICIT_EXTERN_C undefined.
* parser.c (cp_parser_parameter_declaration_clause): Treat system
header as extern "C" if NO_IMPLICIT_EXTERN_C undefined.
From-SVN: r60639
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/parser.c | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 75ea230..ccc942e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2002-12-30 David Edelsohn <edelsohn@gnu.org> + + * parser.c (cp_parser_parameter_declaration_clause): Treat system + header as extern "C" if NO_IMPLICIT_EXTERN_C undefined. + 2002-12-30 Nathanael Nerode <neroden@gcc.gnu.org> * config-lang.in, Make-lang.in, operators.def, cp-tree.def: diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 70bf5ef..9474250 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -10558,7 +10558,15 @@ cp_parser_parameter_declaration_clause (parser) } else if (token->type == CPP_CLOSE_PAREN) /* There are no parameters. */ - return void_list_node; + { +#ifndef NO_IMPLICIT_EXTERN_C + if (in_system_header && current_class_type == NULL + && current_lang_name == lang_name_c) + return NULL_TREE; + else +#endif + return void_list_node; + } /* Check for `(void)', too, which is a special case. */ else if (token->keyword == RID_VOID && (cp_lexer_peek_nth_token (parser->lexer, 2)->type |