Bug Summary

File:build/gcc/cp/ptree.cc
Warning:line 124, column 7
Value stored to 'need_indent' is never read

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-suse-linux -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name ptree.cc -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -analyzer-config-compatibility-mode=true -mrelocation-model static -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/buildworker/marxinbox-gcc-clang-static-analyzer/objdir/gcc -resource-dir /usr/lib64/clang/15.0.7 -D IN_GCC_FRONTEND -D IN_GCC -D HAVE_CONFIG_H -I . -I cp -I /buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc -I /buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp -I /buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../include -I /buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../libcpp/include -I /buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../libcody -I /buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../libdecnumber -I /buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../libdecnumber/bid -I ../libdecnumber -I /buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../libbacktrace -internal-isystem /usr/bin/../lib64/gcc/x86_64-suse-linux/13/../../../../include/c++/13 -internal-isystem /usr/bin/../lib64/gcc/x86_64-suse-linux/13/../../../../include/c++/13/x86_64-suse-linux -internal-isystem /usr/bin/../lib64/gcc/x86_64-suse-linux/13/../../../../include/c++/13/backward -internal-isystem /usr/lib64/clang/15.0.7/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -Wno-narrowing -Wwrite-strings -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fdeprecated-macro -fdebug-compilation-dir=/buildworker/marxinbox-gcc-clang-static-analyzer/objdir/gcc -ferror-limit 19 -fno-rtti -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -analyzer-output=plist-html -analyzer-config silence-checkers=core.NullDereference -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /buildworker/marxinbox-gcc-clang-static-analyzer/objdir/clang-static-analyzer/2023-03-27-141847-20772-1/report-Ha4A2M.plist -x c++ /buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc
1/* Prints out trees in human readable form.
2 Copyright (C) 1992-2023 Free Software Foundation, Inc.
3 Hacked by Michael Tiemann (tiemann@cygnus.com)
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GCC is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING3. If not see
19<http://www.gnu.org/licenses/>. */
20
21
22#include "config.h"
23#include "system.h"
24#include "coretypes.h"
25#include "cp-tree.h"
26#include "print-tree.h"
27
28void
29cxx_print_decl (FILE *file, tree node, int indent)
30{
31 if (TREE_CODE (node)((enum tree_code) (node)->base.code) == FIELD_DECL)
32 {
33 if (DECL_MUTABLE_P (node)(((contains_struct_check (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 33, __FUNCTION__, (FIELD_DECL)))), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 33, __FUNCTION__))->decl_common.lang_flag_0))
)
34 {
35 indent_to (file, indent + 3);
36 fprintf (file, " mutable ");
37 }
38 return;
39 }
40
41 if (!CODE_CONTAINS_STRUCT (TREE_CODE (node), TS_DECL_COMMON)(tree_contains_struct[(((enum tree_code) (node)->base.code
))][(TS_DECL_COMMON)])
42 || !DECL_LANG_SPECIFIC (node)((contains_struct_check ((node), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 42, __FUNCTION__))->decl_common.lang_specific)
)
43 return;
44
45 if (TREE_CODE (node)((enum tree_code) (node)->base.code) == FUNCTION_DECL)
46 {
47 int flags = TFF_DECL_SPECIFIERS(1 << 2)|TFF_RETURN_TYPE(1 << 4)
48 |TFF_FUNCTION_DEFAULT_ARGUMENTS(1 << 5)|TFF_EXCEPTION_SPECIFICATION(1 << 6) ;
49 indent_to (file, indent + 3);
50 fprintf (file, " full-name \"%s\"", decl_as_string (node, flags));
51 }
52 else if (TREE_CODE (node)((enum tree_code) (node)->base.code) == TEMPLATE_DECL)
53 {
54 print_node (file, "result", DECL_TEMPLATE_RESULT (node)((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 54, __FUNCTION__, (TEMPLATE_DECL))))))))->result
, indent + 4);
55 print_node (file, "parms", DECL_TEMPLATE_PARMS (node)((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 55, __FUNCTION__, (TEMPLATE_DECL))))))))->arguments
, indent + 4);
56 indent_to (file, indent + 3);
57 fprintf (file, " full-name \"%s\"",
58 decl_as_string (node, TFF_TEMPLATE_HEADER(1 << 7)));
59 }
60
61 bool need_indent = true;
62
63 tree ntnode = STRIP_TEMPLATE (node)(((enum tree_code) (node)->base.code) == TEMPLATE_DECL ? (
(struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 63, __FUNCTION__, (TEMPLATE_DECL))))))))->result : node)
;
64 if (TREE_CODE (ntnode)((enum tree_code) (ntnode)->base.code) == FUNCTION_DECL
65 || TREE_CODE (ntnode)((enum tree_code) (ntnode)->base.code) == VAR_DECL
66 || TREE_CODE (ntnode)((enum tree_code) (ntnode)->base.code) == TYPE_DECL
67 || TREE_CODE (ntnode)((enum tree_code) (ntnode)->base.code) == CONCEPT_DECL
68 || TREE_CODE (ntnode)((enum tree_code) (ntnode)->base.code) == NAMESPACE_DECL)
69 {
70 unsigned m = 0;
71 if (DECL_LANG_SPECIFIC (ntnode)((contains_struct_check ((ntnode), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 71, __FUNCTION__))->decl_common.lang_specific)
&& DECL_MODULE_IMPORT_P (ntnode)(((contains_struct_check (((tree_not_check ((ntnode), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 71, __FUNCTION__, (TEMPLATE_DECL)))), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 71, __FUNCTION__))->decl_common.lang_specific)->u.base
.module_import_p)
)
72 m = get_importing_module (ntnode, true);
73
74 if (const char *name = m == ~0u ? "" : module_name (m, true))
75 {
76 if (need_indent)
77 indent_to (file, indent + 3);
78 fprintf (file, " module %d:%s", m, name);
79 need_indent = false;
80 }
81
82 if (DECL_LANG_SPECIFIC (ntnode)((contains_struct_check ((ntnode), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 82, __FUNCTION__))->decl_common.lang_specific)
)
83 {
84 if (DECL_MODULE_PURVIEW_P (ntnode)(((contains_struct_check (((tree_not_check ((ntnode), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 84, __FUNCTION__, (TEMPLATE_DECL)))), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 84, __FUNCTION__))->decl_common.lang_specific)->u.base
.module_purview_p)
)
85 {
86 if (need_indent)
87 indent_to (file, indent + 3);
88 fprintf (file, " purview");
89 need_indent = false;
90 }
91 if (DECL_MODULE_ATTACH_P (ntnode)(((contains_struct_check (((tree_not_check ((ntnode), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 91, __FUNCTION__, (TEMPLATE_DECL)))), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 91, __FUNCTION__))->decl_common.lang_specific)->u.base
.module_attach_p)
)
92 {
93 if (need_indent)
94 indent_to (file, indent + 3);
95 fprintf (file, " attached");
96 need_indent = false;
97 }
98 }
99 }
100
101 if (DECL_MODULE_EXPORT_P (node)((tree_not_check2 ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 101, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_3)
)
102 {
103 if (need_indent)
104 indent_to (file, indent + 3);
105 fprintf (file, " exported");
106 need_indent = false;
107 }
108
109 if (DECL_EXTERNAL (node)((contains_struct_check ((node), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 109, __FUNCTION__))->decl_common.decl_flag_1)
&& DECL_NOT_REALLY_EXTERN (node)(((contains_struct_check ((node), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 109, __FUNCTION__))->decl_common.lang_specific)->u.base
.not_really_extern)
)
110 {
111 if (need_indent)
112 indent_to (file, indent + 3);
113 fprintf (file, " not-really-extern");
114 need_indent = false;
115 }
116
117 if (TREE_CODE (node)((enum tree_code) (node)->base.code) == FUNCTION_DECL
118 && DECL_PENDING_INLINE_INFO (node)(__extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (node)->base.code) == TEMPLATE_DECL ?
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 118, __FUNCTION__, (TEMPLATE_DECL))))))))->result : node
)), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 118, __FUNCTION__))->decl_common.lang_specific); if (!((
(enum tree_code) (node)->base.code) == FUNCTION_DECL || ((
(enum tree_code) (node)->base.code) == TEMPLATE_DECL &&
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 118, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) nullptr && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((node
), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 118, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->base
.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 118, __FUNCTION__); &lt->u.fn; })->u.pending_inline_info
)
)
119 {
120 if (need_indent)
121 indent_to (file, indent + 3);
122 fprintf (file, " pending-inline-info %p",
123 (void *) DECL_PENDING_INLINE_INFO (node)(__extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (node)->base.code) == TEMPLATE_DECL ?
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 123, __FUNCTION__, (TEMPLATE_DECL))))))))->result : node
)), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 123, __FUNCTION__))->decl_common.lang_specific); if (!((
(enum tree_code) (node)->base.code) == FUNCTION_DECL || ((
(enum tree_code) (node)->base.code) == TEMPLATE_DECL &&
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 123, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) nullptr && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((node
), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 123, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->base
.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 123, __FUNCTION__); &lt->u.fn; })->u.pending_inline_info
)
);
124 need_indent = false;
Value stored to 'need_indent' is never read
125 }
126
127 if (VAR_OR_FUNCTION_DECL_P (node)(((enum tree_code) (node)->base.code) == VAR_DECL || ((enum
tree_code) (node)->base.code) == FUNCTION_DECL)
128 && DECL_TEMPLATE_INFO (node)(((contains_struct_check ((template_info_decl_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 128, __FUNCTION__)), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 128, __FUNCTION__))->decl_common.lang_specific) ->u.min
.template_info)
)
129 print_node (file, "template-info", DECL_TEMPLATE_INFO (node)(((contains_struct_check ((template_info_decl_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 129, __FUNCTION__)), (TS_DECL_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 129, __FUNCTION__))->decl_common.lang_specific) ->u.min
.template_info)
,
130 indent + 4);
131}
132
133void
134cxx_print_type (FILE *file, tree node, int indent)
135{
136 switch (TREE_CODE (node)((enum tree_code) (node)->base.code))
137 {
138 case BOUND_TEMPLATE_TEMPLATE_PARM:
139 print_node (file, "args", TYPE_TI_ARGS (node)(((struct tree_template_info*)(tree_check (((((enum tree_code
) (node)->base.code) == ENUMERAL_TYPE || ((enum tree_code)
(node)->base.code) == BOUND_TEMPLATE_TEMPLATE_PARM || (((
enum tree_code) (node)->base.code) == RECORD_TYPE || ((enum
tree_code) (node)->base.code) == UNION_TYPE || ((enum tree_code
) (node)->base.code) == QUAL_UNION_TYPE) ? ((tree_class_check
((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 139, __FUNCTION__))->type_non_common.lang_1) : (tree) nullptr
)), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 139, __FUNCTION__, (TEMPLATE_INFO))))->args)
, indent + 4);
140 gcc_fallthrough ();
141
142 case TEMPLATE_TYPE_PARM:
143 case TEMPLATE_TEMPLATE_PARM:
144 indent_to (file, indent + 3);
145 fprintf (file, "index %d level %d orig_level %d",
146 TEMPLATE_TYPE_IDX (node)((((template_parm_index*)(tree_check (((((tree_class_check ((
(tree_check3 (((node)), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 146, __FUNCTION__, (TEMPLATE_TYPE_PARM), (TEMPLATE_TEMPLATE_PARM
), (BOUND_TEMPLATE_TEMPLATE_PARM)))), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 146, __FUNCTION__))->type_non_common.values))), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 146, __FUNCTION__, (TEMPLATE_PARM_INDEX))))->index))
, TEMPLATE_TYPE_LEVEL (node)((((template_parm_index*)(tree_check (((((tree_class_check ((
(tree_check3 (((node)), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 146, __FUNCTION__, (TEMPLATE_TYPE_PARM), (TEMPLATE_TEMPLATE_PARM
), (BOUND_TEMPLATE_TEMPLATE_PARM)))), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 146, __FUNCTION__))->type_non_common.values))), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 146, __FUNCTION__, (TEMPLATE_PARM_INDEX))))->level))
,
147 TEMPLATE_TYPE_ORIG_LEVEL (node)((((template_parm_index*)(tree_check (((((tree_class_check ((
(tree_check3 (((node)), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 147, __FUNCTION__, (TEMPLATE_TYPE_PARM), (TEMPLATE_TEMPLATE_PARM
), (BOUND_TEMPLATE_TEMPLATE_PARM)))), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 147, __FUNCTION__))->type_non_common.values))), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 147, __FUNCTION__, (TEMPLATE_PARM_INDEX))))->orig_level)
)
);
148 return;
149
150 case FUNCTION_TYPE:
151 case METHOD_TYPE:
152 if (TYPE_RAISES_EXCEPTIONS (node)((tree_class_check (((tree_check2 ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 152, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))), (tcc_type
), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 152, __FUNCTION__))->type_non_common.lang_1)
)
153 print_node (file, "throws", TYPE_RAISES_EXCEPTIONS (node)((tree_class_check (((tree_check2 ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 153, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))), (tcc_type
), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 153, __FUNCTION__))->type_non_common.lang_1)
, indent + 4);
154 return;
155
156 case RECORD_TYPE:
157 case UNION_TYPE:
158 break;
159
160 case DECLTYPE_TYPE:
161 print_node (file, "expr", DECLTYPE_TYPE_EXPR (node)(((tree_class_check (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 161, __FUNCTION__, (DECLTYPE_TYPE)))), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 161, __FUNCTION__))->type_non_common.values))
, indent + 4);
162 return;
163
164 case DEPENDENT_OPERATOR_TYPE:
165 print_node (file, "saved_lookups",
166 DEPENDENT_OPERATOR_TYPE_SAVED_LOOKUPS (node)((tree_class_check (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 166, __FUNCTION__, (DEPENDENT_OPERATOR_TYPE)))), (tcc_type)
, "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 166, __FUNCTION__))->type_non_common.values)
,
167 indent + 4);
168 return;
169
170 case TYPENAME_TYPE:
171 print_node (file, "fullname", TYPENAME_TYPE_FULLNAME (node)(((tree_class_check (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 171, __FUNCTION__, (TYPENAME_TYPE)))), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 171, __FUNCTION__))->type_non_common.values))
,
172 indent + 4);
173 return;
174
175 case TYPEOF_TYPE:
176 print_node (file, "expr", TYPEOF_TYPE_EXPR (node)(((tree_class_check (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 176, __FUNCTION__, (TYPEOF_TYPE)))), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 176, __FUNCTION__))->type_non_common.values))
, indent + 4);
177 return;
178
179 case BASES:
180 if (BASES_DIRECT (node)((tree_not_check2 (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 180, __FUNCTION__, (BASES)))), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 180, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)
)
181 fputs (" direct", file);
182 print_node (file, "type", BASES_TYPE (node)(((tree_class_check (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 182, __FUNCTION__, (BASES)))), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 182, __FUNCTION__))->type_non_common.values))
, indent + 4);
183 return;
184
185 case TYPE_PACK_EXPANSION:
186 print_node (file, "pattern", PACK_EXPANSION_PATTERN (node)(((enum tree_code) ((tree_check2 ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 186, __FUNCTION__, (TYPE_PACK_EXPANSION), (EXPR_PACK_EXPANSION
))))->base.code) == TYPE_PACK_EXPANSION ? ((contains_struct_check
((node), (TS_TYPED), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 186, __FUNCTION__))->typed.type) : (*((const_cast<tree
*> (tree_operand_check ((node), (0), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 186, __FUNCTION__))))))
, indent + 4);
187 print_node (file, "args", PACK_EXPANSION_EXTRA_ARGS (node)*(((enum tree_code) ((tree_check2 ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 187, __FUNCTION__, (TYPE_PACK_EXPANSION), (EXPR_PACK_EXPANSION
))))->base.code) == TYPE_PACK_EXPANSION ? &((tree_class_check
((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 187, __FUNCTION__))->type_non_common.maxval) : &(*((
const_cast<tree*> (tree_operand_check (((node)), (2), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 187, __FUNCTION__))))))
, indent + 4);
188 return;
189
190 default:
191 return;
192 }
193
194 if (TYPE_PTRMEMFUNC_P (node)(((enum tree_code) (node)->base.code) == RECORD_TYPE &&
(((tree_class_check (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 194, __FUNCTION__, (RECORD_TYPE)))), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 194, __FUNCTION__))->type_common.lang_flag_2)))
)
195 print_node (file, "ptrmemfunc fn type", TYPE_PTRMEMFUNC_FN_TYPE (node)(cp_build_qualified_type (((contains_struct_check ((((tree_check3
((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 195, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))->type_non_common.values)), (TS_TYPED), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 195, __FUNCTION__))->typed.type), cp_type_quals (node)))
,
196 indent + 4);
197
198 if (! CLASS_TYPE_P (node)(((((enum tree_code) (node)->base.code)) == RECORD_TYPE ||
(((enum tree_code) (node)->base.code)) == UNION_TYPE) &&
((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 198, __FUNCTION__))->type_common.lang_flag_5))
)
199 return;
200
201 indent_to (file, indent + 4);
202 fprintf (file, "full-name \"%s\"",
203 type_as_string (node, TFF_CLASS_KEY_OR_ENUM(1 << 3)));
204
205 indent_to (file, indent + 3);
206
207 if (TYPE_NEEDS_CONSTRUCTING (node)((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 207, __FUNCTION__))->type_common.needs_constructing_flag
)
)
208 fputs ( " needs-constructor", file);
209 if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (node)(((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 209, __FUNCTION__))->type_common.lang_flag_4))
)
210 fputs (" needs-destructor", file);
211 if (TYPE_HAS_DEFAULT_CONSTRUCTOR (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 211, __FUNCTION__))->type_with_lang_specific.lang_specific
))->has_default_ctor)
)
212 fputs (" X()", file);
213 if (TYPE_HAS_CONVERSION (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 213, __FUNCTION__))->type_with_lang_specific.lang_specific
))->has_type_conversion)
)
214 fputs (" has-type-conversion", file);
215 if (TYPE_HAS_COPY_CTOR (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 215, __FUNCTION__))->type_with_lang_specific.lang_specific
))->has_copy_ctor)
)
216 {
217 if (TYPE_HAS_CONST_COPY_CTOR (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 217, __FUNCTION__))->type_with_lang_specific.lang_specific
))->has_const_copy_ctor)
)
218 fputs (" X(constX&)", file);
219 else
220 fputs (" X(X&)", file);
221 }
222 if (TYPE_HAS_NEW_OPERATOR (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 222, __FUNCTION__))->type_with_lang_specific.lang_specific
))->has_new)
)
223 fputs (" new", file);
224 if (TYPE_HAS_ARRAY_NEW_OPERATOR (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 224, __FUNCTION__))->type_with_lang_specific.lang_specific
))->has_array_new)
)
225 fputs (" new[]", file);
226 if (TYPE_GETS_DELETE (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 226, __FUNCTION__))->type_with_lang_specific.lang_specific
))->gets_delete)
& 1)
227 fputs (" delete", file);
228 if (TYPE_GETS_DELETE (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 228, __FUNCTION__))->type_with_lang_specific.lang_specific
))->gets_delete)
& 2)
229 fputs (" delete[]", file);
230 if (TYPE_HAS_COPY_ASSIGN (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 230, __FUNCTION__))->type_with_lang_specific.lang_specific
))->has_copy_assign)
)
231 fputs (" this=(X&)", file);
232
233 if (TREE_CODE (node)((enum tree_code) (node)->base.code) == RECORD_TYPE)
234 {
235 if (TYPE_BINFO (node)((tree_check3 ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 235, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))->type_non_common.maxval)
)
236 fprintf (file, " n_parents=%d",
237 BINFO_N_BASE_BINFOS (TYPE_BINFO (node))((&(tree_check ((((tree_check3 ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 237, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))->type_non_common.maxval)), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 237, __FUNCTION__, (TREE_BINFO)))->binfo.base_binfos)->
length ())
);
238 else
239 fprintf (file, " no-binfo");
240
241 fprintf (file, " use_template=%d", CLASSTYPE_USE_TEMPLATE (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 241, __FUNCTION__))->type_with_lang_specific.lang_specific
))->use_template)
);
242 if (CLASSTYPE_INTERFACE_ONLY (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 242, __FUNCTION__))->type_with_lang_specific.lang_specific
))->interface_only)
)
243 fprintf (file, " interface-only");
244 if (CLASSTYPE_INTERFACE_UNKNOWN (node)((((tree_class_check ((node), (tcc_type), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 244, __FUNCTION__))->type_with_lang_specific.lang_specific
))->interface_unknown)
)
245 fprintf (file, " interface-unknown");
246 }
247}
248
249void
250cxx_print_identifier (FILE *file, tree node, int indent)
251{
252 if (indent == 0)
253 fprintf (file, " ");
254 else
255 indent_to (file, indent + 4);
256 fprintf (file, "%s local bindings <%p>", get_identifier_kind_name (node),
257 (void *) IDENTIFIER_BINDING (node)(((struct lang_identifier*)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 257, __FUNCTION__, (IDENTIFIER_NODE))))->bindings)
);
258}
259
260void
261cxx_print_lambda_node (FILE *file, tree node, int indent)
262{
263 if (LAMBDA_EXPR_MUTABLE_P (node)((tree_not_check2 (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 263, __FUNCTION__, (LAMBDA_EXPR)))), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 263, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_1)
)
264 fprintf (file, " /mutable");
265 fprintf (file, " default_capture_mode=[");
266 switch (LAMBDA_EXPR_DEFAULT_CAPTURE_MODE (node)(((struct tree_lambda_expr *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 266, __FUNCTION__, (LAMBDA_EXPR))))->default_capture_mode
)
)
267 {
268 case CPLD_NONE:
269 fprintf (file, "NONE");
270 break;
271 case CPLD_COPY:
272 fprintf (file, "COPY");
273 break;
274 case CPLD_REFERENCE:
275 fprintf (file, "CPLD_REFERENCE");
276 break;
277 default:
278 fprintf (file, "??");
279 break;
280 }
281 fprintf (file, "] ");
282 print_node (file, "capture_list", LAMBDA_EXPR_CAPTURE_LIST (node)(((struct tree_lambda_expr *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 282, __FUNCTION__, (LAMBDA_EXPR))))->capture_list)
, indent + 4);
283 print_node (file, "this_capture", LAMBDA_EXPR_THIS_CAPTURE (node)(((struct tree_lambda_expr *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 283, __FUNCTION__, (LAMBDA_EXPR))))->this_capture)
, indent + 4);
284}
285
286void
287cxx_print_xnode (FILE *file, tree node, int indent)
288{
289 switch (TREE_CODE (node)((enum tree_code) (node)->base.code))
290 {
291 case BASELINK:
292 print_node (file, "functions", BASELINK_FUNCTIONS (node)(((struct tree_baselink*) (tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 292, __FUNCTION__, (BASELINK))))->functions)
, indent + 4);
293 print_node (file, "binfo", BASELINK_BINFO (node)(((struct tree_baselink*) (tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 293, __FUNCTION__, (BASELINK))))->binfo)
, indent + 4);
294 print_node (file, "access_binfo", BASELINK_ACCESS_BINFO (node)(((struct tree_baselink*) (tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 294, __FUNCTION__, (BASELINK))))->access_binfo)
,
295 indent + 4);
296 print_node (file, "optype", BASELINK_OPTYPE (node)(((contains_struct_check (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 296, __FUNCTION__, (BASELINK)))), (TS_COMMON), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 296, __FUNCTION__))->common.chain))
, indent + 4);
297 break;
298 case OVERLOAD:
299 print_node (file, "function", OVL_FUNCTION (node)(((struct tree_overload*)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 299, __FUNCTION__, (OVERLOAD))))->function)
, indent + 4);
300 print_node (file, "next", OVL_CHAIN (node)(((struct tree_overload*)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 300, __FUNCTION__, (OVERLOAD))))->common.chain)
, indent + 4);
301 break;
302 case BINDING_VECTOR:
303 {
304 unsigned len = BINDING_VECTOR_NUM_CLUSTERS (node)((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 304, __FUNCTION__, (BINDING_VECTOR)))->base.u.dependence_info
.base)
;
305 print_node (file, "name", BINDING_VECTOR_NAME (node)(((tree_binding_vec *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 305, __FUNCTION__, (BINDING_VECTOR))))->name)
, indent + 4);
306 fprintf (file, " clusters %u, alloc %u", len,
307 BINDING_VECTOR_ALLOC_CLUSTERS (node)((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 307, __FUNCTION__, (BINDING_VECTOR)))->base.u.dependence_info
.clique)
);
308 for (unsigned ix = 0; ix != len; ix++)
309 {
310 binding_cluster *cluster = &BINDING_VECTOR_CLUSTER (node, ix)(((tree_binding_vec *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 310, __FUNCTION__, (BINDING_VECTOR))))->vec[ix])
;
311 char pfx[32];
312 for (unsigned jx = 0; jx != BINDING_VECTOR_SLOTS_PER_CLUSTER2; jx++)
313 if (cluster->indices[jx].span)
314 {
315 int len = sprintf (pfx, "module:%u",
316 cluster->indices[jx].base);
317 if (cluster->indices[jx].span > 1)
318 len += sprintf (&pfx[len], "(+%u)",
319 cluster->indices[jx].span);
320 len += sprintf (&pfx[len], " cluster:%u/%u", ix, jx);
321 binding_slot &slot = cluster->slots[jx];
322 if (slot.is_lazy ())
323 {
324 indent_to (file, indent + 4);
325 unsigned lazy = slot.get_lazy ();
326 fprintf (file, "%s snum:%u", pfx, lazy);
327 }
328 else if (slot)
329 print_node (file, pfx, slot, indent + 4);
330 else
331 {
332 indent_to (file, indent + 4);
333 fprintf (file, "%s NULL", pfx);
334 }
335 }
336 }
337 }
338 break;
339 case TEMPLATE_PARM_INDEX:
340 print_node (file, "decl", TEMPLATE_PARM_DECL (node)(((template_parm_index*)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 340, __FUNCTION__, (TEMPLATE_PARM_INDEX))))->decl)
, indent+4);
341 indent_to (file, indent + 3);
342 fprintf (file, "index %d level %d orig_level %d",
343 TEMPLATE_PARM_IDX (node)(((template_parm_index*)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 343, __FUNCTION__, (TEMPLATE_PARM_INDEX))))->index)
, TEMPLATE_PARM_LEVEL (node)(((template_parm_index*)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 343, __FUNCTION__, (TEMPLATE_PARM_INDEX))))->level)
,
344 TEMPLATE_PARM_ORIG_LEVEL (node)(((template_parm_index*)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 344, __FUNCTION__, (TEMPLATE_PARM_INDEX))))->orig_level)
);
345 break;
346 case TEMPLATE_INFO:
347 print_node (file, "template", TI_TEMPLATE (node)((struct tree_template_info*)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 347, __FUNCTION__, (TEMPLATE_INFO))))->tmpl
, indent+4);
348 print_node (file, "args", TI_ARGS (node)((struct tree_template_info*)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 348, __FUNCTION__, (TEMPLATE_INFO))))->args
, indent+4);
349 if (TI_PENDING_TEMPLATE_FLAG (node)((tree_not_check2 (((tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 349, __FUNCTION__, (TEMPLATE_INFO)))), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 349, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_1)
)
350 {
351 indent_to (file, indent + 3);
352 fprintf (file, "pending_template");
353 }
354 break;
355 case CONSTRAINT_INFO:
356 {
357 tree_constraint_info *cinfo = (tree_constraint_info *)node;
358 if (cinfo->template_reqs)
359 print_node (file, "template_reqs", cinfo->template_reqs, indent+4);
360 if (cinfo->declarator_reqs)
361 print_node (file, "declarator_reqs", cinfo->declarator_reqs,
362 indent+4);
363 print_node (file, "associated_constr",
364 cinfo->associated_constr, indent+4);
365 break;
366 }
367 case ARGUMENT_PACK_SELECT:
368 print_node (file, "pack", ARGUMENT_PACK_SELECT_FROM_PACK (node)(((struct tree_argument_pack_select *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 368, __FUNCTION__, (ARGUMENT_PACK_SELECT))))->argument_pack
)
,
369 indent+4);
370 indent_to (file, indent + 3);
371 fprintf (file, "index %d", ARGUMENT_PACK_SELECT_INDEX (node)(((struct tree_argument_pack_select *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 371, __FUNCTION__, (ARGUMENT_PACK_SELECT))))->index)
);
372 break;
373 case DEFERRED_NOEXCEPT:
374 print_node (file, "pattern", DEFERRED_NOEXCEPT_PATTERN (node)(((struct tree_deferred_noexcept *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 374, __FUNCTION__, (DEFERRED_NOEXCEPT))))->pattern)
, indent+4);
375 print_node (file, "args", DEFERRED_NOEXCEPT_ARGS (node)(((struct tree_deferred_noexcept *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 375, __FUNCTION__, (DEFERRED_NOEXCEPT))))->args)
, indent+4);
376 break;
377 case TRAIT_EXPR:
378 indent_to (file, indent+4);
379 fprintf (file, "kind %d", TRAIT_EXPR_KIND (node)(((struct tree_trait_expr *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 379, __FUNCTION__, (TRAIT_EXPR))))->kind)
);
380 print_node (file, "type 1", TRAIT_EXPR_TYPE1 (node)(((struct tree_trait_expr *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 380, __FUNCTION__, (TRAIT_EXPR))))->type1)
, indent+4);
381 if (TRAIT_EXPR_TYPE2 (node)(((struct tree_trait_expr *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 381, __FUNCTION__, (TRAIT_EXPR))))->type2)
)
382 print_node (file, "type 2", TRAIT_EXPR_TYPE2 (node)(((struct tree_trait_expr *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 382, __FUNCTION__, (TRAIT_EXPR))))->type2)
, indent+4);
383 break;
384 case LAMBDA_EXPR:
385 cxx_print_lambda_node (file, node, indent);
386 break;
387 case STATIC_ASSERT:
388 if (location_t loc = STATIC_ASSERT_SOURCE_LOCATION (node)(((struct tree_static_assert *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 388, __FUNCTION__, (STATIC_ASSERT))))->location)
)
389 {
390 expanded_location xloc = expand_location (loc);
391 indent_to (file, indent+4);
392 fprintf (file, "%s:%d:%d", xloc.file, xloc.line, xloc.column);
393 }
394 print_node (file, "condition", STATIC_ASSERT_CONDITION (node)(((struct tree_static_assert *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 394, __FUNCTION__, (STATIC_ASSERT))))->condition)
, indent+4);
395 if (tree message = STATIC_ASSERT_MESSAGE (node)(((struct tree_static_assert *)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 395, __FUNCTION__, (STATIC_ASSERT))))->message)
)
396 print_node (file, "message", message, indent+4);
397 break;
398 case PTRMEM_CST:
399 print_node (file, "member", PTRMEM_CST_MEMBER (node)(((ptrmem_cst_t)(tree_check ((node), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 399, __FUNCTION__, (PTRMEM_CST))))->member)
, indent+4);
400 break;
401 default:
402 break;
403 }
404}
405
406/* Print the node NODE on standard error, for debugging. */
407
408DEBUG_FUNCTION__attribute__ ((__used__)) void
409debug_tree (cp_expr node)
410{
411 debug_tree (node.get_value());
412}
413
414DEBUG_FUNCTION__attribute__ ((__used__)) void
415debug_overload (tree node)
416{
417 FILE *file = stdoutstdout;
418
419 for (lkp_iterator iter (node); iter; ++iter)
420 {
421 tree decl = *iter;
422 auto xloc = expand_location (DECL_SOURCE_LOCATION (decl)((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/ptree.cc"
, 422, __FUNCTION__))->decl_minimal.locus)
);
423 auto fullname = decl_as_string (decl, 0);
424 bool using_p = iter.using_p ();
425 bool hidden_p = iter.hidden_p ();
426
427 fprintf (file, "%p:%c%c %s:%d:%d \"%s\"\n", (void *)decl,
428 hidden_p ? 'H' : '-',
429 using_p ? 'U' : '-',
430 xloc.file, xloc.line, xloc.column, fullname);
431 }
432}