PR fortran/14923
[official-gcc.git] / gcc / tree-alias-type.h
blob7740e9933d7c833b4e06354124e4903e58922961
1 #ifndef TREE_ALIAS_TYPE_H
2 #define TREE_ALIAS_TYPE_H
4 #include "varray.h"
6 union alias_var_def;
7 struct aterm_;
8 struct aterm_list_a;
9 enum alias_var_kind
11 ATERM_AVAR
13 struct alias_var_common GTY (())
15 enum alias_var_kind kind;
16 unsigned int varnum;
17 tree decl;
19 struct alias_var_aterm GTY (())
21 struct alias_var_common common;
22 struct aterm_ * GTY((skip (""))) term;
23 struct aterm_list_a *GTY ((skip (""))) ptset;
25 union alias_var_def GTY ((desc ("%0.common.kind")))
27 struct alias_var_common GTY ((tag ("-1"))) common;
28 struct alias_var_aterm GTY ((tag ("ATERM_AVAR"))) aterm;
30 typedef union alias_var_def *alias_var;
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;
40 alias_var alias_var_new_with_aterm (tree, struct aterm_ *);
41 #endif