Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How can I get function templates specializations? #1874

Open
xware-net opened this issue Oct 1, 2024 · 2 comments
Open

How can I get function templates specializations? #1874

xware-net opened this issue Oct 1, 2024 · 2 comments

Comments

@xware-net
Copy link

Brief Description

How can I get function templates specializations (similar to class templates specializations)?
I am using the following code:

            foreach (var template in sourceUnit.Templates)
            {
                if (template is FunctionTemplate ft)
                {
                    foreach(var specialization in ft.Specializations) // always ft.Specializations is empty !!!
                    {
                    }
                }
                else if (template is ClassTemplate ct)
                {
                    foreach (var specialization in ct.Specializations) // ct.Specializations gives back the correct results !!!
                    {
                    }
               }
               else if (template is VarTemplate)
               {
               }
               else if (template is TypeAliasTemplate)
               {
               }
               else
               {
               }

Kind regards,
Mircea Troi

OS: Windows / OS X / Linux (include version and/or distro)

Windows, latest version.

Used headers
Used settings

Target: MSVC/GCC/Clang

MSVC

Other settings

Stack trace or incompilable generated code
@tritao
Copy link
Collaborator

tritao commented Oct 2, 2024

It's been a while since I touched that, but I just took a quick look and I think what you're looking for might be under Function: https://github.com/mono/CppSharp/blob/main/src/AST/Function.cs#L218

@xware-net
Copy link
Author

xware-net commented Oct 4, 2024

It looks that is also empty. If you look in dumped AST you can see:

|-FunctionTemplateDecl 0x13c2b601a60 <line:2153:1, line:2156:1> line:2153:42 may_move_bytes
| |-TemplateTypeParmDecl 0x13c2b601878 <col:11, col:17> col:17 referenced class depth 0 index 0 T
| |-FunctionDecl 0x13c2b6019b8 <col:20, line:2156:1> line:2153:42 constexpr may_move_bytes 'bool ()' inline
| | `-CompoundStmt 0x13c2b601c30 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b601c20 <line:2155:3, col:31>
| |     `-DependentScopeDeclRefExpr 0x13c2b601be8 <col:10, col:31> '<dependent type>' lvalue
| |       `-NestedNameSpecifier TypeSpec 'ida_movable_type<T>'
| |-FunctionDecl 0x13c2b613738 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'unsigned long long'
| | | `-BuiltinType 0x13c28548060 'unsigned long long'
| | `-CompoundStmt 0x13c2b614390 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b614380 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b614368 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b614338 <col:10, col:31> 'const bool' lvalue Var 0x13c2b613b88 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<unsigned long long>'
| |-FunctionDecl 0x13c2b62cc18 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'long long'
| | | `-BuiltinType 0x13c28547fc0 'long long'
| | `-CompoundStmt 0x13c2b62d870 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b62d860 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b62d848 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b62d818 <col:10, col:31> 'const bool' lvalue Var 0x13c2b62d068 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<long long>'
| |-FunctionDecl 0x13c2b65c978 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'int'
| | | `-BuiltinType 0x13c28547f80 'int'
| | `-CompoundStmt 0x13c2b65d5d0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b65d5c0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b65d5a8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b65d578 <col:10, col:31> 'const bool' lvalue Var 0x13c2b65cdc8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<int>'
| |-FunctionDecl 0x13c2b675d78 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'bool'
| | | `-BuiltinType 0x13c28547f00 'bool'
| | `-CompoundStmt 0x13c2b6769d0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b6769c0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b6769a8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b676978 <col:10, col:31> 'const bool' lvalue Var 0x13c2b6761c8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<bool>'
| |-FunctionDecl 0x13c2b6ac9a8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'char'
| | | `-BuiltinType 0x13c28547f20 'char'
| | `-CompoundStmt 0x13c2b6ad600 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b6ad5f0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b6ad5d8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b6ad5a8 <col:10, col:31> 'const bool' lvalue Var 0x13c2b6acdf8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<char>'
| |-FunctionDecl 0x13c2b6e7328 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'unsigned char'
| | | `-BuiltinType 0x13c28547fe0 'unsigned char'
| | `-CompoundStmt 0x13c2b6e7f80 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b6e7f70 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b6e7f58 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b6e7f28 <col:10, col:31> 'const bool' lvalue Var 0x13c2b6e7778 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<unsigned char>'
| |-FunctionDecl 0x13c2b740f88 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'wchar_t'
| | | `-BuiltinType 0x13c28548480 'wchar_t'
| | `-CompoundStmt 0x13c2b741be0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b741bd0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b741bb8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b741b88 <col:10, col:31> 'const bool' lvalue Var 0x13c2b7413d8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<wchar_t>'
| |-FunctionDecl 0x13c2b788bc0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'qstring'
| | | `-RecordType 0x13c2b6b5f50 'qstring'
| | |   `-CXXRecord 0x13c2b6b5ec0 'qstring'
| | `-CompoundStmt 0x13c2b789820 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b789810 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b7897f8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b7897c8 <col:10, col:31> 'const bool' lvalue Var 0x13c2b789018 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<qstring>'
| |-FunctionDecl 0x13c2b7a1e50 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'qwstring'
| | | `-RecordType 0x13c2b74a3e0 'qwstring'
| | |   `-CXXRecord 0x13c2b74a350 'qwstring'
| | `-CompoundStmt 0x13c2b7a2af0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b7a2ae0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b7a2ac8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b7a2a98 <col:10, col:31> 'const bool' lvalue Var 0x13c2b7a22a8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<qwstring>'
| |-FunctionDecl 0x13c2b7f1940 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'channel_redir_t'
| | | `-RecordType 0x13c2b7df130 'channel_redir_t'
| | |   `-CXXRecord 0x13c2b7df0a0 'channel_redir_t'
| | `-CompoundStmt 0x13c2b7f25d0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b7f25c0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b7f25a8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b7f2578 <col:10, col:31> 'const bool' lvalue Var 0x13c2b7f1dc8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<channel_redir_t>'
| |-FunctionDecl 0x13c2b80fb18 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'cliopt_t'
| | | `-RecordType 0x13c2b7fc770 'cliopt_t'
| | |   `-CXXRecord 0x13c2b7fc6d8 'cliopt_t'
| | `-CompoundStmt 0x13c2b80fdc8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b80fdb8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b80fda0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b80fd70 <col:10, col:31> 'const bool' lvalue Var 0x13c2b7fdba0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<cliopt_t>'
| |-FunctionDecl 0x13c2b82f270 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'plugin_option_t'
| | | `-RecordType 0x13c2b81bf90 'plugin_option_t'
| | |   `-CXXRecord 0x13c2b81c548 'plugin_option_t'
| | `-CompoundStmt 0x13c2b82f528 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b82f518 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b82f500 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b82f4d0 <col:10, col:31> 'const bool' lvalue Var 0x13c2b81ee70 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<plugin_option_t>'
| |-FunctionDecl 0x13c2b8745a8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'range_t'
| | | `-RecordType 0x13c2b85f920 'range_t'
| | |   `-CXXRecord 0x13c2b85fe28 'range_t'
| | `-CompoundStmt 0x13c2b874858 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b874848 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b874830 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b874800 <col:10, col:31> 'const bool' lvalue Var 0x13c2b8640a0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<range_t>'
| |-FunctionDecl 0x13c2b89e510 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'rangeset_t'
| | | `-RecordType 0x13c2b87df50 'rangeset_t'
| | |   `-CXXRecord 0x13c2b881ba8 'rangeset_t'
| | `-CompoundStmt 0x13c2b89e7c8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b89e7b8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b89e7a0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b89e770 <col:10, col:31> 'const bool' lvalue Var 0x13c2b88e4f0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<rangeset_t>'
| |-FunctionDecl 0x13c2b8c2c08 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'const rangeset_t *'
| | | `-PointerType 0x13c2b87ee20 'const rangeset_t *'
| | |   `-QualType 0x13c2b87df51 'const rangeset_t' const
| | |     `-RecordType 0x13c2b87df50 'rangeset_t'
| | |       `-CXXRecord 0x13c2b881ba8 'rangeset_t'
| | `-CompoundStmt 0x13c2b8c3890 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b8c3880 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b8c3868 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b8c3838 <col:10, col:31> 'const bool' lvalue Var 0x13c2b8c3088 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<const rangeset_t *>'
| |-FunctionDecl 0x13c2b9ed268 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'refinfo_desc_t'
| | | `-RecordType 0x13c2b9dba70 'refinfo_desc_t'
| | |   `-CXXRecord 0x13c2b9db9e0 'refinfo_desc_t'
| | `-CompoundStmt 0x13c2b9ed518 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2b9ed508 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2b9ed4f0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2b9ed4c0 <col:10, col:31> 'const bool' lvalue Var 0x13c2b9dcb00 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<refinfo_desc_t>'
| |-FunctionDecl 0x13c2ba8e9c0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'compiled_binpat_t'
| | | `-RecordType 0x13c2ba7c700 'compiled_binpat_t'
| | |   `-CXXRecord 0x13c2ba7c670 'compiled_binpat_t'
| | `-CompoundStmt 0x13c2ba8ec78 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2ba8ec68 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2ba8ec50 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2ba8ec20 <col:10, col:31> 'const bool' lvalue Var 0x13c2ba7e150 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<compiled_binpat_t>'
| |-FunctionDecl 0x13c2bad8c40 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'simpleline_t'
| | | `-RecordType 0x13c2bb08fe0 'simpleline_t'
| | |   `-CXXRecord 0x13c2bb08f48 'simpleline_t'
| | `-CompoundStmt 0x13c2bad98d0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bad98c0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bad98a8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bad9878 <col:10, col:31> 'const bool' lvalue Var 0x13c2bad90c8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<simpleline_t>'
| |-FunctionDecl 0x13c2bb91738 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'sync_source_t'
| | | `-RecordType 0x13c2bb7e290 'sync_source_t'
| | |   `-CXXRecord 0x13c2bb7e200 'sync_source_t'
| | `-CompoundStmt 0x13c2bb919e8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bb919d8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bb919c0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bb91990 <col:10, col:31> 'const bool' lvalue Var 0x13c2bb81120 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<sync_source_t>'
| |-FunctionDecl 0x13c2bbb2110 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'twinline_t'
| | | `-RecordType 0x13c2bb9e780 'twinline_t'
| | |   `-CXXRecord 0x13c2bb9e6e8 'twinline_t'
| | `-CompoundStmt 0x13c2bbb23c8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bbb23b8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bbb23a0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bbb2370 <col:10, col:31> 'const bool' lvalue Var 0x13c2bba1d80 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<twinline_t>'
| |-FunctionDecl 0x13c2bbd0fc8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'const twinline_t *'
| | | `-PointerType 0x13c2bb9ec10 'const twinline_t *'
| | |   `-QualType 0x13c2bb9e781 'const twinline_t' const
| | |     `-RecordType 0x13c2bb9e780 'twinline_t'
| | |       `-CXXRecord 0x13c2bb9e6e8 'twinline_t'
| | `-CompoundStmt 0x13c2bbd1c50 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bbd1c40 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bbd1c28 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bbd1bf8 <col:10, col:31> 'const bool' lvalue Var 0x13c2bbd1448 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<const twinline_t *>'
| |-FunctionDecl 0x13c2bbfa100 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'section_lines_refs_t'
| | | `-RecordType 0x13c2bbc15c0 'section_lines_refs_t'
| | |   `-CXXRecord 0x13c2bbc1528 'section_lines_refs_t'
| | `-CompoundStmt 0x13c2bbfad90 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bbfad80 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bbfad68 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bbfad38 <col:10, col:31> 'const bool' lvalue Var 0x13c2bbfa588 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<section_lines_refs_t>'
| |-FunctionDecl 0x13c29e2dd08 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'const line_rendering_output_entry_t *'
| | | `-PointerType 0x13c2bc051e0 'const line_rendering_output_entry_t *'
| | |   `-QualType 0x13c2bc046b1 'const line_rendering_output_entry_t' const
| | |     `-RecordType 0x13c2bc046b0 'line_rendering_output_entry_t'
| | |       `-CXXRecord 0x13c2bc04618 'line_rendering_output_entry_t'
| | `-CompoundStmt 0x13c29e2e990 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c29e2e980 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c29e2e968 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c29e2e938 <col:10, col:31> 'const bool' lvalue Var 0x13c29e2e188 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<const line_rendering_output_entry_t *>'
| |-FunctionDecl 0x13c2bd25bd0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'svalvec_t'
| | | `-RecordType 0x13c2b61cd00 'svalvec_t'
| | |   `-CXXRecord 0x13c2b61cc70 'svalvec_t'
| | `-CompoundStmt 0x13c2bd26860 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bd26850 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bd26838 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bd26808 <col:10, col:31> 'const bool' lvalue Var 0x13c2bd26058 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<svalvec_t>'
| |-FunctionDecl 0x13c2be6e8a8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'reg_info_t'
| | | `-RecordType 0x13c2be5c4b0 'reg_info_t'
| | |   `-CXXRecord 0x13c2be5c420 'reg_info_t'
| | `-CompoundStmt 0x13c2be6eb58 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2be6eb48 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2be6eb30 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2be6eb00 <col:10, col:31> 'const bool' lvalue Var 0x13c2be5e1e0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<reg_info_t>'
| |-FunctionDecl 0x13c2be89f08 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'reg_access_t'
| | | `-RecordType 0x13c2be77cb0 'reg_access_t'
| | |   `-CXXRecord 0x13c2be77c18 'reg_access_t'
| | `-CompoundStmt 0x13c2be8a1b8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2be8a1a8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2be8a190 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2be8a160 <col:10, col:31> 'const bool' lvalue Var 0x13c2be79220 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<reg_access_t>'
| |-FunctionDecl 0x13c2bef2630 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'intvec_t'
| | | `-RecordType 0x13c2b64caf0 'intvec_t'
| | |   `-CXXRecord 0x13c2b64ca58 'intvec_t'
| | `-CompoundStmt 0x13c2bef32c0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bef32b0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bef3298 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bef3268 <col:10, col:31> 'const bool' lvalue Var 0x13c2bef2ab8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<intvec_t>'
| |-FunctionDecl 0x13c2bf523e0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'intmap_t'
| | | `-RecordType 0x13c2befbbe0 'intmap_t'
| | |   `-CXXRecord 0x13c2befbb50 'intmap_t'
| | `-CompoundStmt 0x13c2bf53070 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bf53060 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bf53048 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bf53018 <col:10, col:31> 'const bool' lvalue Var 0x13c2bf52868 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<intmap_t>'
| |-FunctionDecl 0x13c2bf93950 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'node_set_t'
| | | `-RecordType 0x13c2bf5d860 'node_set_t'
| | |   `-CXXRecord 0x13c2bf5d7d0 'node_set_t'
| | `-CompoundStmt 0x13c2bf945e0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bf945d0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bf945b8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bf94588 <col:10, col:31> 'const bool' lvalue Var 0x13c2bf93dd8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<node_set_t>'
| |-FunctionDecl 0x13c2bfc0460 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'qbasic_block_t'
| | | `-RecordType 0x13c2bfaae70 'qbasic_block_t'
| | |   `-CXXRecord 0x13c2bfaadd8 'qbasic_block_t'
| | `-CompoundStmt 0x13c2bfc10f0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bfc10e0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bfc10c8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bfc1098 <col:10, col:31> 'const bool' lvalue Var 0x13c2bfc08e8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<qbasic_block_t>'
| |-FunctionDecl 0x13c2bfe9b90 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'idp_name_t'
| | | `-RecordType 0x13c2bfd7f60 'idp_name_t'
| | |   `-CXXRecord 0x13c2bfd7ec8 'idp_name_t'
| | `-CompoundStmt 0x13c2bfe9e48 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2bfe9e38 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2bfe9e20 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2bfe9df0 <col:10, col:31> 'const bool' lvalue Var 0x13c2bfd98c0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<idp_name_t>'
| |-FunctionDecl 0x13c2c004cf8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'idp_desc_t'
| | | `-RecordType 0x13c2bff27d0 'idp_desc_t'
| | |   `-CXXRecord 0x13c2bff2740 'idp_desc_t'
| | `-CompoundStmt 0x13c2c004fa8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c004f98 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c004f80 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c004f50 <col:10, col:31> 'const bool' lvalue Var 0x13c2bff4980 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<idp_desc_t>'
| |-FunctionDecl 0x13c2c0214c8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'const snapshot_t *'
| | | `-PointerType 0x13c2bca3c10 'const snapshot_t *'
| | |   `-QualType 0x13c2bacf5d1 'const snapshot_t' const
| | |     `-RecordType 0x13c2bacf5d0 'snapshot_t'
| | |       `-CXXRecord 0x13c2c02a7d0 'snapshot_t'
| | `-CompoundStmt 0x13c2c022150 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c022140 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c022128 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c0220f8 <col:10, col:31> 'const bool' lvalue Var 0x13c2c021948 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<const snapshot_t *>'
| |-FunctionDecl 0x13c2c055780 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'ea_name_t'
| | | `-RecordType 0x13c2c0439b0 'ea_name_t'
| | |   `-CXXRecord 0x13c2c043920 'ea_name_t'
| | `-CompoundStmt 0x13c2c055a38 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c055a28 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c055a10 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c0559e0 <col:10, col:31> 'const bool' lvalue Var 0x13c2c0455a0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<ea_name_t>'
| |-FunctionDecl 0x13c2c0a7e10 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'type_attr_t'
| | | `-RecordType 0x13c2c095ed0 'type_attr_t'
| | |   `-CXXRecord 0x13c2c095e38 'type_attr_t'
| | `-CompoundStmt 0x13c2c0a80c8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c0a80b8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c0a80a0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c0a8070 <col:10, col:31> 'const bool' lvalue Var 0x13c2c0979e0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<type_attr_t>'
| |-FunctionDecl 0x13c2c11dd20 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'argloc_t'
| | | `-RecordType 0x13c2bd95370 'argloc_t'
| | |   `-CXXRecord 0x13c2c0bed40 'argloc_t'
| | `-CompoundStmt 0x13c2c11dfd8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c11dfc8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c11dfb0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c11df80 <col:10, col:31> 'const bool' lvalue Var 0x13c2c10dde0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<argloc_t>'
| |-FunctionDecl 0x13c2c13a420 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'argpart_t'
| | | `-RecordType 0x13c2c126990 'argpart_t'
| | |   `-CXXRecord 0x13c2c126900 'argpart_t'
| | `-CompoundStmt 0x13c2c13a6d8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c13a6c8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c13a6b0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c13a680 <col:10, col:31> 'const bool' lvalue Var 0x13c2c12a1e0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<argpart_t>'
| |-FunctionDecl 0x13c2c212770 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'tinfo_t'
| | | `-RecordType 0x13c2ba03350 'tinfo_t'
| | |   `-CXXRecord 0x13c2c1cce18 'tinfo_t'
| | `-CompoundStmt 0x13c2c212a28 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c212a18 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c212a00 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c2129d0 <col:10, col:31> 'const bool' lvalue Var 0x13c2c202800 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<tinfo_t>'
| |-FunctionDecl 0x13c2c268a68 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'simd_info_t'
| | | `-RecordType 0x13c2bd90190 'simd_info_t'
| | |   `-CXXRecord 0x13c2c21b320 'simd_info_t'
| | `-CompoundStmt 0x13c2c268d18 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c268d08 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c268cf0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c268cc0 <col:10, col:31> 'const bool' lvalue Var 0x13c2c21e6a0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<simd_info_t>'
| |-FunctionDecl 0x13c2c28a050 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'funcarg_t'
| | | `-RecordType 0x13c2bd95630 'funcarg_t'
| | |   `-CXXRecord 0x13c2c2781e8 'funcarg_t'
| | `-CompoundStmt 0x13c2c28a308 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c28a2f8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c28a2e0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c28a2b0 <col:10, col:31> 'const bool' lvalue Var 0x13c2c279a80 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<funcarg_t>'
| |-FunctionDecl 0x13c2c2a9fb0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'enum_member_t'
| | | `-RecordType 0x13c2c297070 'enum_member_t'
| | |   `-CXXRecord 0x13c2c296fe0 'enum_member_t'
| | `-CompoundStmt 0x13c2c2aa268 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c2aa258 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c2aa240 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c2aa210 <col:10, col:31> 'const bool' lvalue Var 0x13c2c299ae0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<enum_member_t>'
| |-FunctionDecl 0x13c2c309a20 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'regobj_t'
| | | `-RecordType 0x13c2c2d7f90 'regobj_t'
| | |   `-CXXRecord 0x13c2c2d7f00 'regobj_t'
| | `-CompoundStmt 0x13c2c309cd8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c309cc8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c309cb0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c309c80 <col:10, col:31> 'const bool' lvalue Var 0x13c2c2d9190 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<regobj_t>'
| |-FunctionDecl 0x13c2c332650 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'valstr_t'
| | | `-RecordType 0x13c2c31ded0 'valstr_t'
| | |   `-CXXRecord 0x13c2c31de38 'valstr_t'
| | `-CompoundStmt 0x13c2c332908 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c3328f8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c3328e0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c3328b0 <col:10, col:31> 'const bool' lvalue Var 0x13c2c322360 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<valstr_t>'
| |-FunctionDecl 0x13c2c34d588 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'unsigned int'
| | | `-BuiltinType 0x13c28548020 'unsigned int'
| | `-CompoundStmt 0x13c2c34e210 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c34e200 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c34e1e8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c34e1b8 <col:10, col:31> 'const bool' lvalue Var 0x13c2c34da08 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<unsigned int>'
| |-FunctionDecl 0x13c2c627cb0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'lvar_saved_info_t'
| | | `-RecordType 0x13c2c612f10 'lvar_saved_info_t'
| | |   `-CXXRecord 0x13c2c612e78 'lvar_saved_info_t'
| | `-CompoundStmt 0x13c2c627f68 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c627f58 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c627f40 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c627f10 <col:10, col:31> 'const bool' lvalue Var 0x13c2c6177b0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<lvar_saved_info_t>'
| |-FunctionDecl 0x13c2c6adb90 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'bitset_t'
| | | `-RecordType 0x13c2c692880 'bitset_t'
| | |   `-CXXRecord 0x13c2c6927f0 'bitset_t'
| | `-CompoundStmt 0x13c2c6ade48 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c6ade38 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c6ade20 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c6addf0 <col:10, col:31> 'const bool' lvalue Var 0x13c2c69dca0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<bitset_t>'
| |-FunctionDecl 0x13c2c6f8960 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'ivlset_t'
| | | `-RecordType 0x13c2c6da9f0 'ivlset_t'
| | |   `-CXXRecord 0x13c2c6da958 'ivlset_t'
| | `-CompoundStmt 0x13c2c6f8c18 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c6f8c08 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c6f8bf0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c6f8bc0 <col:10, col:31> 'const bool' lvalue Var 0x13c2c6e86b0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<ivlset_t>'
| |-FunctionDecl 0x13c2c71b2f0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'mlist_t'
| | | `-RecordType 0x13c2c511e70 'mlist_t'
| | |   `-CXXRecord 0x13c2c702b98 'mlist_t'
| | `-CompoundStmt 0x13c2c71b5a8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c71b598 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c71b580 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c71b550 <col:10, col:31> 'const bool' lvalue Var 0x13c2c70b2b0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<mlist_t>'
| |-FunctionDecl 0x13c2c76da80 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'mcallarg_t'
| | | `-RecordType 0x13c2c759770 'mcallarg_t'
| | |   `-CXXRecord 0x13c2c7596e0 'mcallarg_t'
| | `-CompoundStmt 0x13c2c76dd38 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c76dd28 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c76dd10 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c76dce0 <col:10, col:31> 'const bool' lvalue Var 0x13c2c75d690 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<mcallarg_t>'
| |-FunctionDecl 0x13c2c7c88d8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'block_chains_t'
| | | `-RecordType 0x13c2c7b3520 'block_chains_t'
| | |   `-CXXRecord 0x13c2c7b3490 'block_chains_t'
| | `-CompoundStmt 0x13c2c7c9560 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c7c9550 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c7c9538 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c7c9508 <col:10, col:31> 'const bool' lvalue Var 0x13c2c7c8d58 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<block_chains_t>'
| |-FunctionDecl 0x13c2c805720 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'hexwarn_t'
| | | `-RecordType 0x13c2c7f2b80 'hexwarn_t'
| | |   `-CXXRecord 0x13c2c7f2af0 'hexwarn_t'
| | `-CompoundStmt 0x13c2c8059d8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c8059c8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c8059b0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c805980 <col:10, col:31> 'const bool' lvalue Var 0x13c2c7f5310 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<hexwarn_t>'
| |-FunctionDecl 0x13c2c92c800 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'cfuncptr_t'
| | | `-RecordType 0x13c2c91a6f0 'cfuncptr_t'
| | |   `-CXXRecord 0x13c2c91a660 'cfuncptr_t'
| | `-CompoundStmt 0x13c2c92d490 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c92d480 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c92d468 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c92d438 <col:10, col:31> 'const bool' lvalue Var 0x13c2c92cc88 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<cfuncptr_t>'
| |-FunctionDecl 0x13c2c951428 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'history_item_t'
| | | `-RecordType 0x13c2c93f3f0 'history_item_t'
| | |   `-CXXRecord 0x13c2c93f360 'history_item_t'
| | `-CompoundStmt 0x13c2c9520b0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c9520a0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c952088 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c952058 <col:10, col:31> 'const bool' lvalue Var 0x13c2c9518a8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<history_item_t>'
| |-FunctionDecl 0x13c2c976cd0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'ui_stroff_op_t'
| | | `-RecordType 0x13c2c965400 'ui_stroff_op_t'
| | |   `-CXXRecord 0x13c2c965368 'ui_stroff_op_t'
| | `-CompoundStmt 0x13c2c976f88 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2c976f78 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2c976f60 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2c976f30 <col:10, col:31> 'const bool' lvalue Var 0x13c2c966930 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<ui_stroff_op_t>'
| |-FunctionDecl 0x13c2cb00e70 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'ioport_bit_t'
| | | `-RecordType 0x13c2caaf480 'ioport_bit_t'
| | |   `-CXXRecord 0x13c2caaf3f0 'ioport_bit_t'
| | `-CompoundStmt 0x13c2cb01128 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cb01118 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cb01100 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cb010d0 <col:10, col:31> 'const bool' lvalue Var 0x13c2cab0a20 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<ioport_bit_t>'
| |-FunctionDecl 0x13c2cb1bb50 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'ioport_t'
| | | `-RecordType 0x13c2cb09ab0 'ioport_t'
| | |   `-CXXRecord 0x13c2cb09a20 'ioport_t'
| | `-CompoundStmt 0x13c2cb1be08 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cb1bdf8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cb1bde0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cb1bdb0 <col:10, col:31> 'const bool' lvalue Var 0x13c2cb0b870 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<ioport_t>'
| |-FunctionDecl 0x13c2cb5cca0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'idc_global_t'
| | | `-RecordType 0x13c2cb4af50 'idc_global_t'
| | |   `-CXXRecord 0x13c2cb4aeb8 'idc_global_t'
| | `-CompoundStmt 0x13c2cb5cf58 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cb5cf48 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cb5cf30 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cb5cf00 <col:10, col:31> 'const bool' lvalue Var 0x13c2cb4cb30 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<idc_global_t>'
| |-FunctionDecl 0x13c2cbb97d8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'direntry_t'
| | | `-RecordType 0x13c2cba75e0 'direntry_t'
| | |   `-CXXRecord 0x13c2cba7548 'direntry_t'
| | `-CompoundStmt 0x13c2cbb9a88 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cbb9a78 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cbb9a60 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cbb9a30 <col:10, col:31> 'const bool' lvalue Var 0x13c2cba90f0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<direntry_t>'
| |-FunctionDecl 0x13c2cbd78f8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'dirtree_cursor_t'
| | | `-RecordType 0x13c2cbc40e0 'dirtree_cursor_t'
| | |   `-CXXRecord 0x13c2cbc4048 'dirtree_cursor_t'
| | `-CompoundStmt 0x13c2cbd7ba8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cbd7b98 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cbd7b80 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cbd7b50 <col:10, col:31> 'const bool' lvalue Var 0x13c2cbc7630 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<dirtree_cursor_t>'
| |-FunctionDecl 0x13c2cc26198 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'fixup_info_t'
| | | `-RecordType 0x13c2cc142f0 'fixup_info_t'
| | |   `-CXXRecord 0x13c2cc14258 'fixup_info_t'
| | `-CompoundStmt 0x13c2cc26448 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cc26438 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cc26420 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cc263f0 <col:10, col:31> 'const bool' lvalue Var 0x13c2cc15130 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<fixup_info_t>'
| |-FunctionDecl 0x13c2cc77968 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'xreflist_entry_t'
| | | `-RecordType 0x13c2cc63d30 'xreflist_entry_t'
| | |   `-CXXRecord 0x13c2cc63c98 'xreflist_entry_t'
| | `-CompoundStmt 0x13c2cc77c18 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cc77c08 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cc77bf0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cc77bc0 <col:10, col:31> 'const bool' lvalue Var 0x13c2cc67200 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<xreflist_entry_t>'
| |-FunctionDecl 0x13c2cc9c948 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'edge_t'
| | | `-RecordType 0x13c2cc8aa90 'edge_t'
| | |   `-CXXRecord 0x13c2cc8a9f8 'edge_t'
| | `-CompoundStmt 0x13c2cc9cbf8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cc9cbe8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cc9cbd0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cc9cba0 <col:10, col:31> 'const bool' lvalue Var 0x13c2cc8c2d0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<edge_t>'
| |-FunctionDecl 0x13c2ccfc7a8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'point_t'
| | | `-RecordType 0x13c2cca8200 'point_t'
| | |   `-CXXRecord 0x13c2cca8168 'point_t'
| | `-CompoundStmt 0x13c2ccfca58 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2ccfca48 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2ccfca30 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2ccfca00 <col:10, col:31> 'const bool' lvalue Var 0x13c2ccaa910 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<point_t>'
| |-FunctionDecl 0x13c2cd277f8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'selection_item_t'
| | | `-RecordType 0x13c2bc7f1c0 'selection_item_t'
| | |   `-CXXRecord 0x13c2cd13ce0 'selection_item_t'
| | `-CompoundStmt 0x13c2cd28480 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cd28470 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cd28458 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cd28428 <col:10, col:31> 'const bool' lvalue Var 0x13c2cd27c78 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<selection_item_t>'
| |-FunctionDecl 0x13c2cd4b5d0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'row_info_t'
| | | `-RecordType 0x13c2cd39ac0 'row_info_t'
| | |   `-CXXRecord 0x13c2cd39a30 'row_info_t'
| | `-CompoundStmt 0x13c2cd4c260 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cd4c250 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cd4c238 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cd4c208 <col:10, col:31> 'const bool' lvalue Var 0x13c2cd4ba58 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<row_info_t>'
| |-FunctionDecl 0x13c2cd7bc78 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'rect_t'
| | | `-RecordType 0x13c2cd06a90 'rect_t'
| | |   `-CXXRecord 0x13c2cd069f8 'rect_t'
| | `-CompoundStmt 0x13c2cd7bf28 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cd7bf18 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cd7bf00 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cd7bed0 <col:10, col:31> 'const bool' lvalue Var 0x13c2cd0d920 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<rect_t>'
| |-FunctionDecl 0x13c2cd9b710 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'group_crinfo_t'
| | | `-RecordType 0x13c2cd8a100 'group_crinfo_t'
| | |   `-CXXRecord 0x13c2cd8a070 'group_crinfo_t'
| | `-CompoundStmt 0x13c2cd9c3a0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cd9c390 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cd9c378 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cd9c348 <col:10, col:31> 'const bool' lvalue Var 0x13c2cd9bb98 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<group_crinfo_t>'
| |-FunctionDecl 0x13c2ce7e030 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'ida_syntax_highlighter_t::keywords_style_t'
| | | `-RecordType 0x13c2cdb7480 'ida_syntax_highlighter_t::keywords_style_t'
| | |   `-CXXRecord 0x13c2cdb73f0 'keywords_style_t'
| | `-CompoundStmt 0x13c2ce7ecc0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2ce7ecb0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2ce7ec98 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2ce7ec68 <col:10, col:31> 'const bool' lvalue Var 0x13c2ce7e4b8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<ida_syntax_highlighter_t::keywords_style_t>'
| |-FunctionDecl 0x13c2ce8fc70 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'ida_syntax_highlighter_t::multicmt_t'
| | | `-RecordType 0x13c2cdb62a0 'ida_syntax_highlighter_t::multicmt_t'
| | |   `-CXXRecord 0x13c2cdb6210 'multicmt_t'
| | `-CompoundStmt 0x13c2ce90900 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2ce908f0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2ce908d8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2ce908a8 <col:10, col:31> 'const bool' lvalue Var 0x13c2ce900f8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<ida_syntax_highlighter_t::multicmt_t>'
| |-FunctionDecl 0x13c2ceaeeb0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'process_info_t'
| | | `-RecordType 0x13c2ce9d540 'process_info_t'
| | |   `-CXXRecord 0x13c2ce9d4b0 'process_info_t'
| | `-CompoundStmt 0x13c2ceaf168 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2ceaf158 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2ceaf140 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2ceaf110 <col:10, col:31> 'const bool' lvalue Var 0x13c2ce9eb30 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<process_info_t>'
| |-FunctionDecl 0x13c2ceca918 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'register_info_t'
| | | `-RecordType 0x13c2ceb8b00 'register_info_t'
| | |   `-CXXRecord 0x13c2ceb8a68 'register_info_t'
| | `-CompoundStmt 0x13c2cecabc8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cecabb8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cecaba0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cecab70 <col:10, col:31> 'const bool' lvalue Var 0x13c2ceba030 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<register_info_t>'
| |-FunctionDecl 0x13c2ceeba98 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'const char *'
| | | `-PointerType 0x13c28548a70 'const char *'
| | |   `-QualType 0x13c28547f21 'const char' const
| | |     `-BuiltinType 0x13c28547f20 'char'
| | `-CompoundStmt 0x13c2ceec720 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2ceec710 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2ceec6f8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2ceec6c8 <col:10, col:31> 'const bool' lvalue Var 0x13c2ceebf18 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<const char *>'
| |-FunctionDecl 0x13c2cefcea0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'dynamic_register_set_t::const_char_vec_t'
| | | `-RecordType 0x13c2ced3700 'dynamic_register_set_t::const_char_vec_t'
| | |   `-CXXRecord 0x13c2ced3668 'const_char_vec_t'
| | `-CompoundStmt 0x13c2cefdb30 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cefdb20 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cefdb08 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cefdad8 <col:10, col:31> 'const bool' lvalue Var 0x13c2cefd328 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<dynamic_register_set_t::const_char_vec_t>'
| |-FunctionDecl 0x13c2cf3fd90 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'scattered_segm_t'
| | | `-RecordType 0x13c2cf2eb00 'scattered_segm_t'
| | |   `-CXXRecord 0x13c2cf2ea68 'scattered_segm_t'
| | `-CompoundStmt 0x13c2cf40048 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cf40038 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cf40020 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cf3fff0 <col:10, col:31> 'const bool' lvalue Var 0x13c2cf2f7f0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<scattered_segm_t>'
| |-FunctionDecl 0x13c2cf5bed0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'modinfo_t'
| | | `-RecordType 0x13c2cf4a0c0 'modinfo_t'
| | |   `-CXXRecord 0x13c2cf4a028 'modinfo_t'
| | `-CompoundStmt 0x13c2cf5c188 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cf5c178 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cf5c160 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cf5c130 <col:10, col:31> 'const bool' lvalue Var 0x13c2cf4b9f0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<modinfo_t>'
| |-FunctionDecl 0x13c2cf808a0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'exception_info_t'
| | | `-RecordType 0x13c2cf6dcf0 'exception_info_t'
| | |   `-CXXRecord 0x13c2cf6dc60 'exception_info_t'
| | `-CompoundStmt 0x13c2cf80b58 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cf80b48 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cf80b30 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cf80b00 <col:10, col:31> 'const bool' lvalue Var 0x13c2cf70580 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<exception_info_t>'
| |-FunctionDecl 0x13c2cfa1cd0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'regval_t'
| | | `-RecordType 0x13c2bd90030 'regval_t'
| | |   `-CXXRecord 0x13c2cf89450 'regval_t'
| | `-CompoundStmt 0x13c2cfa1f88 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cfa1f78 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cfa1f60 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cfa1f30 <col:10, col:31> 'const bool' lvalue Var 0x13c2cf91d40 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<regval_t>'
| |-FunctionDecl 0x13c2cfe58a0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'update_bpt_info_t'
| | | `-RecordType 0x13c2cfd3b40 'update_bpt_info_t'
| | |   `-CXXRecord 0x13c2cfd3ab0 'update_bpt_info_t'
| | `-CompoundStmt 0x13c2cfe5b58 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2cfe5b48 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2cfe5b30 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2cfe5b00 <col:10, col:31> 'const bool' lvalue Var 0x13c2cfd4f50 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<update_bpt_info_t>'
| |-FunctionDecl 0x13c2d001ed0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'lowcnd_t'
| | | `-RecordType 0x13c2cfee4e0 'lowcnd_t'
| | |   `-CXXRecord 0x13c2cfee450 'lowcnd_t'
| | `-CompoundStmt 0x13c2d002b60 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2d002b50 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2d002b38 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2d002b08 <col:10, col:31> 'const bool' lvalue Var 0x13c2d002358 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<lowcnd_t>'
| |-FunctionDecl 0x13c2d01ca60 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'thread_name_t'
| | | `-RecordType 0x13c2d00b4f0 'thread_name_t'
| | |   `-CXXRecord 0x13c2d00b460 'thread_name_t'
| | `-CompoundStmt 0x13c2d01d6f0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2d01d6e0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2d01d6c8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2d01d698 <col:10, col:31> 'const bool' lvalue Var 0x13c2d01cee8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<thread_name_t>'
| |-FunctionDecl 0x13c2d1607a0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'eavec_t'
| | | `-RecordType 0x13c2b636110 'eavec_t'
| | |   `-CXXRecord 0x13c2b636080 'eavec_t'
| | `-CompoundStmt 0x13c2d161430 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2d161420 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2d161408 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2d1613d8 <col:10, col:31> 'const bool' lvalue Var 0x13c2d160c28 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<eavec_t>'
| |-FunctionDecl 0x13c2d601268 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'op_t'
| | | `-RecordType 0x13c2bd31040 'op_t'
| | |   `-CXXRecord 0x13c2bd30fa8 'op_t'
| | `-CompoundStmt 0x13c2d601ef0 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2d601ee0 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2d601ec8 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2d601e98 <col:10, col:31> 'const bool' lvalue Var 0x13c2d6016e8 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<op_t>'
| |-FunctionDecl 0x13c2d6e8bd0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'token_t'
| | | `-RecordType 0x13c2bd6d3b0 'token_t'
| | |   `-CXXRecord 0x13c2d6cb8c0 'token_t'
| | `-CompoundStmt 0x13c2d6e8e88 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2d6e8e78 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2d6e8e60 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2d6e8e30 <col:10, col:31> 'const bool' lvalue Var 0x13c2d6ce4a0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<token_t>'
| |-FunctionDecl 0x13c2d70c6e8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'md5_t'
| | | `-RecordType 0x13c2d6f7210 'md5_t'
| | |   `-CXXRecord 0x13c2d6f7178 'md5_t'
| | `-CompoundStmt 0x13c2d70c998 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2d70c988 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2d70c970 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2d70c940 <col:10, col:31> 'const bool' lvalue Var 0x13c2d6fc820 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<md5_t>'
| |-FunctionDecl 0x13c2d7288a0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'segm_move_info_t'
| | | `-RecordType 0x13c2d716c20 'segm_move_info_t'
| | |   `-CXXRecord 0x13c2d716b88 'segm_move_info_t'
| | `-CompoundStmt 0x13c2d728b58 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2d728b48 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2d728b30 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2d728b00 <col:10, col:31> 'const bool' lvalue Var 0x13c2d718060 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<segm_move_info_t>'
| |-FunctionDecl 0x13c2d753970 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'lochist_entry_t'
| | | `-RecordType 0x13c2bacdf40 'lochist_entry_t'
| | |   `-CXXRecord 0x13c2d73a378 'lochist_entry_t'
| | `-CompoundStmt 0x13c2d753c28 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2d753c18 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2d753c00 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2d753bd0 <col:10, col:31> 'const bool' lvalue Var 0x13c2d743a30 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<lochist_entry_t>'
| |-FunctionDecl 0x13c2de6c1d8 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'rpc_packet_type_desc_t'
| | | `-RecordType 0x13c2de5aac0 'rpc_packet_type_desc_t'
| | |   `-CXXRecord 0x13c2de5aa30 'rpc_packet_type_desc_t'
| | `-CompoundStmt 0x13c2de6c488 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2de6c478 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2de6c460 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2de6c430 <col:10, col:31> 'const bool' lvalue Var 0x13c2de5baa0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<rpc_packet_type_desc_t>'
| |-FunctionDecl 0x13c2deb1920 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'jvalue_t'
| | | `-RecordType 0x13c2bd6f8e0 'jvalue_t'
| | |   `-CXXRecord 0x13c2de989f8 'jvalue_t'
| | `-CompoundStmt 0x13c2deb1bd8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2deb1bc8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2deb1bb0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2deb1b80 <col:10, col:31> 'const bool' lvalue Var 0x13c2dea19b0 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<jvalue_t>'
| |-FunctionDecl 0x13c2e08a440 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'catch_t'
| | | `-RecordType 0x13c2e078bf0 'catch_t'
| | |   `-CXXRecord 0x13c2e078b58 'catch_t'
| | `-CompoundStmt 0x13c2e08a6f8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2e08a6e8 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2e08a6d0 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2e08a6a0 <col:10, col:31> 'const bool' lvalue Var 0x13c2e079990 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<catch_t>'
| |-FunctionDecl 0x13c2e0a8bf0 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
| | |-TemplateArgument type 'tryblk_t'
| | | `-RecordType 0x13c2e0931e0 'tryblk_t'
| | |   `-CXXRecord 0x13c2e093150 'tryblk_t'
| | `-CompoundStmt 0x13c2e0a8ea8 <line:2154:1, line:2156:1>
| |   `-ReturnStmt 0x13c2e0a8e98 <line:2155:3, col:31>
| |     `-ImplicitCastExpr 0x13c2e0a8e80 <col:10, col:31> 'bool' <LValueToRValue>
| |       `-DeclRefExpr 0x13c2e0a8e50 <col:10, col:31> 'const bool' lvalue Var 0x13c2e098c00 'value' 'const bool' non_odr_use_constant
| |         `-NestedNameSpecifier TypeSpec 'ida_movable_type<tryblk_t>'
| `-FunctionDecl 0x13c2e721a80 <line:2153:20, line:2156:1> line:2153:42 used constexpr may_move_bytes 'bool ()' implicit_instantiation inline
|   |-TemplateArgument type 'ivl_t'
|   | `-RecordType 0x13c2c6b88a0 'ivl_t'
|   |   `-CXXRecord 0x13c2c6b8808 'ivl_t'
|   `-CompoundStmt 0x13c2e721d38 <line:2154:1, line:2156:1>
|     `-ReturnStmt 0x13c2e721d28 <line:2155:3, col:31>
|       `-ImplicitCastExpr 0x13c2e721d10 <col:10, col:31> 'bool' <LValueToRValue>
|         `-DeclRefExpr 0x13c2e721ce0 <col:10, col:31> 'const bool' lvalue Var 0x13c2c6beab0 'value' 'const bool' non_odr_use_constant
|           `-NestedNameSpecifier TypeSpec 'ida_movable_type<ivl_t>'

So there is enough information to get all function specializations. Somehow that is not available through CppSharp. Could you please help me solve this problem? Eventually point me to where I should make changes. I am trying to instantiate the function templates.
Kind regards,
Mircea Troi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@tritao @xware-net and others