diff options
Diffstat (limited to 'gcc/type-escaper.hpp')
-rw-r--r-- | gcc/type-escaper.hpp | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/gcc/type-escaper.hpp b/gcc/type-escaper.hpp index 8f6490fb47e..ba4818ff288 100644 --- a/gcc/type-escaper.hpp +++ b/gcc/type-escaper.hpp @@ -8,7 +8,7 @@ class TypeEscaper : public TypeWalker { public: - TypeEscaper(ptrset_t &p) : _ptrset(p), _inside_union(0) {}; + TypeEscaper(ptrset_t &p) : _ptrset(p), _inside_union(0), _inside_field(0), _inside_indirect_field(0) {}; void update(const_tree t, Reason r); void update_single_level(const_tree t, Reason r); ptrset_t get_sets(); @@ -16,16 +16,23 @@ public: typemap calc; void print_reasons(); private: - virtual void _walk_POINTER_TYPE_pre(const_tree t); - virtual void _walk_REFERENCE_TYPE_pre(const_tree t); - virtual void _walk_ARRAY_TYPE_pre(const_tree t); - virtual void _walk_RECORD_TYPE_pre(const_tree t); - virtual void _walk_UNION_TYPE_pre(const_tree t); - virtual void _walk_UNION_TYPE_post(const_tree t); - virtual void _walk_METHOD_TYPE_pre(const_tree t); - virtual void _walk_FUNCTION_TYPE_pre(const_tree t); + virtual void _walk_POINTER_TYPE_pre(const_tree t) final; + virtual void _walk_POINTER_TYPE_post(const_tree t) final; + virtual void _walk_REFERENCE_TYPE_pre(const_tree t) final; + virtual void _walk_ARRAY_TYPE_pre(const_tree t) final; + virtual void _walk_RECORD_TYPE_pre(const_tree t) final; + virtual void _walk_UNION_TYPE_pre(const_tree t) final; + virtual void _walk_UNION_TYPE_post(const_tree t) final; + virtual void _walk_METHOD_TYPE_pre(const_tree t) final; + virtual void _walk_FUNCTION_TYPE_pre(const_tree t) final; + virtual void _walk_METHOD_TYPE(const_tree t) final; + virtual void _walk_FUNCTION_TYPE(const_tree t) final; + virtual void _walk_field_pre(const_tree t) final; + virtual void _walk_field_post(const_tree t) final; virtual bool is_memoized(const_tree t); unsigned _inside_union; + unsigned _inside_field; + unsigned _inside_indirect_field; Reason _reason; void _update(const_tree t); void place_escaping_types_in_set(); |