summaryrefslogtreecommitdiff
path: root/gcc/gimple-escaper.hpp
blob: 38259a6393fea90232a8edc2a22223d3cf428ce1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once

#include "gimple-walker.hpp"
#include "expr-escaper.hpp"

class GimpleEscaper : public GimpleWalker
{
public:
  GimpleEscaper(ptrset_t types) : exprEscaper(types) { _init() };
private:
  typedef std::set<const_tree> undefset;
  undefset undefined;
  ExprEscaper exprEscaper;
  virtual void _walk_pre(const_tree) final;
  virtual void _walk_pre(gassign *s) final;
  virtual void _walk_pre(greturn *s) final;
  virtual void _walk_pre(gcond   *s) final;
  virtual void _walk_pre(gcall   *s) final;
}