OSDN Git Service

* doc/install.texi (Prerequisites): Update documentation of
[pf3gnuchains/gcc-fork.git] / gcc / tree-alias-type.h
1 #ifndef TREE_ALIAS_TYPE_H
2 #define TREE_ALIAS_TYPE_H
3
4 #include "varray.h"
5
6 union alias_var_def;
7 struct aterm_;
8 struct aterm_list_a;
9 enum alias_var_kind
10 {
11   ATERM_AVAR
12 };
13 struct alias_var_common  GTY (())
14 {
15   enum alias_var_kind kind;
16   unsigned int varnum;
17   tree decl;
18 };
19 struct alias_var_aterm GTY (())
20 {
21   struct alias_var_common common;
22   struct aterm_ * GTY((skip (""))) term;
23   struct aterm_list_a *GTY ((skip (""))) ptset;
24 };
25 union alias_var_def GTY ((desc ("%0.common.kind")))
26 {
27   struct alias_var_common GTY ((tag ("-1"))) common;
28   struct alias_var_aterm GTY ((tag ("ATERM_AVAR"))) aterm;
29 };
30 typedef union alias_var_def *alias_var;
31
32 #define ALIAS_VAR_KIND(x) ((x)->common.kind)
33 #define ALIAS_VAR_VARNUM(x) ((x)->common.varnum)
34 #define ALIAS_VAR_DECL(x) ((x)->common.decl)
35 #define ALIAS_VAR_ATERM(x) ((x)->aterm.term)
36 #define ALIAS_VAR_PTSET(x) ((x)->aterm.ptset)
37 union alias_type_def;
38 typedef union alias_type_def *alias_type;
39
40 alias_var alias_var_new_with_aterm (tree, struct aterm_ *);
41 #endif