Basile Starynkevitch <bas...@starynkevitch.net> writes:

> What are exactly GCC code types, defined in gcc/coretypes.h?

They are types for which there was no obvious place to put them.

> Of course, they are very important types used in GCC. And there are
> probably wired in gengtype (but maybe not all of them; I didn't check
> for all; certainly gengtype handle tree & gimple specially in some
> way.).

gengtype only handles a few types specially.  There is no particular
connection between types recognized by gengtype and coretypes.h.
E.g., gengtype handles VEC specially, but it is not in coretypes.h.

> However, I don't understand why gimple_seq_node is a core type. It seems
> rarely used (outside of gimple*.[ch] files), and I would imagine it
> could be kept in gimple.h.

I agree.  I expect it's there just because gimple_seq is there.

> I also don't understand why 
>   union section;
>   typedef union section section;
>   struct cl_target_option;
>   struct cl_optimization;
> should be kept in gcc/coretypes.h

I don't know either.

> I could imagine that the transition to C++ might have to C++-ify these
> core types (all of gcc/coretypes.h) very quickly, or on the contrary to
> keep them as they are, without making a class of them, for a long time.

I don't think the transition to C++ will have to change any of these
types.  We should not make it a goal to convert all types to classes.

> Do we have a clear criterium to add, keep, or remove a type from
> gcc/coretypes.h?

No.

Ian

Reply via email to