struct tree_decl_minimalDECL macros to work.  The fields it contains are a unique ID,
source location, context, and name.
     struct tree_decl_commonstruct tree_decl_minimal.  It
contains fields that most DECL nodes need, such as a field to
store alignment, machine mode, size, and attributes.
     struct tree_field_declstruct tree_decl_common.  It is
used to represent FIELD_DECL.
     struct tree_label_declstruct tree_decl_common.  It is
used to represent LABEL_DECL.
     struct tree_translation_unit_declstruct tree_decl_common.  It is
used to represent TRANSLATION_UNIT_DECL.
     struct tree_decl_with_rtlstruct tree_decl_common.  It
contains a field to store the low-level RTL associated with a
DECL node.
     struct tree_result_declstruct tree_decl_with_rtl.  It is
used to represent RESULT_DECL.
     struct tree_const_declstruct tree_decl_with_rtl.  It is
used to represent CONST_DECL.
     struct tree_parm_declstruct tree_decl_with_rtl.  It is
used to represent PARM_DECL.
     struct tree_decl_with_visstruct tree_decl_with_rtl.  It
contains fields necessary to store visibility information, as well as
a section name and assembler name.
     struct tree_var_declstruct tree_decl_with_vis.  It is
used to represent VAR_DECL.
     struct tree_function_declstruct tree_decl_with_vis.  It is
used to represent FUNCTION_DECL.