lex.c (real_yylex): Refer to __complex instead of complex.

* lex.c (real_yylex): Refer to __complex instead of complex.

-Wed Jul 16 15:57:42 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
-
-       * parse.y (empty_parms): Only use VOID_LIST_NODE for the PARMS if
-       we're in a C++ struct/class, not if we're doing xtern "C"'.
-

and regenerate parse.c.

From-SVN: r14885
This commit is contained in:
Jason Merrill 1997-08-21 21:52:56 -04:00
parent b4f32d7b12
commit 8eeda2ecd5
5 changed files with 3765 additions and 3716 deletions

View File

@ -1,3 +1,7 @@
Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com>
* lex.c (real_yylex): Refer to __complex instead of complex.
Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
* lex.c (real_yylex): Don't use getc directly.
@ -200,11 +204,6 @@ Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com>
* lex.c (do_scoped_id): convert_from_reference.
* init.c (build_offset_ref): Likewise.
Wed Jul 16 15:57:42 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
* parse.y (empty_parms): Only use VOID_LIST_NODE for the PARMS if
we're in a C++ struct/class, not if we're doing `extern "C"'.
Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com>
* error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
@ -526,8 +525,7 @@ Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
* hash.h: Regenerate.
* lex.h (rid): Add RID_COMPLEX.
(RID_LAST_MODIFIER): Set to RID_COMPLEX.
* lex.c (init_lex): Add building of RID_COMPLEX. Unset reserved
word "complex" if -fno-gnu-keywords.
* lex.c (init_lex): Add building of RID_COMPLEX.
(real_yylex): General cleanup in line with what c-lex.c also has,
sans the cruft for traditional; add handling of SPEC_IMAG, complex
types, and imaginary numeric constants.

View File

@ -7,8 +7,20 @@
for more information.
* New flags -Wsign-promo, -Wno-pmf-conversion.
* local static variables in extern inline functions will be shared between
translation units.
* Standard usage syntax for the std namespace is supported; std is treated
as an alias for global scope. General namespaces are still not supported.
* -fvtable-thunks is supported for all targets, and is the default for
Linux with glibc (libc 6 on x86).
* Default function arguments in templates will not be evaluated (or
checked for semantic validity) unless they are needed.
checked for semantic validity) unless they are needed. Default arguments
in class bodies will not be parsed until the class definition is complete.
* The -ftemplate-depth-NN flag can be used to increase the maximum
recursive template instantiation depth, defaulting to 17. If you need

View File

@ -663,7 +663,7 @@ init_lex ()
ridpointers[(int) RID_REGISTER] = get_identifier ("register");
SET_IDENTIFIER_AS_LIST (ridpointers[(int) RID_REGISTER],
build_tree_list (NULL_TREE, ridpointers[(int) RID_REGISTER]));
ridpointers[(int) RID_COMPLEX] = get_identifier ("complex");
ridpointers[(int) RID_COMPLEX] = get_identifier ("__complex");
SET_IDENTIFIER_AS_LIST (ridpointers[(int) RID_COMPLEX],
build_tree_list (NULL_TREE, ridpointers[(int) RID_COMPLEX]));
@ -833,8 +833,6 @@ init_lex ()
UNSET_RESERVED_WORD ("signature");
UNSET_RESERVED_WORD ("sigof");
}
if (flag_no_gnu_keywords)
UNSET_RESERVED_WORD ("complex");
if (flag_no_asm || flag_no_gnu_keywords)
UNSET_RESERVED_WORD ("typeof");
if (! flag_operator_names)
@ -3843,7 +3841,7 @@ real_yylex ()
cp_convert (integer_type_node,
yylval.ttype));
else
error ("complex integer constant is too wide for `complex int'");
error ("complex integer constant is too wide for `__complex int'");
}
}

File diff suppressed because it is too large Load Diff

View File

@ -88,10 +88,7 @@ empty_parms ()
tree parms;
if (strict_prototype
/* Only go ahead with using the void list node if we're actually
parsing a class in C++, not a struct in extern "C" mode. */
|| (current_class_type != NULL
&& current_lang_name == lang_name_cplusplus))
|| current_class_type != NULL)
parms = void_list_node;
else
parms = NULL_TREE;