summaryrefslogtreecommitdiff
path: root/gcc/expr-escaper.hpp
diff options
context:
space:
mode:
authorErick Ochoa <erick.ochoa@theobroma-systems.com>2020-06-03 15:11:58 +0200
committerErick Ochoa <erick.ochoa@theobroma-systems.com>2020-09-08 09:00:45 +0200
commit1815a94ae683faa52bdc6f28c7bda7042aa6ea60 (patch)
treeba353ff991d9abda2c76ff065bc48f01f0e8dce6 /gcc/expr-escaper.hpp
parent9a7da7ea57520057721600935f295d8cecd28860 (diff)
Expr-escaper
Diffstat (limited to 'gcc/expr-escaper.hpp')
-rw-r--r--gcc/expr-escaper.hpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/expr-escaper.hpp b/gcc/expr-escaper.hpp
new file mode 100644
index 00000000000..3f4688669b6
--- /dev/null
+++ b/gcc/expr-escaper.hpp
@@ -0,0 +1,31 @@
+#include "ipa-hello-world.h"
+#include "expr-walker.hpp"
+
+class ExprEscaper : public ExprWalker
+{
+public:
+ ExprEscaper() {};
+ void update(const_tree t, Reason r);
+ static TypeEscaper *typeEscaper;
+private:
+ Reason _r;
+ virtual void _walk_pre(const_tree e);
+};
+
+void
+ExprEscaper::update(const_tree t, Reason r)
+{
+ gcc_assert(t);
+ _r = r;
+ walk(t);
+}
+
+void
+ExprEscaper::_walk_pre(const_tree e)
+{
+ const_tree t = TREE_TYPE(e);
+ gcc_assert(t);
+ typeEscaper->update(t, _r);
+}
+
+