Next: , Previous: Header Dirs, Up: Top


16 Memory Management and Type Information

GCC uses some fairly sophisticated memory management techniques, which involve determining information about GCC's data structures from GCC's source code and using this information to perform garbage collection and implement precompiled headers.

A full C parser would be too overcomplicated for this task, so a limited subset of C is interpreted and special markers are used to determine what parts of the source to look at. The parser can also detect simple typedefs of the form typedef struct ID1 *ID2; and typedef int ID3;, and these don't need to be specially marked.

The two forms that do need to be marked are:

struct ID1 GTY(([options]))
{
  [fields]
};

typedef struct ID2 GTY(([options]))
{
  [fields]
} ID3;