This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Does "complex xxx" work?
- From: "Joseph S. Myers" <jsm28 at cam dot ac dot uk>
- To: "H. J. Lu" <hjl at lucon dot org>
- Cc: gcc at gcc dot gnu dot org
- Date: Sat, 21 Jun 2003 20:55:28 +0100 (BST)
- Subject: Re: Does "complex xxx" work?
- References: <20030621172429.GA25184@lucon.org>
On Sat, 21 Jun 2003, H. J. Lu wrote:
> c_common_nodes_and_builtins calls
>
> (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
> get_identifier ("complex int"),
> complex_integer_type_node));
> (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
> get_identifier ("complex float"),
> complex_float_type_node));
> (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
> get_identifier ("complex double"),
> complex_double_type_node));
> (*lang_hooks.decls.pushdecl)
> (build_decl (TYPE_DECL, get_identifier ("complex long double"),
> complex_long_double_type_node));
Debug information, I suspect. (As names with spaces in, they can't appear
as identifiers in source code, so shouldn't be useful for anything else.)
The keywords are _Complex (C99), __complex (traditional GNU) and
__complex__ (traditional GNU) and "complex" is a macro in <complex.h>
only.
Some of the types with spaces in are defined for C++ only ("unsigned long"
as opposed to "long unsigned int", ...) - again, I suppose these
definitions may be for debug info, as they aren't related to source
parsing - but I don't know whether in fact they should be C++-only: those
conditionals simply reflect merging similar but nonidentical code defining
built-in types in the C and C++ front ends.
--
Joseph S. Myers
jsm28@cam.ac.uk