Bug Summary

File:build/gcc/vec.h
Warning:line 815, column 10
Called C++ object pointer is null

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-unknown-linux-gnu -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name error.c -analyzer-store=region -analyzer-opt-analyze-nested-blocks -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 -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -fno-split-dwarf-inlining -debugger-tuning=gdb -resource-dir /usr/lib64/clang/11.0.0 -D IN_GCC_FRONTEND -D IN_GCC -D HAVE_CONFIG_H -I . -I cp -I /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc -I /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp -I /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../include -I /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../libcpp/include -I /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../libcody -I /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../libdecnumber -I /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../libdecnumber/bid -I ../libdecnumber -I /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/../libbacktrace -internal-isystem /usr/bin/../lib64/gcc/x86_64-suse-linux/10/../../../../include/c++/10 -internal-isystem /usr/bin/../lib64/gcc/x86_64-suse-linux/10/../../../../include/c++/10/x86_64-suse-linux -internal-isystem /usr/bin/../lib64/gcc/x86_64-suse-linux/10/../../../../include/c++/10/backward -internal-isystem /usr/local/include -internal-isystem /usr/lib64/clang/11.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -Wno-narrowing -Wwrite-strings -Wno-error=format-diag -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fdeprecated-macro -fdebug-compilation-dir /home/marxin/BIG/buildbot/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 -o /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/objdir/clang-static-analyzer/2021-01-16-135054-17580-1/report-rLsQOo.plist -x c++ /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c

/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c

1/* Call-backs for C++ error reporting.
2 This code is non-reentrant.
3 Copyright (C) 1993-2021 Free Software Foundation, Inc.
4 This file is part of GCC.
5
6GCC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 3, or (at your option)
9any later version.
10
11GCC is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
19
20#include "config.h"
21/* For use with name_hint. */
22#define INCLUDE_UNIQUE_PTR
23#include "system.h"
24#include "coretypes.h"
25#include "cp-tree.h"
26#include "stringpool.h"
27#include "tree-diagnostic.h"
28#include "langhooks-def.h"
29#include "intl.h"
30#include "cxx-pretty-print.h"
31#include "tree-pretty-print.h"
32#include "gimple-pretty-print.h"
33#include "c-family/c-objc.h"
34#include "ubsan.h"
35#include "internal-fn.h"
36#include "gcc-rich-location.h"
37#include "cp-name-hint.h"
38
39#define pp_separate_with_comma(PP)pp_cxx_separate_with (PP, ',') pp_cxx_separate_with (PP, ',')
40#define pp_separate_with_semicolon(PP)pp_cxx_separate_with (PP, ';') pp_cxx_separate_with (PP, ';')
41
42/* cxx_pp is a C++ front-end-specific pretty printer: this is where we
43 dump C++ ASTs as strings. It is mostly used only by the various
44 tree -> string functions that are occasionally called from the
45 debugger or by the front-end for things like
46 __PRETTY_FUNCTION__. */
47static cxx_pretty_printer actual_pretty_printer;
48static cxx_pretty_printer * const cxx_pp = &actual_pretty_printer;
49
50/* Translate if being used for diagnostics, but not for dump files or
51 __PRETTY_FUNCTION. */
52#define M_(msgid)((cxx_pp)->translate_identifiers ? gettext (msgid) : (msgid
))
(pp_translate_identifiers (cxx_pp)(cxx_pp)->translate_identifiers ? _(msgid)gettext (msgid) : (msgid))
53
54# define NEXT_CODE(T)(((enum tree_code) (((contains_struct_check ((T), (TS_TYPED),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 54, __FUNCTION__))->typed.type))->base.code))
(TREE_CODE (TREE_TYPE (T))((enum tree_code) (((contains_struct_check ((T), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 54, __FUNCTION__))->typed.type))->base.code)
)
55
56static const char *args_to_string (tree, int);
57static const char *code_to_string (enum tree_code);
58static const char *cv_to_string (tree, int);
59static const char *decl_to_string (tree, int);
60static const char *fndecl_to_string (tree, int);
61static const char *op_to_string (bool, enum tree_code);
62static const char *parm_to_string (int);
63static const char *type_to_string (tree, int, bool, bool *, bool);
64
65static void dump_alias_template_specialization (cxx_pretty_printer *, tree, int);
66static void dump_type (cxx_pretty_printer *, tree, int);
67static void dump_typename (cxx_pretty_printer *, tree, int);
68static void dump_simple_decl (cxx_pretty_printer *, tree, tree, int);
69static void dump_decl (cxx_pretty_printer *, tree, int);
70static void dump_template_decl (cxx_pretty_printer *, tree, int);
71static void dump_function_decl (cxx_pretty_printer *, tree, int);
72static void dump_expr (cxx_pretty_printer *, tree, int);
73static void dump_unary_op (cxx_pretty_printer *, const char *, tree, int);
74static void dump_binary_op (cxx_pretty_printer *, const char *, tree, int);
75static void dump_aggr_type (cxx_pretty_printer *, tree, int);
76static void dump_type_prefix (cxx_pretty_printer *, tree, int);
77static void dump_type_suffix (cxx_pretty_printer *, tree, int);
78static void dump_function_name (cxx_pretty_printer *, tree, int);
79static void dump_call_expr_args (cxx_pretty_printer *, tree, int, bool);
80static void dump_aggr_init_expr_args (cxx_pretty_printer *, tree, int, bool);
81static void dump_expr_list (cxx_pretty_printer *, tree, int);
82static void dump_global_iord (cxx_pretty_printer *, tree);
83static void dump_parameters (cxx_pretty_printer *, tree, int);
84static void dump_ref_qualifier (cxx_pretty_printer *, tree, int);
85static void dump_exception_spec (cxx_pretty_printer *, tree, int);
86static void dump_template_argument (cxx_pretty_printer *, tree, int);
87static void dump_template_argument_list (cxx_pretty_printer *, tree, int);
88static void dump_template_parameter (cxx_pretty_printer *, tree, int);
89static void dump_template_bindings (cxx_pretty_printer *, tree, tree,
90 vec<tree, va_gc> *);
91static void dump_scope (cxx_pretty_printer *, tree, int);
92static void dump_template_parms (cxx_pretty_printer *, tree, int, int);
93static int get_non_default_template_args_count (tree, int);
94static const char *function_category (tree);
95static void maybe_print_constexpr_context (diagnostic_context *);
96static void maybe_print_instantiation_context (diagnostic_context *);
97static void print_instantiation_full_context (diagnostic_context *);
98static void print_instantiation_partial_context (diagnostic_context *,
99 struct tinst_level *,
100 location_t);
101static void maybe_print_constraint_context (diagnostic_context *);
102static void cp_diagnostic_starter (diagnostic_context *, diagnostic_info *);
103static void cp_print_error_function (diagnostic_context *, diagnostic_info *);
104
105static bool cp_printer (pretty_printer *, text_info *, const char *,
106 int, bool, bool, bool, bool *, const char **);
107
108/* Struct for handling %H or %I, which require delaying printing the
109 type until a postprocessing stage. */
110
111class deferred_printed_type
112{
113public:
114 deferred_printed_type ()
115 : m_tree (NULL_TREE(tree) __null), m_buffer_ptr (NULL__null), m_verbose (false), m_quote (false)
116 {}
117
118 deferred_printed_type (tree type, const char **buffer_ptr, bool verbose,
119 bool quote)
120 : m_tree (type), m_buffer_ptr (buffer_ptr), m_verbose (verbose),
121 m_quote (quote)
122 {
123 gcc_assert (type)((void)(!(type) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 123, __FUNCTION__), 0 : 0))
;
124 gcc_assert (buffer_ptr)((void)(!(buffer_ptr) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 124, __FUNCTION__), 0 : 0))
;
125 }
126
127 /* The tree is not GTY-marked: they are only non-NULL within a
128 call to pp_format. */
129 tree m_tree;
130 const char **m_buffer_ptr;
131 bool m_verbose;
132 bool m_quote;
133};
134
135/* Subclass of format_postprocessor for the C++ frontend.
136 This handles the %H and %I formatting codes, printing them
137 in a postprocessing phase (since they affect each other). */
138
139class cxx_format_postprocessor : public format_postprocessor
140{
141 public:
142 cxx_format_postprocessor ()
143 : m_type_a (), m_type_b ()
144 {}
145
146 format_postprocessor *clone() const FINAL OVERRIDE
147 {
148 return new cxx_format_postprocessor ();
149 }
150
151 void handle (pretty_printer *pp) FINAL OVERRIDE;
152
153 deferred_printed_type m_type_a;
154 deferred_printed_type m_type_b;
155};
156
157/* CONTEXT->printer is a basic pretty printer that was constructed
158 presumably by diagnostic_initialize(), called early in the
159 compiler's initialization process (in general_init) Before the FE
160 is initialized. This (C++) FE-specific diagnostic initializer is
161 thus replacing the basic pretty printer with one that has C++-aware
162 capacities. */
163
164void
165cxx_initialize_diagnostics (diagnostic_context *context)
166{
167 pretty_printer *base = context->printer;
168 cxx_pretty_printer *pp = XNEW (cxx_pretty_printer)((cxx_pretty_printer *) xmalloc (sizeof (cxx_pretty_printer))
)
;
169 context->printer = new (pp) cxx_pretty_printer ();
170
171 /* It is safe to free this object because it was previously XNEW()'d. */
172 base->~pretty_printer ();
173 XDELETE (base)free ((void*) (base));
174
175 c_common_diagnostics_set_defaults (context);
176 diagnostic_starter (context)(context)->begin_diagnostic = cp_diagnostic_starter;
177 /* diagnostic_finalizer is already c_diagnostic_finalizer. */
178 diagnostic_format_decoder (context)((context)->printer->format_decoder) = cp_printer;
179 pp->m_format_postprocessor = new cxx_format_postprocessor ();
180}
181
182/* Dump an '@module' name suffix for DECL, if any. */
183
184static void
185dump_module_suffix (cxx_pretty_printer *pp, tree decl)
186{
187 if (!modules_p ())
188 return;
189
190 if (!DECL_CONTEXT (decl)((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 190, __FUNCTION__))->decl_minimal.context)
)
191 return;
192
193 if (TREE_CODE (decl)((enum tree_code) (decl)->base.code) != CONST_DECL
194 || !UNSCOPED_ENUM_P (DECL_CONTEXT (decl))(((enum tree_code) (((contains_struct_check ((decl), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 194, __FUNCTION__))->decl_minimal.context))->base.code
) == ENUMERAL_TYPE && !((tree_check ((((contains_struct_check
((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 194, __FUNCTION__))->decl_minimal.context)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 194, __FUNCTION__, (ENUMERAL_TYPE)))->base.static_flag))
)
195 {
196 if (!DECL_NAMESPACE_SCOPE_P (decl)(!(((contains_struct_check ((decl), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 196, __FUNCTION__))->decl_common.lang_flag_0) &&
(((enum tree_code) (decl)->base.code) == CONST_DECL || ((
enum tree_code) (decl)->base.code) == PARM_DECL || ((enum tree_code
) (decl)->base.code) == TYPE_DECL || ((enum tree_code) (decl
)->base.code) == TEMPLATE_DECL)) && ((enum tree_code
) ((!(! (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 196, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 196, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((decl)
, (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 196, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL]))->base.code) == NAMESPACE_DECL)
)
197 return;
198
199 if (TREE_CODE (decl)((enum tree_code) (decl)->base.code) == NAMESPACE_DECL
200 && !DECL_NAMESPACE_ALIAS (decl)((contains_struct_check (((tree_check ((decl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 200, __FUNCTION__, (NAMESPACE_DECL)))), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 200, __FUNCTION__))->decl_common.abstract_origin)
201 && (TREE_PUBLIC (decl)((decl)->base.public_flag) || !TREE_PUBLIC (CP_DECL_CONTEXT (decl))(((!(! (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 201, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 201, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((decl)
, (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 201, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL]))->base.public_flag)
))
202 return;
203 }
204
205 if (unsigned m = get_originating_module (decl))
206 if (const char *n = module_name (m, false))
207 {
208 pp_character (pp, '@');
209 pp->padding = pp_none;
210 pp_string (pp, n);
211 }
212}
213
214/* Dump a scope, if deemed necessary. */
215
216static void
217dump_scope (cxx_pretty_printer *pp, tree scope, int flags)
218{
219 int f = flags & (TFF_SCOPE(1) | TFF_CHASE_TYPEDEF(1 << 1));
220
221 if (scope == NULL_TREE(tree) __null)
222 return;
223
224 /* Enum values within an unscoped enum will be CONST_DECL with an
225 ENUMERAL_TYPE as their "scope". Use CP_TYPE_CONTEXT of the
226 ENUMERAL_TYPE, so as to print any enclosing namespace. */
227 if (UNSCOPED_ENUM_P (scope)(((enum tree_code) (scope)->base.code) == ENUMERAL_TYPE &&
!((tree_check ((scope), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 227, __FUNCTION__, (ENUMERAL_TYPE)))->base.static_flag))
)
228 scope = CP_TYPE_CONTEXT (scope)(!(! (((tree_class_check ((scope), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 228, __FUNCTION__))->type_common.context)) || ((enum tree_code
) (((tree_class_check ((scope), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 228, __FUNCTION__))->type_common.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((tree_class_check ((scope), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 228, __FUNCTION__))->type_common.context) : cp_global_trees
[CPTI_GLOBAL])
;
229
230 if (TREE_CODE (scope)((enum tree_code) (scope)->base.code) == NAMESPACE_DECL)
231 {
232 if (scope != global_namespacecp_global_trees[CPTI_GLOBAL])
233 {
234 dump_decl (pp, scope, f);
235 pp_cxx_colon_colon (pp);
236 }
237 }
238 else if (AGGREGATE_TYPE_P (scope)(((enum tree_code) (scope)->base.code) == ARRAY_TYPE || ((
(enum tree_code) (scope)->base.code) == RECORD_TYPE || ((enum
tree_code) (scope)->base.code) == UNION_TYPE || ((enum tree_code
) (scope)->base.code) == QUAL_UNION_TYPE))
239 || SCOPED_ENUM_P (scope)(((enum tree_code) (scope)->base.code) == ENUMERAL_TYPE &&
((tree_check ((scope), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 239, __FUNCTION__, (ENUMERAL_TYPE)))->base.static_flag))
)
240 {
241 dump_type (pp, scope, f);
242 pp_cxx_colon_colon (pp);
243 }
244 else if ((flags & TFF_SCOPE(1)) && TREE_CODE (scope)((enum tree_code) (scope)->base.code) == FUNCTION_DECL)
245 {
246 if (DECL_USE_TEMPLATE (scope)(((contains_struct_check ((scope), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 246, __FUNCTION__))->decl_common.lang_specific)->u.base
.use_template)
)
247 f |= TFF_NO_FUNCTION_ARGUMENTS(1 << 10);
248 dump_function_decl (pp, scope, f);
249 pp_cxx_colon_colon (pp);
250 }
251}
252
253/* Dump the template ARGument under control of FLAGS. */
254
255static void
256dump_template_argument (cxx_pretty_printer *pp, tree arg, int flags)
257{
258 if (ARGUMENT_PACK_P (arg)(((enum tree_code) (arg)->base.code) == TYPE_ARGUMENT_PACK
|| ((enum tree_code) (arg)->base.code) == NONTYPE_ARGUMENT_PACK
)
)
259 dump_template_argument_list (pp, ARGUMENT_PACK_ARGS (arg)(((enum tree_code) (arg)->base.code) == TYPE_ARGUMENT_PACK
? ((contains_struct_check ((arg), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 259, __FUNCTION__))->typed.type) : (*((const_cast<tree
*> (tree_operand_check ((arg), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 259, __FUNCTION__))))))
,
260 /* No default args in argument packs. */
261 flags|TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS(1 << 12));
262 else if (TYPE_P (arg)(tree_code_type[(int) (((enum tree_code) (arg)->base.code)
)] == tcc_type)
|| TREE_CODE (arg)((enum tree_code) (arg)->base.code) == TEMPLATE_DECL)
263 dump_type (pp, arg, flags & ~TFF_CLASS_KEY_OR_ENUM(1 << 3));
264 else
265 {
266 if (TREE_CODE (arg)((enum tree_code) (arg)->base.code) == TREE_LIST)
267 arg = TREE_VALUE (arg)((tree_check ((arg), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 267, __FUNCTION__, (TREE_LIST)))->list.value)
;
268
269 /* Strip implicit conversions. */
270 while (CONVERT_EXPR_P (arg)((((enum tree_code) (arg)->base.code)) == NOP_EXPR || (((enum
tree_code) (arg)->base.code)) == CONVERT_EXPR)
)
271 arg = TREE_OPERAND (arg, 0)(*((const_cast<tree*> (tree_operand_check ((arg), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 271, __FUNCTION__)))))
;
272
273 dump_expr (pp, arg, (flags | TFF_EXPR_IN_PARENS(1 << 9)) & ~TFF_CLASS_KEY_OR_ENUM(1 << 3));
274 }
275}
276
277/* Count the number of template arguments ARGS whose value does not
278 match the (optional) default template parameter in PARAMS */
279
280static int
281get_non_default_template_args_count (tree args, int flags)
282{
283 int n = TREE_VEC_LENGTH (INNERMOST_TEMPLATE_ARGS (args))((tree_check (((get_innermost_template_args ((args), 1))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 283, __FUNCTION__, (TREE_VEC)))->base.u.length)
;
284
285 if (/* We use this flag when generating debug information. We don't
286 want to expand templates at this point, for this may generate
287 new decls, which gets decl counts out of sync, which may in
288 turn cause codegen differences between compilations with and
289 without -g. */
290 (flags & TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS(1 << 12)) != 0
291 || !flag_pretty_templatesglobal_options.x_flag_pretty_templates)
292 return n;
293
294 return GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT (INNERMOST_TEMPLATE_ARGS (args))int_cst_value (((contains_struct_check (((tree_check (((get_innermost_template_args
((args), 1))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 294, __FUNCTION__, (TREE_VEC)))), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 294, __FUNCTION__))->common.chain))
;
295}
296
297/* Dump a template-argument-list ARGS (always a TREE_VEC) under control
298 of FLAGS. */
299
300static void
301dump_template_argument_list (cxx_pretty_printer *pp, tree args, int flags)
302{
303 int n = get_non_default_template_args_count (args, flags);
304 int need_comma = 0;
305 int i;
306
307 for (i = 0; i < n; ++i)
308 {
309 tree arg = TREE_VEC_ELT (args, i)(*((const_cast<tree *> (tree_vec_elt_check ((args), (i)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 309, __FUNCTION__)))))
;
310
311 /* Only print a comma if we know there is an argument coming. In
312 the case of an empty template argument pack, no actual
313 argument will be printed. */
314 if (need_comma
315 && (!ARGUMENT_PACK_P (arg)(((enum tree_code) (arg)->base.code) == TYPE_ARGUMENT_PACK
|| ((enum tree_code) (arg)->base.code) == NONTYPE_ARGUMENT_PACK
)
316 || TREE_VEC_LENGTH (ARGUMENT_PACK_ARGS (arg))((tree_check (((((enum tree_code) (arg)->base.code) == TYPE_ARGUMENT_PACK
? ((contains_struct_check ((arg), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 316, __FUNCTION__))->typed.type) : (*((const_cast<tree
*> (tree_operand_check ((arg), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 316, __FUNCTION__))))))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 316, __FUNCTION__, (TREE_VEC)))->base.u.length)
> 0))
317 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
318
319 dump_template_argument (pp, arg, flags);
320 need_comma = 1;
321 }
322}
323
324/* Dump a template parameter PARM (a TREE_LIST) under control of FLAGS. */
325
326static void
327dump_template_parameter (cxx_pretty_printer *pp, tree parm, int flags)
328{
329 tree p;
330 tree a;
331
332 if (parm == error_mark_nodeglobal_trees[TI_ERROR_MARK])
333 return;
334
335 p = TREE_VALUE (parm)((tree_check ((parm), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 335, __FUNCTION__, (TREE_LIST)))->list.value)
;
336 a = TREE_PURPOSE (parm)((tree_check ((parm), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 336, __FUNCTION__, (TREE_LIST)))->list.purpose)
;
337
338 if (TREE_CODE (p)((enum tree_code) (p)->base.code) == TYPE_DECL)
339 {
340 if (flags & TFF_DECL_SPECIFIERS(1 << 2))
341 {
342 pp_cxx_ws_string (pp, "class")pp_c_ws_string (pp, "class");
343 if (TEMPLATE_TYPE_PARAMETER_PACK (TREE_TYPE (p))((((tree_not_check2 (((tree_check (((((tree_class_check (((tree_check3
(((((contains_struct_check ((p), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 343, __FUNCTION__))->typed.type))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 343, __FUNCTION__, (TEMPLATE_TYPE_PARM), (TEMPLATE_TEMPLATE_PARM
), (BOUND_TEMPLATE_TEMPLATE_PARM)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 343, __FUNCTION__))->type_non_common.values))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 343, __FUNCTION__, (TEMPLATE_PARM_INDEX)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 343, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)))
)
344 pp_cxx_ws_string (pp, "...")pp_c_ws_string (pp, "...");
345 if (DECL_NAME (p)((contains_struct_check ((p), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 345, __FUNCTION__))->decl_minimal.name)
)
346 pp_cxx_tree_identifier (pp, DECL_NAME (p))pp_c_identifier (pp, ((const char *) (tree_check ((((contains_struct_check
((p), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 346, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 346, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
347 }
348 else if (DECL_NAME (p)((contains_struct_check ((p), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 348, __FUNCTION__))->decl_minimal.name)
)
349 pp_cxx_tree_identifier (pp, DECL_NAME (p))pp_c_identifier (pp, ((const char *) (tree_check ((((contains_struct_check
((p), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 349, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 349, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
350 else
351 pp_cxx_canonical_template_parameter (pp, TREE_TYPE (p)((contains_struct_check ((p), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 351, __FUNCTION__))->typed.type)
);
352 }
353 else
354 dump_decl (pp, p, flags | TFF_DECL_SPECIFIERS(1 << 2));
355
356 if ((flags & TFF_FUNCTION_DEFAULT_ARGUMENTS(1 << 5)) && a != NULL_TREE(tree) __null)
357 {
358 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
359 pp_equal (pp)pp_character (pp, '=');
360 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
361 if (TREE_CODE (p)((enum tree_code) (p)->base.code) == TYPE_DECL || TREE_CODE (p)((enum tree_code) (p)->base.code) == TEMPLATE_DECL)
362 dump_type (pp, a, flags & ~TFF_CHASE_TYPEDEF(1 << 1));
363 else
364 dump_expr (pp, a, flags | TFF_EXPR_IN_PARENS(1 << 9));
365 }
366}
367
368/* Dump, under control of FLAGS, a template-parameter-list binding.
369 PARMS is a TREE_LIST of TREE_VEC of TREE_LIST and ARGS is a
370 TREE_VEC. */
371
372static void
373dump_template_bindings (cxx_pretty_printer *pp, tree parms, tree args,
374 vec<tree, va_gc> *typenames)
375{
376 bool need_semicolon = false;
377 int i;
378 tree t;
379
380 while (parms)
381 {
382 tree p = TREE_VALUE (parms)((tree_check ((parms), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 382, __FUNCTION__, (TREE_LIST)))->list.value)
;
383 int lvl = TMPL_PARMS_DEPTH (parms)((long) ((unsigned long) (*tree_int_cst_elt_check ((((tree_check
((parms), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 383, __FUNCTION__, (TREE_LIST)))->list.purpose)), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 383, __FUNCTION__))))
;
384 int arg_idx = 0;
385 int i;
386 tree lvl_args = NULL_TREE(tree) __null;
387
388 /* Don't crash if we had an invalid argument list. */
389 if (TMPL_ARGS_DEPTH (args)((args && ((tree_check ((args), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 389, __FUNCTION__, (TREE_VEC)))->base.u.length) &&
(*((const_cast<tree *> (tree_vec_elt_check ((args), (0
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 389, __FUNCTION__))))) && ((enum tree_code) ((*((const_cast
<tree *> (tree_vec_elt_check ((args), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 389, __FUNCTION__))))))->base.code) == TREE_VEC) ? ((tree_check
((args), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 389, __FUNCTION__, (TREE_VEC)))->base.u.length) : 1)
>= lvl)
390 lvl_args = TMPL_ARGS_LEVEL (args, lvl)((args && ((tree_check ((args), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 390, __FUNCTION__, (TREE_VEC)))->base.u.length) &&
(*((const_cast<tree *> (tree_vec_elt_check ((args), (0
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 390, __FUNCTION__))))) && ((enum tree_code) ((*((const_cast
<tree *> (tree_vec_elt_check ((args), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 390, __FUNCTION__))))))->base.code) == TREE_VEC) ? (*((const_cast
<tree *> (tree_vec_elt_check ((args), ((lvl) - 1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 390, __FUNCTION__))))) : (args))
;
391
392 for (i = 0; i < TREE_VEC_LENGTH (p)((tree_check ((p), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 392, __FUNCTION__, (TREE_VEC)))->base.u.length)
; ++i)
393 {
394 tree arg = NULL_TREE(tree) __null;
395
396 /* Don't crash if we had an invalid argument list. */
397 if (lvl_args && NUM_TMPL_ARGS (lvl_args)(((tree_check ((lvl_args), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 397, __FUNCTION__, (TREE_VEC)))->base.u.length))
> arg_idx)
398 arg = TREE_VEC_ELT (lvl_args, arg_idx)(*((const_cast<tree *> (tree_vec_elt_check ((lvl_args),
(arg_idx), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 398, __FUNCTION__)))))
;
399
400 if (need_semicolon)
401 pp_separate_with_semicolon (pp)pp_cxx_separate_with (pp, ';');
402 dump_template_parameter (pp, TREE_VEC_ELT (p, i)(*((const_cast<tree *> (tree_vec_elt_check ((p), (i), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 402, __FUNCTION__)))))
,
403 TFF_PLAIN_IDENTIFIER(0));
404 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
405 pp_equal (pp)pp_character (pp, '=');
406 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
407 if (arg)
408 {
409 if (ARGUMENT_PACK_P (arg)(((enum tree_code) (arg)->base.code) == TYPE_ARGUMENT_PACK
|| ((enum tree_code) (arg)->base.code) == NONTYPE_ARGUMENT_PACK
)
)
410 pp_cxx_left_brace (pp)pp_c_left_brace (pp);
411 dump_template_argument (pp, arg, TFF_PLAIN_IDENTIFIER(0));
412 if (ARGUMENT_PACK_P (arg)(((enum tree_code) (arg)->base.code) == TYPE_ARGUMENT_PACK
|| ((enum tree_code) (arg)->base.code) == NONTYPE_ARGUMENT_PACK
)
)
413 pp_cxx_right_brace (pp)pp_c_right_brace (pp);
414 }
415 else
416 pp_string (pp, M_("<missing>")((cxx_pp)->translate_identifiers ? gettext ("<missing>"
) : ("<missing>"))
);
417
418 ++arg_idx;
419 need_semicolon = true;
420 }
421
422 parms = TREE_CHAIN (parms)((contains_struct_check ((parms), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 422, __FUNCTION__))->common.chain)
;
423 }
424
425 /* Don't bother with typenames for a partial instantiation. */
426 if (vec_safe_is_empty (typenames) || uses_template_parms (args))
427 return;
428
429 /* Don't try to print typenames when we're processing a clone. */
430 if (current_function_decl
431 && !DECL_LANG_SPECIFIC (current_function_decl)((contains_struct_check ((current_function_decl), (TS_DECL_COMMON
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 431, __FUNCTION__))->decl_common.lang_specific)
)
432 return;
433
434 /* Don't try to do this once cgraph starts throwing away front-end
435 information. */
436 if (at_eof >= 2)
437 return;
438
439 FOR_EACH_VEC_SAFE_ELT (typenames, i, t)for (i = 0; vec_safe_iterate ((typenames), (i), &(t)); ++
(i))
440 {
441 if (need_semicolon)
442 pp_separate_with_semicolon (pp)pp_cxx_separate_with (pp, ';');
443 dump_type (pp, t, TFF_PLAIN_IDENTIFIER(0));
444 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
445 pp_equal (pp)pp_character (pp, '=');
446 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
447 push_deferring_access_checks (dk_no_check);
448 t = tsubst (t, args, tf_none, NULL_TREE(tree) __null);
449 pop_deferring_access_checks ();
450 /* Strip typedefs. We can't just use TFF_CHASE_TYPEDEF because
451 pp_simple_type_specifier doesn't know about it. */
452 t = strip_typedefs (t, NULL__null, STF_USER_VISIBLE);
453 dump_type (pp, t, TFF_PLAIN_IDENTIFIER(0));
454 }
455}
456
457/* Dump a human-readable equivalent of the alias template
458 specialization of T. */
459
460static void
461dump_alias_template_specialization (cxx_pretty_printer *pp, tree t, int flags)
462{
463 gcc_assert (alias_template_specialization_p (t, nt_opaque))((void)(!(alias_template_specialization_p (t, nt_opaque)) ? fancy_abort
("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 463, __FUNCTION__), 0 : 0))
;
464
465 tree decl = TYPE_NAME (t)((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 465, __FUNCTION__))->type_common.name)
;
466 if (!(flags & TFF_UNQUALIFIED_NAME(1 << 11)))
467 dump_scope (pp, CP_DECL_CONTEXT (decl)(!(! (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 467, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 467, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((decl)
, (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 467, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])
, flags);
468 pp_cxx_tree_identifier (pp, DECL_NAME (decl))pp_c_identifier (pp, ((const char *) (tree_check ((((contains_struct_check
((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 468, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 468, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
469 dump_template_parms (pp, DECL_TEMPLATE_INFO (decl)(((contains_struct_check ((template_info_decl_check ((decl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 469, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 469, __FUNCTION__))->decl_common.lang_specific) ->u.min
.template_info)
,
470 /*primary=*/false,
471 flags & ~TFF_TEMPLATE_HEADER(1 << 7));
472}
473
474/* Dump a human-readable equivalent of TYPE. FLAGS controls the
475 format. */
476
477static void
478dump_type (cxx_pretty_printer *pp, tree t, int flags)
479{
480 if (t == NULL_TREE(tree) __null)
481 return;
482
483 /* Don't print e.g. "struct mytypedef". */
484 if (TYPE_P (t)(tree_code_type[(int) (((enum tree_code) (t)->base.code))]
== tcc_type)
&& typedef_variant_p (t))
485 {
486 tree decl = TYPE_NAME (t)((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 486, __FUNCTION__))->type_common.name)
;
487 if ((flags & TFF_CHASE_TYPEDEF(1 << 1))
488 || DECL_SELF_REFERENCE_P (decl)(((enum tree_code) (decl)->base.code) == TYPE_DECL &&
((contains_struct_check ((decl), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 488, __FUNCTION__))->decl_common.lang_flag_4))
489 || (!flag_pretty_templatesglobal_options.x_flag_pretty_templates
490 && DECL_LANG_SPECIFIC (decl)((contains_struct_check ((decl), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 490, __FUNCTION__))->decl_common.lang_specific)
&& DECL_TEMPLATE_INFO (decl)(((contains_struct_check ((template_info_decl_check ((decl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 490, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 490, __FUNCTION__))->decl_common.lang_specific) ->u.min
.template_info)
))
491 {
492 unsigned int stf_flags = (!(pp->flags & pp_c_flag_gnu_v3)
493 ? STF_USER_VISIBLE : 0);
494 t = strip_typedefs (t, NULL__null, stf_flags);
495 }
496 else if (alias_template_specialization_p (t, nt_opaque))
497 {
498 dump_alias_template_specialization (pp, t, flags);
499 return;
500 }
501 else if (same_type_p (t, TREE_TYPE (decl))comptypes ((t), (((contains_struct_check ((decl), (TS_TYPED),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 501, __FUNCTION__))->typed.type)), 0)
)
502 t = decl;
503 else
504 {
505 pp_cxx_cv_qualifier_seq (pp, t)pp_c_type_qualifier_list (pp, t);
506 pp_cxx_tree_identifier (pp, TYPE_IDENTIFIER (t))pp_c_identifier (pp, ((const char *) (tree_check (((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 506, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((t), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 506, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 506, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 506, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 506, __FUNCTION__))->type_common.name))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 506, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
507 return;
508 }
509 }
510
511 if (TYPE_PTRMEMFUNC_P (t)(((enum tree_code) (t)->base.code) == RECORD_TYPE &&
(((tree_class_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 511, __FUNCTION__, (RECORD_TYPE)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 511, __FUNCTION__))->type_common.lang_flag_2)))
)
512 goto offset_type;
513
514 switch (TREE_CODE (t)((enum tree_code) (t)->base.code))
515 {
516 case LANG_TYPE:
517 if (t == init_list_type_nodecp_global_trees[CPTI_INIT_LIST_TYPE])
518 pp_string (pp, M_("<brace-enclosed initializer list>")((cxx_pp)->translate_identifiers ? gettext ("<brace-enclosed initializer list>"
) : ("<brace-enclosed initializer list>"))
);
519 else if (t == unknown_type_nodecp_global_trees[CPTI_UNKNOWN_TYPE])
520 pp_string (pp, M_("<unresolved overloaded function type>")((cxx_pp)->translate_identifiers ? gettext ("<unresolved overloaded function type>"
) : ("<unresolved overloaded function type>"))
);
521 else
522 {
523 pp_cxx_cv_qualifier_seq (pp, t)pp_c_type_qualifier_list (pp, t);
524 pp_cxx_tree_identifier (pp, TYPE_IDENTIFIER (t))pp_c_identifier (pp, ((const char *) (tree_check (((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 524, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((t), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 524, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 524, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 524, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 524, __FUNCTION__))->type_common.name))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 524, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
525 }
526 break;
527
528 case TREE_LIST:
529 /* A list of function parms. */
530 dump_parameters (pp, t, flags);
531 break;
532
533 case IDENTIFIER_NODE:
534 pp_cxx_tree_identifier (pp, t)pp_c_identifier (pp, ((const char *) (tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 534, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
535 break;
536
537 case TREE_BINFO:
538 dump_type (pp, BINFO_TYPE (t)((contains_struct_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 538, __FUNCTION__, (TREE_BINFO)))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 538, __FUNCTION__))->typed.type)
, flags);
539 break;
540
541 case RECORD_TYPE:
542 case UNION_TYPE:
543 case ENUMERAL_TYPE:
544 dump_aggr_type (pp, t, flags);
545 break;
546
547 case TYPE_DECL:
548 if (flags & TFF_CHASE_TYPEDEF(1 << 1))
549 {
550 dump_type (pp, DECL_ORIGINAL_TYPE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 550, __FUNCTION__, (TYPE_DECL)))->decl_non_common.result
)
551 ? DECL_ORIGINAL_TYPE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 551, __FUNCTION__, (TYPE_DECL)))->decl_non_common.result
)
: TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 551, __FUNCTION__))->typed.type)
, flags);
552 break;
553 }
554 /* Fall through. */
555
556 case TEMPLATE_DECL:
557 case NAMESPACE_DECL:
558 dump_decl (pp, t, flags & ~TFF_DECL_SPECIFIERS(1 << 2));
559 break;
560
561 case INTEGER_TYPE:
562 case REAL_TYPE:
563 case VOID_TYPE:
564 case OPAQUE_TYPE:
565 case BOOLEAN_TYPE:
566 case COMPLEX_TYPE:
567 case VECTOR_TYPE:
568 case FIXED_POINT_TYPE:
569 pp_type_specifier_seq (pp, t)(pp)->type_specifier_seq (pp, t);
570 break;
571
572 case TEMPLATE_TEMPLATE_PARM:
573 /* For parameters inside template signature. */
574 if (TYPE_IDENTIFIER (t)(((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 574, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((t), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 574, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 574, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 574, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 574, __FUNCTION__))->type_common.name))
)
575 pp_cxx_tree_identifier (pp, TYPE_IDENTIFIER (t))pp_c_identifier (pp, ((const char *) (tree_check (((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 575, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((t), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 575, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 575, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 575, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 575, __FUNCTION__))->type_common.name))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 575, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
576 else
577 pp_cxx_canonical_template_parameter (pp, t);
578 break;
579
580 case BOUND_TEMPLATE_TEMPLATE_PARM:
581 {
582 tree args = TYPE_TI_ARGS (t)(((struct tree_template_info*)(tree_check (((((enum tree_code
) (t)->base.code) == ENUMERAL_TYPE || ((enum tree_code) (t
)->base.code) == BOUND_TEMPLATE_TEMPLATE_PARM || (((enum tree_code
) (t)->base.code) == RECORD_TYPE || ((enum tree_code) (t)->
base.code) == UNION_TYPE || ((enum tree_code) (t)->base.code
) == QUAL_UNION_TYPE) ? ((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 582, __FUNCTION__))->type_non_common.lang_1) : (tree) __null
)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 582, __FUNCTION__, (TEMPLATE_INFO))))->args)
;
583 pp_cxx_cv_qualifier_seq (pp, t)pp_c_type_qualifier_list (pp, t);
584 pp_cxx_tree_identifier (pp, TYPE_IDENTIFIER (t))pp_c_identifier (pp, ((const char *) (tree_check (((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 584, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((t), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 584, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 584, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 584, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 584, __FUNCTION__))->type_common.name))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 584, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
585 pp_cxx_begin_template_argument_list (pp);
586 dump_template_argument_list (pp, args, flags);
587 pp_cxx_end_template_argument_list (pp);
588 }
589 break;
590
591 case TEMPLATE_TYPE_PARM:
592 pp_cxx_cv_qualifier_seq (pp, t)pp_c_type_qualifier_list (pp, t);
593 if (template_placeholder_p (t))
594 {
595 t = TREE_TYPE (CLASS_PLACEHOLDER_TEMPLATE (t))((contains_struct_check (((((contains_struct_check ((((tree_class_check
(((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 595, __FUNCTION__, (TEMPLATE_TYPE_PARM)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 595, __FUNCTION__))->type_common.name)), (TS_DECL_COMMON
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 595, __FUNCTION__))->decl_common.initial))), (TS_TYPED),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 595, __FUNCTION__))->typed.type)
;
596 pp_cxx_tree_identifier (pp, TYPE_IDENTIFIER (t))pp_c_identifier (pp, ((const char *) (tree_check (((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 596, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((t), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 596, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 596, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 596, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 596, __FUNCTION__))->type_common.name))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 596, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
597 pp_string (pp, "<...auto...>");
598 }
599 else if (TYPE_IDENTIFIER (t)(((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 599, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((t), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 599, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 599, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 599, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 599, __FUNCTION__))->type_common.name))
)
600 pp_cxx_tree_identifier (pp, TYPE_IDENTIFIER (t))pp_c_identifier (pp, ((const char *) (tree_check (((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 600, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((t), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 600, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 600, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 600, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 600, __FUNCTION__))->type_common.name))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 600, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
601 else
602 pp_cxx_canonical_template_parameter
603 (pp, TEMPLATE_TYPE_PARM_INDEX (t)(((tree_class_check (((tree_check3 (((t)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 603, __FUNCTION__, (TEMPLATE_TYPE_PARM), (TEMPLATE_TEMPLATE_PARM
), (BOUND_TEMPLATE_TEMPLATE_PARM)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 603, __FUNCTION__))->type_non_common.values))
);
604 /* If this is a constrained placeholder, add the requirements. */
605 if (tree c = PLACEHOLDER_TYPE_CONSTRAINTS (t)((contains_struct_check ((((tree_class_check ((t), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 605, __FUNCTION__))->type_common.name)), (TS_DECL_COMMON
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 605, __FUNCTION__))->decl_common.size_unit)
)
606 pp_cxx_constrained_type_spec (pp, c);
607 break;
608
609 /* This is not always necessary for pointers and such, but doing this
610 reduces code size. */
611 case ARRAY_TYPE:
612 case POINTER_TYPE:
613 case REFERENCE_TYPE:
614 case OFFSET_TYPE:
615 offset_type:
616 case FUNCTION_TYPE:
617 case METHOD_TYPE:
618 {
619 dump_type_prefix (pp, t, flags);
620 dump_type_suffix (pp, t, flags);
621 break;
622 }
623 case TYPENAME_TYPE:
624 if (! (flags & TFF_CHASE_TYPEDEF(1 << 1))
625 && DECL_ORIGINAL_TYPE (TYPE_NAME (t))((tree_check ((((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 625, __FUNCTION__))->type_common.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 625, __FUNCTION__, (TYPE_DECL)))->decl_non_common.result
)
)
626 {
627 dump_decl (pp, TYPE_NAME (t)((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 627, __FUNCTION__))->type_common.name)
, TFF_PLAIN_IDENTIFIER(0));
628 break;
629 }
630 pp_cxx_cv_qualifier_seq (pp, t)pp_c_type_qualifier_list (pp, t);
631 pp_cxx_ws_string (pp,pp_c_ws_string (pp, (((tree_not_check2 (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 632, __FUNCTION__, (TYPENAME_TYPE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 632, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)) ? "enum" : (((tree_not_check2 (((tree_check ((
t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 633, __FUNCTION__, (TYPENAME_TYPE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 633, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_1)) ? "class" : "typename")
632 TYPENAME_IS_ENUM_P (t) ? "enum"pp_c_ws_string (pp, (((tree_not_check2 (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 632, __FUNCTION__, (TYPENAME_TYPE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 632, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)) ? "enum" : (((tree_not_check2 (((tree_check ((
t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 633, __FUNCTION__, (TYPENAME_TYPE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 633, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_1)) ? "class" : "typename")
633 : TYPENAME_IS_CLASS_P (t) ? "class"pp_c_ws_string (pp, (((tree_not_check2 (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 632, __FUNCTION__, (TYPENAME_TYPE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 632, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)) ? "enum" : (((tree_not_check2 (((tree_check ((
t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 633, __FUNCTION__, (TYPENAME_TYPE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 633, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_1)) ? "class" : "typename")
634 : "typename")pp_c_ws_string (pp, (((tree_not_check2 (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 632, __FUNCTION__, (TYPENAME_TYPE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 632, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)) ? "enum" : (((tree_not_check2 (((tree_check ((
t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 633, __FUNCTION__, (TYPENAME_TYPE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 633, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_1)) ? "class" : "typename")
;
635 dump_typename (pp, t, flags);
636 break;
637
638 case UNBOUND_CLASS_TEMPLATE:
639 if (! (flags & TFF_UNQUALIFIED_NAME(1 << 11)))
640 {
641 dump_type (pp, TYPE_CONTEXT (t)((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 641, __FUNCTION__))->type_common.context)
, flags);
642 pp_cxx_colon_colon (pp);
643 }
644 pp_cxx_ws_string (pp, "template")pp_c_ws_string (pp, "template");
645 dump_type (pp, TYPE_IDENTIFIER (t)(((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 645, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((t), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 645, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 645, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 645, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 645, __FUNCTION__))->type_common.name))
, flags);
646 break;
647
648 case TYPEOF_TYPE:
649 pp_cxx_ws_string (pp, "__typeof__")pp_c_ws_string (pp, "__typeof__");
650 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
651 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
652 dump_expr (pp, TYPEOF_TYPE_EXPR (t)(((tree_class_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 652, __FUNCTION__, (TYPEOF_TYPE)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 652, __FUNCTION__))->type_non_common.values))
, flags & ~TFF_EXPR_IN_PARENS(1 << 9));
653 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
654 break;
655
656 case UNDERLYING_TYPE:
657 pp_cxx_ws_string (pp, "__underlying_type")pp_c_ws_string (pp, "__underlying_type");
658 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
659 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
660 dump_expr (pp, UNDERLYING_TYPE_TYPE (t)(((tree_class_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 660, __FUNCTION__, (UNDERLYING_TYPE)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 660, __FUNCTION__))->type_non_common.values))
, flags & ~TFF_EXPR_IN_PARENS(1 << 9));
661 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
662 break;
663
664 case TYPE_PACK_EXPANSION:
665 dump_type (pp, PACK_EXPANSION_PATTERN (t)(((enum tree_code) (t)->base.code) == TYPE_PACK_EXPANSION ?
((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 665, __FUNCTION__))->typed.type) : (*((const_cast<tree
*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 665, __FUNCTION__))))))
, flags);
666 pp_cxx_ws_string (pp, "...")pp_c_ws_string (pp, "...");
667 break;
668
669 case TYPE_ARGUMENT_PACK:
670 dump_template_argument (pp, t, flags);
671 break;
672
673 case DECLTYPE_TYPE:
674 pp_cxx_ws_string (pp, "decltype")pp_c_ws_string (pp, "decltype");
675 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
676 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
677 dump_expr (pp, DECLTYPE_TYPE_EXPR (t)(((tree_class_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 677, __FUNCTION__, (DECLTYPE_TYPE)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 677, __FUNCTION__))->type_non_common.values))
, flags & ~TFF_EXPR_IN_PARENS(1 << 9));
678 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
679 break;
680
681 case NULLPTR_TYPE:
682 pp_string (pp, "std::nullptr_t");
683 break;
684
685 default:
686 pp_unsupported_tree (pp, t)pp_verbatim (pp, "%qs not supported by %s", get_tree_code_name
(((enum tree_code) (t)->base.code)), __FUNCTION__)
;
687 /* Fall through. */
688
689 case ERROR_MARK:
690 pp_string (pp, M_("<type error>")((cxx_pp)->translate_identifiers ? gettext ("<type error>"
) : ("<type error>"))
);
691 break;
692 }
693}
694
695/* Dump a TYPENAME_TYPE. We need to notice when the context is itself
696 a TYPENAME_TYPE. */
697
698static void
699dump_typename (cxx_pretty_printer *pp, tree t, int flags)
700{
701 tree ctx = TYPE_CONTEXT (t)((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 701, __FUNCTION__))->type_common.context)
;
702
703 if (TREE_CODE (ctx)((enum tree_code) (ctx)->base.code) == TYPENAME_TYPE)
704 dump_typename (pp, ctx, flags);
705 else
706 dump_type (pp, ctx, flags & ~TFF_CLASS_KEY_OR_ENUM(1 << 3));
707 pp_cxx_colon_colon (pp);
708 dump_decl (pp, TYPENAME_TYPE_FULLNAME (t)(((tree_class_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 708, __FUNCTION__, (TYPENAME_TYPE)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 708, __FUNCTION__))->type_non_common.values))
, flags);
709}
710
711/* Return the name of the supplied aggregate, or enumeral type. */
712
713const char *
714class_key_or_enum_as_string (tree t)
715{
716 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == ENUMERAL_TYPE)
717 {
718 if (SCOPED_ENUM_P (t)(((enum tree_code) (t)->base.code) == ENUMERAL_TYPE &&
((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 718, __FUNCTION__, (ENUMERAL_TYPE)))->base.static_flag))
)
719 return "enum class";
720 else
721 return "enum";
722 }
723 else if (TREE_CODE (t)((enum tree_code) (t)->base.code) == UNION_TYPE)
724 return "union";
725 else if (TYPE_LANG_SPECIFIC (t)((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 725, __FUNCTION__))->type_with_lang_specific.lang_specific
)
&& CLASSTYPE_DECLARED_CLASS (t)((((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 725, __FUNCTION__))->type_with_lang_specific.lang_specific
))->declared_class)
)
726 return "class";
727 else
728 return "struct";
729}
730
731/* Print out a class declaration T under the control of FLAGS,
732 in the form `class foo'. */
733
734static void
735dump_aggr_type (cxx_pretty_printer *pp, tree t, int flags)
736{
737 const char *variety = class_key_or_enum_as_string (t);
738 int typdef = 0;
739 int tmplate = 0;
740
741 pp_cxx_cv_qualifier_seq (pp, t)pp_c_type_qualifier_list (pp, t);
742
743 if (flags & TFF_CLASS_KEY_OR_ENUM(1 << 3))
744 pp_cxx_ws_string (pp, variety)pp_c_ws_string (pp, variety);
745
746 tree decl = TYPE_NAME (t)((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 746, __FUNCTION__))->type_common.name)
;
747
748 if (decl)
749 {
750 typdef = (!DECL_ARTIFICIAL (decl)((contains_struct_check ((decl), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 750, __FUNCTION__))->decl_common.artificial_flag)
751 /* An alias specialization is not considered to be a
752 typedef. */
753 && !alias_template_specialization_p (t, nt_opaque));
754
755 if ((typdef
756 && ((flags & TFF_CHASE_TYPEDEF(1 << 1))
757 || (!flag_pretty_templatesglobal_options.x_flag_pretty_templates && DECL_LANG_SPECIFIC (decl)((contains_struct_check ((decl), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 757, __FUNCTION__))->decl_common.lang_specific)
758 && DECL_TEMPLATE_INFO (decl)(((contains_struct_check ((template_info_decl_check ((decl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 758, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 758, __FUNCTION__))->decl_common.lang_specific) ->u.min
.template_info)
)))
759 || DECL_SELF_REFERENCE_P (decl)(((enum tree_code) (decl)->base.code) == TYPE_DECL &&
((contains_struct_check ((decl), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 759, __FUNCTION__))->decl_common.lang_flag_4))
)
760 {
761 t = TYPE_MAIN_VARIANT (t)((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 761, __FUNCTION__))->type_common.main_variant)
;
762 decl = TYPE_NAME (t)((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 762, __FUNCTION__))->type_common.name)
;
763 typdef = 0;
764 }
765
766 tmplate = !typdef && TREE_CODE (t)((enum tree_code) (t)->base.code) != ENUMERAL_TYPE
767 && TYPE_LANG_SPECIFIC (t)((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 767, __FUNCTION__))->type_with_lang_specific.lang_specific
)
&& CLASSTYPE_TEMPLATE_INFO (t)(((tree_class_check (((tree_check3 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 767, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 767, __FUNCTION__))->type_non_common.lang_1))
768 && (TREE_CODE (CLASSTYPE_TI_TEMPLATE (t))((enum tree_code) (((struct tree_template_info*)(tree_check (
((((tree_class_check (((tree_check3 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 768, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 768, __FUNCTION__))->type_non_common.lang_1))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 768, __FUNCTION__, (TEMPLATE_INFO))))->tmpl)->base.code
)
!= TEMPLATE_DECL
769 || PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (t))(((((contains_struct_check ((((tree_check ((((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((((struct
tree_template_info*)(tree_check (((((tree_class_check (((tree_check3
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 769, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 769, __FUNCTION__))->type_non_common.lang_1))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 769, __FUNCTION__, (TEMPLATE_INFO))))->tmpl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 769, __FUNCTION__, (TEMPLATE_DECL))))))))->arguments), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 769, __FUNCTION__, (TREE_LIST)))->list.value)), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 769, __FUNCTION__))->typed.type))) == (((struct tree_template_info
*)(tree_check (((((tree_class_check (((tree_check3 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 769, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 769, __FUNCTION__))->type_non_common.lang_1))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 769, __FUNCTION__, (TEMPLATE_INFO))))->tmpl))
);
770
771 if (! (flags & TFF_UNQUALIFIED_NAME(1 << 11)))
772 dump_scope (pp, CP_DECL_CONTEXT (decl)(!(! (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 772, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 772, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((decl)
, (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 772, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])
, flags | TFF_SCOPE(1));
773 flags &= ~TFF_UNQUALIFIED_NAME(1 << 11);
774 if (tmplate)
775 {
776 /* Because the template names are mangled, we have to locate
777 the most general template, and use that name. */
778 tree tpl = TYPE_TI_TEMPLATE (t)(((struct tree_template_info*)(tree_check (((((enum tree_code
) (t)->base.code) == ENUMERAL_TYPE || ((enum tree_code) (t
)->base.code) == BOUND_TEMPLATE_TEMPLATE_PARM || (((enum tree_code
) (t)->base.code) == RECORD_TYPE || ((enum tree_code) (t)->
base.code) == UNION_TYPE || ((enum tree_code) (t)->base.code
) == QUAL_UNION_TYPE) ? ((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 778, __FUNCTION__))->type_non_common.lang_1) : (tree) __null
)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 778, __FUNCTION__, (TEMPLATE_INFO))))->tmpl)
;
779
780 while (DECL_TEMPLATE_INFO (tpl)(((contains_struct_check ((template_info_decl_check ((tpl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 780, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 780, __FUNCTION__))->decl_common.lang_specific) ->u.min
.template_info)
)
781 tpl = DECL_TI_TEMPLATE (tpl)((struct tree_template_info*)(tree_check (((((contains_struct_check
((template_info_decl_check ((tpl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 781, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 781, __FUNCTION__))->decl_common.lang_specific) ->u.min
.template_info)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 781, __FUNCTION__, (TEMPLATE_INFO))))->tmpl
;
782 decl = tpl;
783 }
784 }
785
786 if (LAMBDA_TYPE_P (t)(((enum tree_code) (t)->base.code) == RECORD_TYPE &&
((((tree_class_check ((((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.name))) && ((tree_check
((((((tree_class_check ((((tree_class_check ((t), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.name))->base.code))]
== tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__))->type_common.name)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 786, __FUNCTION__, (IDENTIFIER_NODE)))->base.protected_flag
))
)
787 {
788 /* A lambda's "type" is essentially its signature. */
789 pp_string (pp, M_("<lambda")((cxx_pp)->translate_identifiers ? gettext ("<lambda") :
("<lambda"))
);
790 if (lambda_function (t))
791 dump_parameters (pp,
792 FUNCTION_FIRST_USER_PARMTYPE (lambda_function (t))skip_artificial_parms_for ((lambda_function (t)), ((tree_check2
((((contains_struct_check ((lambda_function (t)), (TS_TYPED)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 792, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 792, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))->type_non_common
.values))
,
793 flags);
794 pp_greater (pp)pp_character (pp, '>');
795 }
796 else if (!decl || IDENTIFIER_ANON_P (DECL_NAME (decl))((tree_check ((((contains_struct_check ((decl), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 796, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 796, __FUNCTION__, (IDENTIFIER_NODE)))->base.private_flag
)
)
797 {
798 if (flags & TFF_CLASS_KEY_OR_ENUM(1 << 3))
799 pp_string (pp, M_("<unnamed>")((cxx_pp)->translate_identifiers ? gettext ("<unnamed>"
) : ("<unnamed>"))
);
800 else
801 pp_printf (pp, M_("<unnamed %s>")((cxx_pp)->translate_identifiers ? gettext ("<unnamed %s>"
) : ("<unnamed %s>"))
, variety);
802 }
803 else
804 pp_cxx_tree_identifier (pp, DECL_NAME (decl))pp_c_identifier (pp, ((const char *) (tree_check ((((contains_struct_check
((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 804, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 804, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
805
806 dump_module_suffix (pp, decl);
807
808 if (tmplate)
809 dump_template_parms (pp, TYPE_TEMPLATE_INFO (t)(((enum tree_code) (t)->base.code) == ENUMERAL_TYPE || ((enum
tree_code) (t)->base.code) == BOUND_TEMPLATE_TEMPLATE_PARM
|| (((enum tree_code) (t)->base.code) == RECORD_TYPE || (
(enum tree_code) (t)->base.code) == UNION_TYPE || ((enum tree_code
) (t)->base.code) == QUAL_UNION_TYPE) ? ((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 809, __FUNCTION__))->type_non_common.lang_1) : (tree) __null
)
,
810 !CLASSTYPE_USE_TEMPLATE (t)((((tree_class_check ((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 810, __FUNCTION__))->type_with_lang_specific.lang_specific
))->use_template)
,
811 flags & ~TFF_TEMPLATE_HEADER(1 << 7));
812}
813
814/* Dump into the obstack the initial part of the output for a given type.
815 This is necessary when dealing with things like functions returning
816 functions. Examples:
817
818 return type of `int (* fee ())()': pointer -> function -> int. Both
819 pointer (and reference and offset) and function (and member) types must
820 deal with prefix and suffix.
821
822 Arrays must also do this for DECL nodes, like int a[], and for things like
823 int *[]&. */
824
825static void
826dump_type_prefix (cxx_pretty_printer *pp, tree t, int flags)
827{
828 if (TYPE_PTRMEMFUNC_P (t)(((enum tree_code) (t)->base.code) == RECORD_TYPE &&
(((tree_class_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 828, __FUNCTION__, (RECORD_TYPE)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 828, __FUNCTION__))->type_common.lang_flag_2)))
)
829 {
830 t = TYPE_PTRMEMFUNC_FN_TYPE (t)(cp_build_qualified_type_real ((((contains_struct_check ((((tree_check3
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 830, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))->type_non_common.values)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 830, __FUNCTION__))->typed.type)), (cp_type_quals (t)), tf_warning_or_error
))
;
831 goto offset_type;
832 }
833
834 switch (TREE_CODE (t)((enum tree_code) (t)->base.code))
835 {
836 case POINTER_TYPE:
837 case REFERENCE_TYPE:
838 {
839 tree sub = TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 839, __FUNCTION__))->typed.type)
;
840
841 dump_type_prefix (pp, sub, flags);
842 if (TREE_CODE (sub)((enum tree_code) (sub)->base.code) == ARRAY_TYPE
843 || TREE_CODE (sub)((enum tree_code) (sub)->base.code) == FUNCTION_TYPE)
844 {
845 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
846 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
847 pp_c_attributes_display (pp, TYPE_ATTRIBUTES (sub)((tree_class_check ((sub), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 847, __FUNCTION__))->type_common.attributes)
);
848 }
849 if (TYPE_PTR_P (t)(((enum tree_code) (t)->base.code) == POINTER_TYPE))
850 pp_star (pp)pp_character (pp, '*');
851 else if (TYPE_REF_P (t)(((enum tree_code) (t)->base.code) == REFERENCE_TYPE))
852 {
853 if (TYPE_REF_IS_RVALUE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 853, __FUNCTION__, (REFERENCE_TYPE)))->base.private_flag
)
)
854 pp_ampersand_ampersand (pp)pp_string (pp, "&&");
855 else
856 pp_ampersand (pp)pp_character (pp, '&');
857 }
858 pp->padding = pp_before;
859 pp_cxx_cv_qualifier_seq (pp, t)pp_c_type_qualifier_list (pp, t);
860 }
861 break;
862
863 case OFFSET_TYPE:
864 offset_type:
865 dump_type_prefix (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 865, __FUNCTION__))->typed.type)
, flags);
866 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == OFFSET_TYPE) /* pmfs deal with this in d_t_p */
867 {
868 pp_maybe_space (pp);
869 if (TREE_CODE (TREE_TYPE (t))((enum tree_code) (((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 869, __FUNCTION__))->typed.type))->base.code)
== ARRAY_TYPE)
870 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
871 dump_type (pp, TYPE_OFFSET_BASETYPE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 871, __FUNCTION__, (OFFSET_TYPE)))->type_non_common.maxval
)
, flags);
872 pp_cxx_colon_colon (pp);
873 }
874 pp_cxx_star (pp)pp_c_star (pp);
875 pp_cxx_cv_qualifier_seq (pp, t)pp_c_type_qualifier_list (pp, t);
876 pp->padding = pp_before;
877 break;
878
879 /* This can be reached without a pointer when dealing with
880 templates, e.g. std::is_function. */
881 case FUNCTION_TYPE:
882 dump_type_prefix (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 882, __FUNCTION__))->typed.type)
, flags);
883 break;
884
885 case METHOD_TYPE:
886 dump_type_prefix (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 886, __FUNCTION__))->typed.type)
, flags);
887 pp_maybe_space (pp);
888 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
889 dump_aggr_type (pp, TYPE_METHOD_BASETYPE (t)((tree_check2 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 889, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))->type_non_common
.maxval)
, flags);
890 pp_cxx_colon_colon (pp);
891 break;
892
893 case ARRAY_TYPE:
894 dump_type_prefix (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 894, __FUNCTION__))->typed.type)
, flags);
895 break;
896
897 case ENUMERAL_TYPE:
898 case IDENTIFIER_NODE:
899 case INTEGER_TYPE:
900 case BOOLEAN_TYPE:
901 case REAL_TYPE:
902 case RECORD_TYPE:
903 case TEMPLATE_TYPE_PARM:
904 case TEMPLATE_TEMPLATE_PARM:
905 case BOUND_TEMPLATE_TEMPLATE_PARM:
906 case TREE_LIST:
907 case TYPE_DECL:
908 case TREE_VEC:
909 case UNION_TYPE:
910 case LANG_TYPE:
911 case VOID_TYPE:
912 case OPAQUE_TYPE:
913 case TYPENAME_TYPE:
914 case COMPLEX_TYPE:
915 case VECTOR_TYPE:
916 case TYPEOF_TYPE:
917 case UNDERLYING_TYPE:
918 case DECLTYPE_TYPE:
919 case TYPE_PACK_EXPANSION:
920 case FIXED_POINT_TYPE:
921 case NULLPTR_TYPE:
922 dump_type (pp, t, flags);
923 pp->padding = pp_before;
924 break;
925
926 default:
927 pp_unsupported_tree (pp, t)pp_verbatim (pp, "%qs not supported by %s", get_tree_code_name
(((enum tree_code) (t)->base.code)), __FUNCTION__)
;
928 /* fall through. */
929 case ERROR_MARK:
930 pp_string (pp, M_("<typeprefixerror>")((cxx_pp)->translate_identifiers ? gettext ("<typeprefixerror>"
) : ("<typeprefixerror>"))
);
931 break;
932 }
933}
934
935/* Dump the suffix of type T, under control of FLAGS. This is the part
936 which appears after the identifier (or function parms). */
937
938static void
939dump_type_suffix (cxx_pretty_printer *pp, tree t, int flags)
940{
941 if (TYPE_PTRMEMFUNC_P (t)(((enum tree_code) (t)->base.code) == RECORD_TYPE &&
(((tree_class_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 941, __FUNCTION__, (RECORD_TYPE)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 941, __FUNCTION__))->type_common.lang_flag_2)))
)
942 t = TYPE_PTRMEMFUNC_FN_TYPE (t)(cp_build_qualified_type_real ((((contains_struct_check ((((tree_check3
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 942, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))->type_non_common.values)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 942, __FUNCTION__))->typed.type)), (cp_type_quals (t)), tf_warning_or_error
))
;
943
944 switch (TREE_CODE (t)((enum tree_code) (t)->base.code))
945 {
946 case POINTER_TYPE:
947 case REFERENCE_TYPE:
948 case OFFSET_TYPE:
949 if (TREE_CODE (TREE_TYPE (t))((enum tree_code) (((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 949, __FUNCTION__))->typed.type))->base.code)
== ARRAY_TYPE
950 || TREE_CODE (TREE_TYPE (t))((enum tree_code) (((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 950, __FUNCTION__))->typed.type))->base.code)
== FUNCTION_TYPE)
951 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
952 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == POINTER_TYPE)
953 flags |= TFF_POINTER(1 << 14);
954 dump_type_suffix (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 954, __FUNCTION__))->typed.type)
, flags);
955 break;
956
957 case FUNCTION_TYPE:
958 case METHOD_TYPE:
959 {
960 tree arg;
961 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == METHOD_TYPE)
962 /* Can only be reached through a pointer. */
963 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
964 arg = TYPE_ARG_TYPES (t)((tree_check2 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 964, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))->type_non_common
.values)
;
965 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == METHOD_TYPE)
966 arg = TREE_CHAIN (arg)((contains_struct_check ((arg), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 966, __FUNCTION__))->common.chain)
;
967
968 /* Function pointers don't have default args. Not in standard C++,
969 anyway; they may in g++, but we'll just pretend otherwise. */
970 dump_parameters (pp, arg, flags & ~TFF_FUNCTION_DEFAULT_ARGUMENTS(1 << 5));
971
972 pp->padding = pp_before;
973 pp_cxx_cv_qualifiers (pp, type_memfn_quals (t),pp_c_cv_qualifiers (pp, type_memfn_quals (t), ((enum tree_code
) (t)->base.code) == FUNCTION_TYPE && (flags &
(1 << 14)))
974 TREE_CODE (t) == FUNCTION_TYPEpp_c_cv_qualifiers (pp, type_memfn_quals (t), ((enum tree_code
) (t)->base.code) == FUNCTION_TYPE && (flags &
(1 << 14)))
975 && (flags & TFF_POINTER))pp_c_cv_qualifiers (pp, type_memfn_quals (t), ((enum tree_code
) (t)->base.code) == FUNCTION_TYPE && (flags &
(1 << 14)))
;
976 dump_ref_qualifier (pp, t, flags);
977 if (tx_safe_fn_type_p (t))
978 pp_cxx_ws_string (pp, "transaction_safe")pp_c_ws_string (pp, "transaction_safe");
979 dump_exception_spec (pp, TYPE_RAISES_EXCEPTIONS (t)((tree_class_check (((tree_check2 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 979, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 979, __FUNCTION__))->type_non_common.lang_1)
, flags);
980 dump_type_suffix (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 980, __FUNCTION__))->typed.type)
, flags);
981 break;
982 }
983
984 case ARRAY_TYPE:
985 pp_maybe_space (pp);
986 pp_cxx_left_bracket (pp)pp_c_left_bracket (pp);
987 if (tree dtype = TYPE_DOMAIN (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 987, __FUNCTION__, (ARRAY_TYPE)))->type_non_common.values
)
)
988 {
989 tree max = TYPE_MAX_VALUE (dtype)((tree_check5 ((dtype), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 989, __FUNCTION__, (INTEGER_TYPE), (ENUMERAL_TYPE), (BOOLEAN_TYPE
), (REAL_TYPE), (FIXED_POINT_TYPE)))->type_non_common.maxval
)
;
990 /* Zero-length arrays have a null upper bound in C and SIZE_MAX
991 in C++. Handle both since the type might be constructed by
992 the middle end and end up here as a result of a warning (see
993 PR c++/97201). */
994 if (!max || integer_all_onesp (max))
995 pp_character (pp, '0');
996 else if (tree_fits_shwi_p (max))
997 pp_wide_integer (pp, tree_to_shwi (max) + 1);
998 else
999 {
1000 STRIP_NOPS (max)(max) = tree_strip_nop_conversions ((const_cast<union tree_node
*> (((max)))))
;
1001 if (TREE_CODE (max)((enum tree_code) (max)->base.code) == SAVE_EXPR)
1002 max = TREE_OPERAND (max, 0)(*((const_cast<tree*> (tree_operand_check ((max), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1002, __FUNCTION__)))))
;
1003 if (TREE_CODE (max)((enum tree_code) (max)->base.code) == MINUS_EXPR
1004 || TREE_CODE (max)((enum tree_code) (max)->base.code) == PLUS_EXPR)
1005 {
1006 max = TREE_OPERAND (max, 0)(*((const_cast<tree*> (tree_operand_check ((max), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1006, __FUNCTION__)))))
;
1007 while (CONVERT_EXPR_P (max)((((enum tree_code) (max)->base.code)) == NOP_EXPR || (((enum
tree_code) (max)->base.code)) == CONVERT_EXPR)
)
1008 max = TREE_OPERAND (max, 0)(*((const_cast<tree*> (tree_operand_check ((max), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1008, __FUNCTION__)))))
;
1009 }
1010 else
1011 max = fold_build2_loc (input_location,
1012 PLUS_EXPR, dtype, max,
1013 build_int_cst (dtype, 1));
1014 dump_expr (pp, max, flags & ~TFF_EXPR_IN_PARENS(1 << 9));
1015 }
1016 }
1017 pp_cxx_right_bracket (pp)pp_c_right_bracket (pp);
1018 dump_type_suffix (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1018, __FUNCTION__))->typed.type)
, flags);
1019 break;
1020
1021 case ENUMERAL_TYPE:
1022 case IDENTIFIER_NODE:
1023 case INTEGER_TYPE:
1024 case BOOLEAN_TYPE:
1025 case REAL_TYPE:
1026 case RECORD_TYPE:
1027 case TEMPLATE_TYPE_PARM:
1028 case TEMPLATE_TEMPLATE_PARM:
1029 case BOUND_TEMPLATE_TEMPLATE_PARM:
1030 case TREE_LIST:
1031 case TYPE_DECL:
1032 case TREE_VEC:
1033 case UNION_TYPE:
1034 case LANG_TYPE:
1035 case VOID_TYPE:
1036 case OPAQUE_TYPE:
1037 case TYPENAME_TYPE:
1038 case COMPLEX_TYPE:
1039 case VECTOR_TYPE:
1040 case TYPEOF_TYPE:
1041 case UNDERLYING_TYPE:
1042 case DECLTYPE_TYPE:
1043 case TYPE_PACK_EXPANSION:
1044 case FIXED_POINT_TYPE:
1045 case NULLPTR_TYPE:
1046 break;
1047
1048 default:
1049 pp_unsupported_tree (pp, t)pp_verbatim (pp, "%qs not supported by %s", get_tree_code_name
(((enum tree_code) (t)->base.code)), __FUNCTION__)
;
1050 case ERROR_MARK:
1051 /* Don't mark it here, we should have already done in
1052 dump_type_prefix. */
1053 break;
1054 }
1055}
1056
1057static void
1058dump_global_iord (cxx_pretty_printer *pp, tree t)
1059{
1060 const char *p = NULL__null;
1061
1062 if (DECL_GLOBAL_CTOR_P (t)(__extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (t)->base.code) == TEMPLATE_DECL ? (
(struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1062, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1062, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (t)->base.code) == FUNCTION_DECL || (((enum
tree_code) (t)->base.code) == TEMPLATE_DECL && ((
struct tree_template_decl *)(const_cast<union tree_node *>
((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1062, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1062, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1062, __FUNCTION__); &lt->u.fn; })->global_ctor_p
)
)
1063 p = M_("(static initializers for %s)")((cxx_pp)->translate_identifiers ? gettext ("(static initializers for %s)"
) : ("(static initializers for %s)"))
;
1064 else if (DECL_GLOBAL_DTOR_P (t)(__extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (t)->base.code) == TEMPLATE_DECL ? (
(struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1064, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1064, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (t)->base.code) == FUNCTION_DECL || (((enum
tree_code) (t)->base.code) == TEMPLATE_DECL && ((
struct tree_template_decl *)(const_cast<union tree_node *>
((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1064, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1064, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1064, __FUNCTION__); &lt->u.fn; })->global_dtor_p
)
)
1065 p = M_("(static destructors for %s)")((cxx_pp)->translate_identifiers ? gettext ("(static destructors for %s)"
) : ("(static destructors for %s)"))
;
1066 else
1067 gcc_unreachable ()(fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1067, __FUNCTION__))
;
1068
1069 pp_printf (pp, p, DECL_SOURCE_FILE (t)((expand_location (((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1069, __FUNCTION__))->decl_minimal.locus))).file)
);
1070}
1071
1072static void
1073dump_simple_decl (cxx_pretty_printer *pp, tree t, tree type, int flags)
1074{
1075 if (template_parm_object_p (t))
1076 return dump_expr (pp, DECL_INITIAL (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1076, __FUNCTION__))->decl_common.initial)
, flags);
1077
1078 if (flags & TFF_DECL_SPECIFIERS(1 << 2))
1079 {
1080 if (concept_definition_p (t))
1081 pp_cxx_ws_string (pp, "concept")pp_c_ws_string (pp, "concept");
1082 else if (VAR_P (t)(((enum tree_code) (t)->base.code) == VAR_DECL) && DECL_DECLARED_CONSTEXPR_P (t)((contains_struct_check (((tree_check2 (((((enum tree_code) (
t)->base.code) == TEMPLATE_DECL ? ((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1082, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1082, __FUNCTION__, (VAR_DECL), (FUNCTION_DECL)))), (TS_DECL_COMMON
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1082, __FUNCTION__))->decl_common.lang_flag_8)
)
1083 pp_cxx_ws_string (pp, "constexpr")pp_c_ws_string (pp, "constexpr");
1084
1085 if (!standard_concept_p (t))
1086 dump_type_prefix (pp, type, flags & ~TFF_UNQUALIFIED_NAME(1 << 11));
1087 pp_maybe_space (pp);
1088 }
1089 if (! (flags & TFF_UNQUALIFIED_NAME(1 << 11))
1090 && TREE_CODE (t)((enum tree_code) (t)->base.code) != PARM_DECL
1091 && (!DECL_INITIAL (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1091, __FUNCTION__))->decl_common.initial)
1092 || TREE_CODE (DECL_INITIAL (t))((enum tree_code) (((contains_struct_check ((t), (TS_DECL_COMMON
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1092, __FUNCTION__))->decl_common.initial))->base.code
)
!= TEMPLATE_PARM_INDEX))
1093 dump_scope (pp, CP_DECL_CONTEXT (t)(!(! (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1093, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1093, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1093, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])
, flags);
1094 flags &= ~TFF_UNQUALIFIED_NAME(1 << 11);
1095 if ((flags & TFF_DECL_SPECIFIERS(1 << 2))
1096 && DECL_TEMPLATE_PARM_P (t)(((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1096, __FUNCTION__))->decl_common.lang_flag_0) &&
(((enum tree_code) (t)->base.code) == CONST_DECL || ((enum
tree_code) (t)->base.code) == PARM_DECL || ((enum tree_code
) (t)->base.code) == TYPE_DECL || ((enum tree_code) (t)->
base.code) == TEMPLATE_DECL))
1097 && TEMPLATE_PARM_PARAMETER_PACK (DECL_INITIAL (t))(((tree_not_check2 (((tree_check ((((contains_struct_check ((
t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1097, __FUNCTION__))->decl_common.initial)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1097, __FUNCTION__, (TEMPLATE_PARM_INDEX)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1097, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0))
)
1098 pp_string (pp, "...");
1099 if (DECL_NAME (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1099, __FUNCTION__))->decl_minimal.name)
)
1100 {
1101 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == FIELD_DECL && DECL_NORMAL_CAPTURE_P (t)((contains_struct_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1101, __FUNCTION__, (FIELD_DECL)))), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1101, __FUNCTION__))->decl_common.lang_flag_7)
)
1102 {
1103 pp_less (pp)pp_character (pp, '<');
1104 pp_string (pp, IDENTIFIER_POINTER (DECL_NAME (t))((const char *) (tree_check ((((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1104, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1104, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
)
+ 2);
1105 pp_string (pp, " capture>");
1106 }
1107 else
1108 dump_decl (pp, DECL_NAME (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1108, __FUNCTION__))->decl_minimal.name)
, flags);
1109 }
1110 else if (DECL_DECOMPOSITION_P (t)((((enum tree_code) (t)->base.code) == VAR_DECL) &&
((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1110, __FUNCTION__))->decl_common.lang_specific) ? ((contains_struct_check
((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1110, __FUNCTION__))->decl_common.lang_specific)->u.base
.selector == lds_decomp : false)
)
1111 pp_string (pp, M_("<structured bindings>")((cxx_pp)->translate_identifiers ? gettext ("<structured bindings>"
) : ("<structured bindings>"))
);
1112 else
1113 pp_string (pp, M_("<anonymous>")((cxx_pp)->translate_identifiers ? gettext ("<anonymous>"
) : ("<anonymous>"))
);
1114
1115 dump_module_suffix (pp, t);
1116
1117 if (flags & TFF_DECL_SPECIFIERS(1 << 2))
1118 dump_type_suffix (pp, type, flags);
1119}
1120
1121/* Print an IDENTIFIER_NODE that is the name of a declaration. */
1122
1123static void
1124dump_decl_name (cxx_pretty_printer *pp, tree t, int flags)
1125{
1126 /* These special cases are duplicated here so that other functions
1127 can feed identifiers to error and get them demangled properly. */
1128 if (IDENTIFIER_CONV_OP_P (t)((((tree_not_check2 (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1128, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1128, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_2)) & ((tree_not_check2 (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1128, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1128, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_1) & (!((tree_not_check2 (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1128, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1128, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)))
)
1129 {
1130 pp_cxx_ws_string (pp, "operator")pp_c_ws_string (pp, "operator");
1131 /* Not exactly IDENTIFIER_TYPE_VALUE. */
1132 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1132, __FUNCTION__))->typed.type)
, flags);
1133 return;
1134 }
1135 if (dguide_name_p (t))
1136 {
1137 dump_decl (pp, CLASSTYPE_TI_TEMPLATE (TREE_TYPE (t))((struct tree_template_info*)(tree_check (((((tree_class_check
(((tree_check3 ((((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1137, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1137, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1137, __FUNCTION__))->type_non_common.lang_1))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1137, __FUNCTION__, (TEMPLATE_INFO))))->tmpl
,
1138 TFF_UNQUALIFIED_NAME(1 << 11));
1139 return;
1140 }
1141
1142 const char *str = IDENTIFIER_POINTER (t)((const char *) (tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1142, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
)
;
1143 if (!strncmp (str, "_ZGR", 4))
1144 {
1145 pp_cxx_ws_string (pp, "<temporary>")pp_c_ws_string (pp, "<temporary>");
1146 return;
1147 }
1148
1149 pp_cxx_tree_identifier (pp, t)pp_c_identifier (pp, ((const char *) (tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1149, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
1150}
1151
1152/* Dump a human readable string for the decl T under control of FLAGS. */
1153
1154static void
1155dump_decl (cxx_pretty_printer *pp, tree t, int flags)
1156{
1157 if (t == NULL_TREE(tree) __null)
1158 return;
1159
1160 /* If doing Objective-C++, give Objective-C a chance to demangle
1161 Objective-C method names. */
1162 if (c_dialect_objc ()((c_language & clk_objc) != 0))
1163 {
1164 const char *demangled = objc_maybe_printable_name (t, flags);
1165 if (demangled)
1166 {
1167 pp_string (pp, demangled);
1168 return;
1169 }
1170 }
1171
1172 switch (TREE_CODE (t)((enum tree_code) (t)->base.code))
1173 {
1174 case TYPE_DECL:
1175 /* Don't say 'typedef class A' */
1176 if (DECL_ARTIFICIAL (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1176, __FUNCTION__))->decl_common.artificial_flag)
&& !DECL_SELF_REFERENCE_P (t)(((enum tree_code) (t)->base.code) == TYPE_DECL &&
((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1176, __FUNCTION__))->decl_common.lang_flag_4))
)
1177 {
1178 if ((flags & TFF_DECL_SPECIFIERS(1 << 2))
1179 && TREE_CODE (TREE_TYPE (t))((enum tree_code) (((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1179, __FUNCTION__))->typed.type))->base.code)
== TEMPLATE_TYPE_PARM)
1180 {
1181 /* Say `class T' not just `T'. */
1182 pp_cxx_ws_string (pp, "class")pp_c_ws_string (pp, "class");
1183
1184 /* Emit the `...' for a parameter pack. */
1185 if (TEMPLATE_TYPE_PARAMETER_PACK (TREE_TYPE (t))((((tree_not_check2 (((tree_check (((((tree_class_check (((tree_check3
(((((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1185, __FUNCTION__))->typed.type))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1185, __FUNCTION__, (TEMPLATE_TYPE_PARM), (TEMPLATE_TEMPLATE_PARM
), (BOUND_TEMPLATE_TEMPLATE_PARM)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1185, __FUNCTION__))->type_non_common.values))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1185, __FUNCTION__, (TEMPLATE_PARM_INDEX)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1185, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)))
)
1186 pp_cxx_ws_string (pp, "...")pp_c_ws_string (pp, "...");
1187 }
1188
1189 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1189, __FUNCTION__))->typed.type)
, flags);
1190 break;
1191 }
1192 if (TYPE_DECL_ALIAS_P (t)((contains_struct_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1192, __FUNCTION__, (TYPE_DECL)))), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1192, __FUNCTION__))->decl_common.lang_flag_6)
1193 && (flags & TFF_DECL_SPECIFIERS(1 << 2)
1194 || flags & TFF_CLASS_KEY_OR_ENUM(1 << 3)))
1195 {
1196 pp_cxx_ws_string (pp, "using")pp_c_ws_string (pp, "using");
1197 dump_decl (pp, DECL_NAME (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1197, __FUNCTION__))->decl_minimal.name)
, flags);
1198 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
1199 pp_cxx_ws_string (pp, "=")pp_c_ws_string (pp, "=");
1200 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
1201 dump_type (pp, (DECL_ORIGINAL_TYPE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1201, __FUNCTION__, (TYPE_DECL)))->decl_non_common.result
)
1202 ? DECL_ORIGINAL_TYPE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1202, __FUNCTION__, (TYPE_DECL)))->decl_non_common.result
)
: TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1202, __FUNCTION__))->typed.type)
),
1203 flags);
1204 break;
1205 }
1206 if ((flags & TFF_DECL_SPECIFIERS(1 << 2))
1207 && !DECL_SELF_REFERENCE_P (t)(((enum tree_code) (t)->base.code) == TYPE_DECL &&
((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1207, __FUNCTION__))->decl_common.lang_flag_4))
)
1208 pp_cxx_ws_string (pp, "typedef")pp_c_ws_string (pp, "typedef");
1209 dump_simple_decl (pp, t, DECL_ORIGINAL_TYPE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1209, __FUNCTION__, (TYPE_DECL)))->decl_non_common.result
)
1210 ? DECL_ORIGINAL_TYPE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1210, __FUNCTION__, (TYPE_DECL)))->decl_non_common.result
)
: TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1210, __FUNCTION__))->typed.type)
,
1211 flags);
1212 break;
1213
1214 case VAR_DECL:
1215 if (DECL_NAME (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1215, __FUNCTION__))->decl_minimal.name)
&& VTABLE_NAME_P (DECL_NAME (t))(((const char *) (tree_check ((((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1215, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1215, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
)[1] == 'v' && ((const char *) (tree_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1215, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1215, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
)[2] == 't' && ((const char *) (tree_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1215, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1215, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
)[3] == '.')
)
1216 {
1217 pp_string (pp, M_("vtable for ")((cxx_pp)->translate_identifiers ? gettext ("vtable for ")
: ("vtable for "))
);
1218 gcc_assert (TYPE_P (DECL_CONTEXT (t)))((void)(!((tree_code_type[(int) (((enum tree_code) (((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1218, __FUNCTION__))->decl_minimal.context))->base.code
))] == tcc_type)) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1218, __FUNCTION__), 0 : 0))
;
1219 dump_type (pp, DECL_CONTEXT (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1219, __FUNCTION__))->decl_minimal.context)
, flags);
1220 break;
1221 }
1222 /* Fall through. */
1223 case FIELD_DECL:
1224 case PARM_DECL:
1225 dump_simple_decl (pp, t, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1225, __FUNCTION__))->typed.type)
, flags);
1226
1227 /* Handle variable template specializations. */
1228 if (VAR_P (t)(((enum tree_code) (t)->base.code) == VAR_DECL)
1229 && DECL_LANG_SPECIFIC (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1229, __FUNCTION__))->decl_common.lang_specific)
1230 && DECL_TEMPLATE_INFO (t)(((contains_struct_check ((template_info_decl_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1230, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1230, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)
1231 && PRIMARY_TEMPLATE_P (DECL_TI_TEMPLATE (t))(((((contains_struct_check ((((tree_check ((((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((((struct
tree_template_info*)(tree_check (((((contains_struct_check (
(template_info_decl_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1231, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1231, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1231, __FUNCTION__, (TEMPLATE_INFO))))->tmpl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1231, __FUNCTION__, (TEMPLATE_DECL))))))))->arguments), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1231, __FUNCTION__, (TREE_LIST)))->list.value)), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1231, __FUNCTION__))->typed.type))) == (((struct tree_template_info
*)(tree_check (((((contains_struct_check ((template_info_decl_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1231, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1231, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1231, __FUNCTION__, (TEMPLATE_INFO))))->tmpl))
)
1232 {
1233 pp_cxx_begin_template_argument_list (pp);
1234 tree args = INNERMOST_TEMPLATE_ARGS (DECL_TI_ARGS (t))(get_innermost_template_args ((((struct tree_template_info*)(
tree_check (((((contains_struct_check ((template_info_decl_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1234, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1234, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1234, __FUNCTION__, (TEMPLATE_INFO))))->args), 1))
;
1235 dump_template_argument_list (pp, args, flags);
1236 pp_cxx_end_template_argument_list (pp);
1237 }
1238 break;
1239
1240 case RESULT_DECL:
1241 pp_string (pp, M_("<return value> ")((cxx_pp)->translate_identifiers ? gettext ("<return value> "
) : ("<return value> "))
);
1242 dump_simple_decl (pp, t, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1242, __FUNCTION__))->typed.type)
, flags);
1243 break;
1244
1245 case NAMESPACE_DECL:
1246 if (flags & TFF_DECL_SPECIFIERS(1 << 2))
1247 pp->declaration (t);
1248 else
1249 {
1250 if (! (flags & TFF_UNQUALIFIED_NAME(1 << 11)))
1251 dump_scope (pp, CP_DECL_CONTEXT (t)(!(! (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1251, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1251, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1251, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])
, flags);
1252 flags &= ~TFF_UNQUALIFIED_NAME(1 << 11);
1253 if (DECL_NAME (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1253, __FUNCTION__))->decl_minimal.name)
== NULL_TREE(tree) __null)
1254 {
1255 if (!(pp->flags & pp_c_flag_gnu_v3))
1256 pp_cxx_ws_string (pp, M_("{anonymous}"))pp_c_ws_string (pp, ((cxx_pp)->translate_identifiers ? gettext
("{anonymous}") : ("{anonymous}")))
;
1257 else
1258 pp_cxx_ws_string (pp, M_("(anonymous namespace)"))pp_c_ws_string (pp, ((cxx_pp)->translate_identifiers ? gettext
("(anonymous namespace)") : ("(anonymous namespace)")))
;
1259 }
1260 else
1261 pp_cxx_tree_identifier (pp, DECL_NAME (t))pp_c_identifier (pp, ((const char *) (tree_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1261, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1261, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
1262 }
1263 break;
1264
1265 case SCOPE_REF:
1266 dump_type (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1266, __FUNCTION__)))))
, flags);
1267 pp_cxx_colon_colon (pp);
1268 dump_decl (pp, TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1268, __FUNCTION__)))))
, TFF_UNQUALIFIED_NAME(1 << 11));
1269 break;
1270
1271 case ARRAY_REF:
1272 dump_decl (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1272, __FUNCTION__)))))
, flags);
1273 pp_cxx_left_bracket (pp)pp_c_left_bracket (pp);
1274 dump_decl (pp, TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1274, __FUNCTION__)))))
, flags);
1275 pp_cxx_right_bracket (pp)pp_c_right_bracket (pp);
1276 break;
1277
1278 /* So that we can do dump_decl on an aggr type. */
1279 case RECORD_TYPE:
1280 case UNION_TYPE:
1281 case ENUMERAL_TYPE:
1282 dump_type (pp, t, flags);
1283 break;
1284
1285 case BIT_NOT_EXPR:
1286 /* This is a pseudo destructor call which has not been folded into
1287 a PSEUDO_DTOR_EXPR yet. */
1288 pp_cxx_complement (pp)pp_c_complement (pp);
1289 dump_type (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1289, __FUNCTION__)))))
, flags);
1290 break;
1291
1292 case TYPE_EXPR:
1293 gcc_unreachable ()(fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1293, __FUNCTION__))
;
1294 break;
1295
1296 case IDENTIFIER_NODE:
1297 dump_decl_name (pp, t, flags);
1298 break;
1299
1300 case OVERLOAD:
1301 if (!OVL_SINGLE_P (t)(((enum tree_code) (t)->base.code) != OVERLOAD || !(((struct
tree_overload*)(tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1301, __FUNCTION__, (OVERLOAD))))->common.chain))
)
1302 {
1303 tree ctx = ovl_scope (t);
1304 if (ctx != global_namespacecp_global_trees[CPTI_GLOBAL])
1305 {
1306 if (TYPE_P (ctx)(tree_code_type[(int) (((enum tree_code) (ctx)->base.code)
)] == tcc_type)
)
1307 dump_type (pp, ctx, flags);
1308 else
1309 dump_decl (pp, ctx, flags);
1310 pp_cxx_colon_colon (pp);
1311 }
1312 dump_decl (pp, OVL_NAME (t)((contains_struct_check ((ovl_first (t)), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1312, __FUNCTION__))->decl_minimal.name)
, flags);
1313 break;
1314 }
1315
1316 /* If there's only one function, just treat it like an ordinary
1317 FUNCTION_DECL. */
1318 t = OVL_FIRST (t)ovl_first (t);
1319 /* Fall through. */
1320
1321 case FUNCTION_DECL:
1322 if (! DECL_LANG_SPECIFIC (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1322, __FUNCTION__))->decl_common.lang_specific)
)
1323 {
1324 if (DECL_ABSTRACT_ORIGIN (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1324, __FUNCTION__))->decl_common.abstract_origin)
1325 && DECL_ABSTRACT_ORIGIN (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1325, __FUNCTION__))->decl_common.abstract_origin)
!= t)
1326 dump_decl (pp, DECL_ABSTRACT_ORIGIN (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1326, __FUNCTION__))->decl_common.abstract_origin)
, flags);
1327 else
1328 dump_function_name (pp, t, flags);
1329 }
1330 else if (DECL_GLOBAL_CTOR_P (t)(__extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (t)->base.code) == TEMPLATE_DECL ? (
(struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1330, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1330, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (t)->base.code) == FUNCTION_DECL || (((enum
tree_code) (t)->base.code) == TEMPLATE_DECL && ((
struct tree_template_decl *)(const_cast<union tree_node *>
((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1330, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1330, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1330, __FUNCTION__); &lt->u.fn; })->global_ctor_p
)
|| DECL_GLOBAL_DTOR_P (t)(__extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (t)->base.code) == TEMPLATE_DECL ? (
(struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1330, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1330, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (t)->base.code) == FUNCTION_DECL || (((enum
tree_code) (t)->base.code) == TEMPLATE_DECL && ((
struct tree_template_decl *)(const_cast<union tree_node *>
((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1330, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1330, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1330, __FUNCTION__); &lt->u.fn; })->global_dtor_p
)
)
1331 dump_global_iord (pp, t);
1332 else
1333 dump_function_decl (pp, t, flags);
1334 break;
1335
1336 case TEMPLATE_DECL:
1337 dump_template_decl (pp, t, flags);
1338 break;
1339
1340 case CONCEPT_DECL:
1341 dump_simple_decl (pp, t, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1341, __FUNCTION__))->typed.type)
, flags);
1342 break;
1343
1344 case WILDCARD_DECL:
1345 pp_string (pp, "<wildcard>");
1346 break;
1347
1348 case TEMPLATE_ID_EXPR:
1349 {
1350 tree name = TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1350, __FUNCTION__)))))
;
1351 tree args = TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1351, __FUNCTION__)))))
;
1352
1353 if (!identifier_p (name))
1354 name = OVL_NAME (name)((contains_struct_check ((ovl_first (name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1354, __FUNCTION__))->decl_minimal.name)
;
1355 dump_decl (pp, name, flags);
1356 pp_cxx_begin_template_argument_list (pp);
1357 if (args == error_mark_nodeglobal_trees[TI_ERROR_MARK])
1358 pp_string (pp, M_("<template arguments error>")((cxx_pp)->translate_identifiers ? gettext ("<template arguments error>"
) : ("<template arguments error>"))
);
1359 else if (args)
1360 dump_template_argument_list
1361 (pp, args, flags|TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS(1 << 12));
1362 pp_cxx_end_template_argument_list (pp);
1363 }
1364 break;
1365
1366 case LABEL_DECL:
1367 pp_cxx_tree_identifier (pp, DECL_NAME (t))pp_c_identifier (pp, ((const char *) (tree_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1367, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1367, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
1368 break;
1369
1370 case CONST_DECL:
1371 if ((TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1371, __FUNCTION__))->typed.type)
!= NULL_TREE(tree) __null && NEXT_CODE (t)(((enum tree_code) (((contains_struct_check ((t), (TS_TYPED),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1371, __FUNCTION__))->typed.type))->base.code))
== ENUMERAL_TYPE)
1372 || (DECL_INITIAL (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1372, __FUNCTION__))->decl_common.initial)
&&
1373 TREE_CODE (DECL_INITIAL (t))((enum tree_code) (((contains_struct_check ((t), (TS_DECL_COMMON
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1373, __FUNCTION__))->decl_common.initial))->base.code
)
== TEMPLATE_PARM_INDEX))
1374 dump_simple_decl (pp, t, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1374, __FUNCTION__))->typed.type)
, flags);
1375 else if (DECL_NAME (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1375, __FUNCTION__))->decl_minimal.name)
)
1376 dump_decl (pp, DECL_NAME (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1376, __FUNCTION__))->decl_minimal.name)
, flags);
1377 else if (DECL_INITIAL (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1377, __FUNCTION__))->decl_common.initial)
)
1378 dump_expr (pp, DECL_INITIAL (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1378, __FUNCTION__))->decl_common.initial)
, flags | TFF_EXPR_IN_PARENS(1 << 9));
1379 else
1380 pp_string (pp, M_("<enumerator>")((cxx_pp)->translate_identifiers ? gettext ("<enumerator>"
) : ("<enumerator>"))
);
1381 break;
1382
1383 case USING_DECL:
1384 {
1385 pp_cxx_ws_string (pp, "using")pp_c_ws_string (pp, "using");
1386 tree scope = USING_DECL_SCOPE (t)((contains_struct_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1386, __FUNCTION__, (USING_DECL)))), (TS_DECL_NON_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1386, __FUNCTION__))->decl_non_common.result)
;
1387 bool variadic = false;
1388 if (PACK_EXPANSION_P (scope)(((enum tree_code) (scope)->base.code) == TYPE_PACK_EXPANSION
|| ((enum tree_code) (scope)->base.code) == EXPR_PACK_EXPANSION
)
)
1389 {
1390 scope = PACK_EXPANSION_PATTERN (scope)(((enum tree_code) (scope)->base.code) == TYPE_PACK_EXPANSION
? ((contains_struct_check ((scope), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1390, __FUNCTION__))->typed.type) : (*((const_cast<tree
*> (tree_operand_check ((scope), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1390, __FUNCTION__))))))
;
1391 variadic = true;
1392 }
1393 dump_type (pp, scope, flags);
1394 pp_cxx_colon_colon (pp);
1395 dump_decl (pp, DECL_NAME (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1395, __FUNCTION__))->decl_minimal.name)
, flags);
1396 if (variadic)
1397 pp_cxx_ws_string (pp, "...")pp_c_ws_string (pp, "...");
1398 }
1399 break;
1400
1401 case STATIC_ASSERT:
1402 pp->declaration (t);
1403 break;
1404
1405 case BASELINK:
1406 dump_decl (pp, BASELINK_FUNCTIONS (t)(((struct tree_baselink*) (tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1406, __FUNCTION__, (BASELINK))))->functions)
, flags);
1407 break;
1408
1409 case NON_DEPENDENT_EXPR:
1410 dump_expr (pp, t, flags);
1411 break;
1412
1413 case TEMPLATE_TYPE_PARM:
1414 if (flags & TFF_DECL_SPECIFIERS(1 << 2))
1415 pp->declaration (t);
1416 else
1417 pp->type_id (t);
1418 break;
1419
1420 case UNBOUND_CLASS_TEMPLATE:
1421 case TYPE_PACK_EXPANSION:
1422 case TREE_BINFO:
1423 dump_type (pp, t, flags);
1424 break;
1425
1426 default:
1427 pp_unsupported_tree (pp, t)pp_verbatim (pp, "%qs not supported by %s", get_tree_code_name
(((enum tree_code) (t)->base.code)), __FUNCTION__)
;
1428 /* Fall through. */
1429
1430 case ERROR_MARK:
1431 pp_string (pp, M_("<declaration error>")((cxx_pp)->translate_identifiers ? gettext ("<declaration error>"
) : ("<declaration error>"))
);
1432 break;
1433 }
1434}
1435
1436/* Dump a template declaration T under control of FLAGS. This means the
1437 'template <...> leaders plus the 'class X' or 'void fn(...)' part. */
1438
1439static void
1440dump_template_decl (cxx_pretty_printer *pp, tree t, int flags)
1441{
1442 tree orig_parms = DECL_TEMPLATE_PARMS (t)((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1442, __FUNCTION__, (TEMPLATE_DECL))))))))->arguments
;
1443 tree parms;
1444 int i;
1445
1446 if (flags & TFF_TEMPLATE_HEADER(1 << 7))
1447 {
1448 for (parms = orig_parms = nreverse (orig_parms);
1449 parms;
1450 parms = TREE_CHAIN (parms)((contains_struct_check ((parms), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1450, __FUNCTION__))->common.chain)
)
1451 {
1452 tree inner_parms = INNERMOST_TEMPLATE_PARMS (parms)((tree_check ((parms), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1452, __FUNCTION__, (TREE_LIST)))->list.value)
;
1453 int len = TREE_VEC_LENGTH (inner_parms)((tree_check ((inner_parms), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1453, __FUNCTION__, (TREE_VEC)))->base.u.length)
;
1454
1455 if (len == 0)
1456 {
1457 /* Skip over the dummy template levels of a template template
1458 parm. */
1459 gcc_assert (TREE_CODE (TREE_TYPE (t)) == TEMPLATE_TEMPLATE_PARM)((void)(!(((enum tree_code) (((contains_struct_check ((t), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1459, __FUNCTION__))->typed.type))->base.code) == TEMPLATE_TEMPLATE_PARM
) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1459, __FUNCTION__), 0 : 0))
;
1460 continue;
1461 }
1462
1463 pp_cxx_ws_string (pp, "template")pp_c_ws_string (pp, "template");
1464 pp_cxx_begin_template_argument_list (pp);
1465
1466 /* If we've shown the template prefix, we'd better show the
1467 parameters' and decl's type too. */
1468 flags |= TFF_DECL_SPECIFIERS(1 << 2);
1469
1470 for (i = 0; i < len; i++)
1471 {
1472 if (i)
1473 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
1474 dump_template_parameter (pp, TREE_VEC_ELT (inner_parms, i)(*((const_cast<tree *> (tree_vec_elt_check ((inner_parms
), (i), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1474, __FUNCTION__)))))
,
1475 flags);
1476 }
1477 pp_cxx_end_template_argument_list (pp);
1478 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
1479 }
1480 nreverse(orig_parms);
1481
1482 if (DECL_TEMPLATE_TEMPLATE_PARM_P (t)(((enum tree_code) (t)->base.code) == TEMPLATE_DECL &&
(((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1482, __FUNCTION__))->decl_common.lang_flag_0) &&
(((enum tree_code) (t)->base.code) == CONST_DECL || ((enum
tree_code) (t)->base.code) == PARM_DECL || ((enum tree_code
) (t)->base.code) == TYPE_DECL || ((enum tree_code) (t)->
base.code) == TEMPLATE_DECL)))
)
1483 {
1484 /* Say `template<arg> class TT' not just `template<arg> TT'. */
1485 pp_cxx_ws_string (pp, "class")pp_c_ws_string (pp, "class");
1486
1487 /* If this is a parameter pack, print the ellipsis. */
1488 if (TEMPLATE_TYPE_PARAMETER_PACK (TREE_TYPE (t))((((tree_not_check2 (((tree_check (((((tree_class_check (((tree_check3
(((((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1488, __FUNCTION__))->typed.type))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1488, __FUNCTION__, (TEMPLATE_TYPE_PARM), (TEMPLATE_TEMPLATE_PARM
), (BOUND_TEMPLATE_TEMPLATE_PARM)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1488, __FUNCTION__))->type_non_common.values))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1488, __FUNCTION__, (TEMPLATE_PARM_INDEX)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1488, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)))
)
1489 pp_cxx_ws_string (pp, "...")pp_c_ws_string (pp, "...");
1490 }
1491
1492 /* Only print the requirements if we're also printing
1493 the template header. */
1494 if (flag_conceptsglobal_options.x_flag_concepts)
1495 if (tree ci = get_constraints (t))
1496 if (check_constraint_info (ci))
1497 if (tree reqs = CI_TEMPLATE_REQS (ci)check_constraint_info (check_nonnull (ci))->template_reqs)
1498 {
1499 pp_cxx_requires_clause (pp, reqs);
1500 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
1501 }
1502 }
1503
1504
1505 if (DECL_CLASS_TEMPLATE_P (t)((((enum tree_code) (t)->base.code) == TEMPLATE_DECL &&
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1505, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1505, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == TYPE_DECL) && (((enum tree_code) (((struct
tree_template_decl *)(const_cast<union tree_node *> ((
((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1505, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == TYPE_DECL && ((contains_struct_check ((
((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1505, __FUNCTION__, (TEMPLATE_DECL))))))))->result), (TS_DECL_COMMON
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1505, __FUNCTION__))->decl_common.lang_flag_2)))
)
1506 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1506, __FUNCTION__))->typed.type)
,
1507 ((flags & ~TFF_CLASS_KEY_OR_ENUM(1 << 3)) | TFF_TEMPLATE_NAME(1 << 8)
1508 | (flags & TFF_DECL_SPECIFIERS(1 << 2) ? TFF_CLASS_KEY_OR_ENUM(1 << 3) : 0)));
1509 else if (DECL_TEMPLATE_RESULT (t)((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1509, __FUNCTION__, (TEMPLATE_DECL))))))))->result
1510 && (VAR_P (DECL_TEMPLATE_RESULT (t))(((enum tree_code) (((struct tree_template_decl *)(const_cast
<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1510, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == VAR_DECL)
1511 /* Alias template. */
1512 || DECL_TYPE_TEMPLATE_P (t)(((enum tree_code) (t)->base.code) == TEMPLATE_DECL &&
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1512, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1512, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == TYPE_DECL)
1513 /* Concept definition. &*/
1514 || TREE_CODE (DECL_TEMPLATE_RESULT (t))((enum tree_code) (((struct tree_template_decl *)(const_cast<
union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1514, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code)
== CONCEPT_DECL))
1515 dump_decl (pp, DECL_TEMPLATE_RESULT (t)((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1515, __FUNCTION__, (TEMPLATE_DECL))))))))->result
, flags | TFF_TEMPLATE_NAME(1 << 8));
1516 else
1517 {
1518 gcc_assert (TREE_TYPE (t))((void)(!(((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1518, __FUNCTION__))->typed.type)) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1518, __FUNCTION__), 0 : 0))
;
1519 switch (NEXT_CODE (t)(((enum tree_code) (((contains_struct_check ((t), (TS_TYPED),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1519, __FUNCTION__))->typed.type))->base.code))
)
1520 {
1521 case METHOD_TYPE:
1522 case FUNCTION_TYPE:
1523 dump_function_decl (pp, t, flags | TFF_TEMPLATE_NAME(1 << 8));
1524 break;
1525 default:
1526 /* This case can occur with some invalid code. */
1527 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1527, __FUNCTION__))->typed.type)
,
1528 (flags & ~TFF_CLASS_KEY_OR_ENUM(1 << 3)) | TFF_TEMPLATE_NAME(1 << 8)
1529 | (flags & TFF_DECL_SPECIFIERS(1 << 2)
1530 ? TFF_CLASS_KEY_OR_ENUM(1 << 3) : 0));
1531 }
1532 }
1533}
1534
1535/* find_typenames looks through the type of the function template T
1536 and returns a vec containing any typedefs, decltypes or TYPENAME_TYPEs
1537 it finds. */
1538
1539struct find_typenames_t
1540{
1541 hash_set<tree> *p_set;
1542 vec<tree, va_gc> *typenames;
1543};
1544
1545static tree
1546find_typenames_r (tree *tp, int *walk_subtrees, void *data)
1547{
1548 struct find_typenames_t *d = (struct find_typenames_t *)data;
1549 tree mv = NULL_TREE(tree) __null;
1550
1551 if (TYPE_P (*tp)(tree_code_type[(int) (((enum tree_code) (*tp)->base.code)
)] == tcc_type)
&& is_typedef_decl (TYPE_NAME (*tp)((tree_class_check ((*tp), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1551, __FUNCTION__))->type_common.name)
))
1
Assuming the condition is false
1552 /* Add the type of the typedef without any additional cv-quals. */
1553 mv = TREE_TYPE (TYPE_NAME (*tp))((contains_struct_check ((((tree_class_check ((*tp), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1553, __FUNCTION__))->type_common.name)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1553, __FUNCTION__))->typed.type)
;
1554 else if (TREE_CODE (*tp)((enum tree_code) (*tp)->base.code) == TYPENAME_TYPE
2
Assuming field 'code' is equal to TYPENAME_TYPE
1555 || TREE_CODE (*tp)((enum tree_code) (*tp)->base.code) == DECLTYPE_TYPE)
1556 /* Add the typename without any cv-qualifiers. */
1557 mv = TYPE_MAIN_VARIANT (*tp)((tree_class_check ((*tp), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1557, __FUNCTION__))->type_common.main_variant)
;
3
Calling 'tree_class_check'
7
Returning from 'tree_class_check'
1558
1559 if (PACK_EXPANSION_P (*tp)(((enum tree_code) (*tp)->base.code) == TYPE_PACK_EXPANSION
|| ((enum tree_code) (*tp)->base.code) == EXPR_PACK_EXPANSION
)
)
8
Taking false branch
1560 {
1561 /* Don't mess with parameter packs since we don't remember
1562 the pack expansion context for a particular typename. */
1563 *walk_subtrees = false;
1564 return NULL_TREE(tree) __null;
1565 }
1566
1567 if (mv && (mv == *tp || !d->p_set->add (mv)))
9
Assuming 'mv' is non-null
10
Assuming the condition is true
1568 vec_safe_push (d->typenames, mv);
11
Passing value via 1st parameter 'v'
12
Calling 'vec_safe_push<tree_node *, va_gc>'
1569
1570 return NULL_TREE(tree) __null;
1571}
1572
1573static vec<tree, va_gc> *
1574find_typenames (tree t)
1575{
1576 struct find_typenames_t ft;
1577 ft.p_set = new hash_set<tree>;
1578 ft.typenames = NULL__null;
1579 cp_walk_tree (&TREE_TYPE (DECL_TEMPLATE_RESULT (t)),walk_tree_1 (&((contains_struct_check ((((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1579, __FUNCTION__, (TEMPLATE_DECL))))))))->result), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1579, __FUNCTION__))->typed.type), find_typenames_r, &
ft, ft.p_set, cp_walk_subtrees)
1580 find_typenames_r, &ft, ft.p_set)walk_tree_1 (&((contains_struct_check ((((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1579, __FUNCTION__, (TEMPLATE_DECL))))))))->result), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1579, __FUNCTION__))->typed.type), find_typenames_r, &
ft, ft.p_set, cp_walk_subtrees)
;
1581 delete ft.p_set;
1582 return ft.typenames;
1583}
1584
1585/* Output the "[with ...]" clause for a template instantiation T iff
1586 TEMPLATE_PARMS, TEMPLATE_ARGS and FLAGS are suitable. T may be NULL if
1587 formatting a deduction/substitution diagnostic rather than an
1588 instantiation. */
1589
1590static void
1591dump_substitution (cxx_pretty_printer *pp,
1592 tree t, tree template_parms, tree template_args,
1593 int flags)
1594{
1595 if (template_parms != NULL_TREE(tree) __null && template_args != NULL_TREE(tree) __null
1596 && !(flags & TFF_NO_TEMPLATE_BINDINGS(1 << 13)))
1597 {
1598 vec<tree, va_gc> *typenames = t ? find_typenames (t) : NULL__null;
1599 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
1600 pp_cxx_left_bracket (pp)pp_c_left_bracket (pp);
1601 pp->translate_string ("with");
1602 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
1603 dump_template_bindings (pp, template_parms, template_args, typenames);
1604 pp_cxx_right_bracket (pp)pp_c_right_bracket (pp);
1605 }
1606}
1607
1608/* Dump the lambda function FN including its 'mutable' qualifier and any
1609 template bindings. */
1610
1611static void
1612dump_lambda_function (cxx_pretty_printer *pp,
1613 tree fn, tree template_parms, tree template_args,
1614 int flags)
1615{
1616 /* A lambda's signature is essentially its "type". */
1617 dump_type (pp, DECL_CONTEXT (fn)((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1617, __FUNCTION__))->decl_minimal.context)
, flags);
1618 if (!(TYPE_QUALS (class_of_this_parm (TREE_TYPE (fn)))((int) ((((tree_class_check ((class_of_this_parm (((contains_struct_check
((fn), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1618, __FUNCTION__))->typed.type))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1618, __FUNCTION__))->base.readonly_flag) * TYPE_QUAL_CONST
) | (((tree_class_check ((class_of_this_parm (((contains_struct_check
((fn), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1618, __FUNCTION__))->typed.type))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1618, __FUNCTION__))->base.volatile_flag) * TYPE_QUAL_VOLATILE
) | (((tree_class_check ((class_of_this_parm (((contains_struct_check
((fn), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1618, __FUNCTION__))->typed.type))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1618, __FUNCTION__))->base.u.bits.atomic_flag) * TYPE_QUAL_ATOMIC
) | (((tree_class_check ((class_of_this_parm (((contains_struct_check
((fn), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1618, __FUNCTION__))->typed.type))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1618, __FUNCTION__))->type_common.restrict_flag) * TYPE_QUAL_RESTRICT
) | (((((tree_class_check ((class_of_this_parm (((contains_struct_check
((fn), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1618, __FUNCTION__))->typed.type))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1618, __FUNCTION__))->base.u.bits.address_space) & 0xFF
) << 8))))
& TYPE_QUAL_CONST))
1619 {
1620 pp->padding = pp_before;
1621 pp_c_ws_string (pp, "mutable");
1622 }
1623 dump_substitution (pp, fn, template_parms, template_args, flags);
1624}
1625
1626/* Pretty print a function decl. There are several ways we want to print a
1627 function declaration. The TFF_ bits in FLAGS tells us how to behave.
1628 As error can only apply the '#' flag once to give 0 and 1 for V, there
1629 is %D which doesn't print the throw specs, and %F which does. */
1630
1631static void
1632dump_function_decl (cxx_pretty_printer *pp, tree t, int flags)
1633{
1634 tree fntype;
1635 tree parmtypes;
1636 tree cname = NULL_TREE(tree) __null;
1637 tree template_args = NULL_TREE(tree) __null;
1638 tree template_parms = NULL_TREE(tree) __null;
1639 int show_return = flags & TFF_RETURN_TYPE(1 << 4) || flags & TFF_DECL_SPECIFIERS(1 << 2);
1640 int do_outer_scope = ! (flags & TFF_UNQUALIFIED_NAME(1 << 11));
1641 tree exceptions;
1642 bool constexpr_p;
1643 tree ret = NULL_TREE(tree) __null;
1644
1645 flags &= ~(TFF_UNQUALIFIED_NAME(1 << 11) | TFF_TEMPLATE_NAME(1 << 8));
1646 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == TEMPLATE_DECL)
1647 t = DECL_TEMPLATE_RESULT (t)((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1647, __FUNCTION__, (TEMPLATE_DECL))))))))->result
;
1648
1649 /* Save the exceptions, in case t is a specialization and we are
1650 emitting an error about incompatible specifications. */
1651 exceptions = TYPE_RAISES_EXCEPTIONS (TREE_TYPE (t))((tree_class_check (((tree_check2 ((((contains_struct_check (
(t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1651, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1651, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1651, __FUNCTION__))->type_non_common.lang_1)
;
1652
1653 /* Likewise for the constexpr specifier, in case t is a specialization. */
1654 constexpr_p = DECL_DECLARED_CONSTEXPR_P (t)((contains_struct_check (((tree_check2 (((((enum tree_code) (
t)->base.code) == TEMPLATE_DECL ? ((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1654, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1654, __FUNCTION__, (VAR_DECL), (FUNCTION_DECL)))), (TS_DECL_COMMON
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1654, __FUNCTION__))->decl_common.lang_flag_8)
;
1655
1656 /* Pretty print template instantiations only. */
1657 if (DECL_USE_TEMPLATE (t)(((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1657, __FUNCTION__))->decl_common.lang_specific)->u.base
.use_template)
&& DECL_TEMPLATE_INFO (t)(((contains_struct_check ((template_info_decl_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1657, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1657, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)
1658 && !(flags & TFF_NO_TEMPLATE_BINDINGS(1 << 13))
1659 && flag_pretty_templatesglobal_options.x_flag_pretty_templates)
1660 {
1661 tree tmpl;
1662
1663 template_args = DECL_TI_ARGS (t)((struct tree_template_info*)(tree_check (((((contains_struct_check
((template_info_decl_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1663, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1663, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1663, __FUNCTION__, (TEMPLATE_INFO))))->args
;
1664 tmpl = most_general_template (t);
1665 if (tmpl && TREE_CODE (tmpl)((enum tree_code) (tmpl)->base.code) == TEMPLATE_DECL)
1666 {
1667 template_parms = DECL_TEMPLATE_PARMS (tmpl)((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((tmpl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1667, __FUNCTION__, (TEMPLATE_DECL))))))))->arguments
;
1668 t = tmpl;
1669 }
1670 }
1671
1672 if (DECL_NAME (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.name)
&& LAMBDA_FUNCTION_P (t)((((enum tree_code) (t)->base.code) == FUNCTION_DECL || ((
(enum tree_code) (t)->base.code) == TEMPLATE_DECL &&
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) && (((tree_not_check2 (
((tree_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_2)) && ((__extension__ ({ struct lang_decl
*lt = ((contains_struct_check (((((enum tree_code) (t)->base
.code) == TEMPLATE_DECL ? ((struct tree_template_decl *)(const_cast
<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (t)->base.code) == FUNCTION_DECL || (((enum
tree_code) (t)->base.code) == TEMPLATE_DECL && ((
struct tree_template_decl *)(const_cast<union tree_node *>
((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__); &lt->u.fn; })->ovl_op_code) ==
OVL_OP_CALL_EXPR) && (((enum tree_code) ((!(! (((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL]))->base.code) == RECORD_TYPE && ((((
tree_class_check ((((tree_class_check (((!(! (((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
(((!(! (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check (((!(! (((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check (((!(! (((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.name))) && ((tree_check
((((((tree_class_check ((((tree_class_check (((!(! (((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
(((!(! (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check (((!(! (((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check (((!(! (((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__))->type_common.name)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1672, __FUNCTION__, (IDENTIFIER_NODE)))->base.protected_flag
)))
)
1673 return dump_lambda_function (pp, t, template_parms, template_args, flags);
1674
1675 fntype = TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1675, __FUNCTION__))->typed.type)
;
1676 parmtypes = FUNCTION_FIRST_USER_PARMTYPE (t)skip_artificial_parms_for ((t), ((tree_check2 ((((contains_struct_check
((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1676, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1676, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))->type_non_common
.values))
;
1677
1678 if (DECL_CLASS_SCOPE_P (t)(((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1678, __FUNCTION__))->decl_minimal.context) && (
tree_code_type[(int) (((enum tree_code) (((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1678, __FUNCTION__))->decl_minimal.context))->base.code
))] == tcc_type))
)
1679 cname = DECL_CONTEXT (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1679, __FUNCTION__))->decl_minimal.context)
;
1680 /* This is for partially instantiated template methods. */
1681 else if (TREE_CODE (fntype)((enum tree_code) (fntype)->base.code) == METHOD_TYPE)
1682 cname = TREE_TYPE (TREE_VALUE (parmtypes))((contains_struct_check ((((tree_check ((parmtypes), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1682, __FUNCTION__, (TREE_LIST)))->list.value)), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1682, __FUNCTION__))->typed.type)
;
1683
1684 if (flags & TFF_DECL_SPECIFIERS(1 << 2))
1685 {
1686 if (DECL_STATIC_FUNCTION_P (t)(__extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (t)->base.code) == TEMPLATE_DECL ? (
(struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1686, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1686, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (t)->base.code) == FUNCTION_DECL || (((enum
tree_code) (t)->base.code) == TEMPLATE_DECL && ((
struct tree_template_decl *)(const_cast<union tree_node *>
((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1686, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1686, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1686, __FUNCTION__); &lt->u.fn; })->static_function
)
)
1687 pp_cxx_ws_string (pp, "static")pp_c_ws_string (pp, "static");
1688 else if (DECL_VIRTUAL_P (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1688, __FUNCTION__))->decl_common.virtual_flag)
)
1689 pp_cxx_ws_string (pp, "virtual")pp_c_ws_string (pp, "virtual");
1690
1691 if (constexpr_p)
1692 {
1693 if (DECL_DECLARED_CONCEPT_P (t)(((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1693, __FUNCTION__))->decl_common.lang_specific)->u.base
.concept_p)
)
1694 pp_cxx_ws_string (pp, "concept")pp_c_ws_string (pp, "concept");
1695 else if (DECL_IMMEDIATE_FUNCTION_P (t)(((contains_struct_check (((tree_check (((((enum tree_code) (
t)->base.code) == TEMPLATE_DECL ? ((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1695, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1695, __FUNCTION__, (FUNCTION_DECL)))), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1695, __FUNCTION__))->decl_common.lang_specific) ? __extension__
({ struct lang_decl *lt = ((contains_struct_check (((((enum tree_code
) (t)->base.code) == TEMPLATE_DECL ? ((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1695, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1695, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (t)->base.code) == FUNCTION_DECL || (((enum
tree_code) (t)->base.code) == TEMPLATE_DECL && ((
struct tree_template_decl *)(const_cast<union tree_node *>
((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1695, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1695, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1695, __FUNCTION__); &lt->u.fn; })->immediate_fn_p
: false)
)
1696 pp_cxx_ws_string (pp, "consteval")pp_c_ws_string (pp, "consteval");
1697 else
1698 pp_cxx_ws_string (pp, "constexpr")pp_c_ws_string (pp, "constexpr");
1699 }
1700 }
1701
1702 /* Print the return type? */
1703 if (show_return)
1704 show_return = (!DECL_CONV_FN_P (t)((((tree_not_check2 (((tree_check ((((contains_struct_check (
(t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_2)) & ((tree_not_check2 (((tree_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_1) & (!((tree_not_check2 (((tree_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)))
&& !DECL_CONSTRUCTOR_P (t)((tree_check (((((enum tree_code) (t)->base.code) == TEMPLATE_DECL
? ((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1704, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_constructor
)
1705 && !DECL_DESTRUCTOR_P (t)((tree_check (((((enum tree_code) (t)->base.code) == TEMPLATE_DECL
? ((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1705, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1705, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_destructor
)
&& !deduction_guide_p (t));
1706 if (show_return)
1707 {
1708 ret = fndecl_declared_return_type (t);
1709 dump_type_prefix (pp, ret, flags);
1710 }
1711
1712 /* Print the function name. */
1713 if (!do_outer_scope)
1714 /* Nothing. */;
1715 else if (cname)
1716 {
1717 dump_type (pp, cname, flags);
1718 pp_cxx_colon_colon (pp);
1719 }
1720 else
1721 dump_scope (pp, CP_DECL_CONTEXT (t)(!(! (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1721, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1721, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((t), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1721, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])
, flags);
1722
1723 dump_function_name (pp, t, flags);
1724
1725 if (!(flags & TFF_NO_FUNCTION_ARGUMENTS(1 << 10)))
1726 {
1727 dump_parameters (pp, parmtypes, flags);
1728
1729 if (TREE_CODE (fntype)((enum tree_code) (fntype)->base.code) == METHOD_TYPE)
1730 {
1731 pp->padding = pp_before;
1732 pp_cxx_cv_qualifier_seq (pp, class_of_this_parm (fntype))pp_c_type_qualifier_list (pp, class_of_this_parm (fntype));
1733 dump_ref_qualifier (pp, fntype, flags);
1734 }
1735
1736 if (tx_safe_fn_type_p (fntype))
1737 {
1738 pp->padding = pp_before;
1739 pp_cxx_ws_string (pp, "transaction_safe")pp_c_ws_string (pp, "transaction_safe");
1740 }
1741
1742 if (flags & TFF_EXCEPTION_SPECIFICATION(1 << 6))
1743 {
1744 pp->padding = pp_before;
1745 dump_exception_spec (pp, exceptions, flags);
1746 }
1747
1748 if (show_return)
1749 dump_type_suffix (pp, ret, flags);
1750 else if (deduction_guide_p (t))
1751 {
1752 pp_cxx_ws_string (pp, "->")pp_c_ws_string (pp, "->");
1753 dump_type (pp, TREE_TYPE (TREE_TYPE (t))((contains_struct_check ((((contains_struct_check ((t), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1753, __FUNCTION__))->typed.type)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1753, __FUNCTION__))->typed.type)
, flags);
1754 }
1755
1756 if (flag_conceptsglobal_options.x_flag_concepts)
1757 if (tree ci = get_constraints (t))
1758 if (tree reqs = CI_DECLARATOR_REQS (ci)check_constraint_info (check_nonnull (ci))->declarator_reqs)
1759 pp_cxx_requires_clause (pp, reqs);
1760
1761 dump_substitution (pp, t, template_parms, template_args, flags);
1762
1763 if (tree base = DECL_INHERITED_CTOR_BASE (t)(((((enum tree_code) (t)->base.code) == FUNCTION_DECL || (
((enum tree_code) (t)->base.code) == TEMPLATE_DECL &&
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) && ((tree_check (((((enum
tree_code) (t)->base.code) == TEMPLATE_DECL ? ((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_constructor
) ? __extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (t)->base.code) == TEMPLATE_DECL ? (
(struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (t)->base.code) == FUNCTION_DECL || (((enum
tree_code) (t)->base.code) == TEMPLATE_DECL && ((
struct tree_template_decl *)(const_cast<union tree_node *>
((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__); &lt->u.fn; })->context : (tree
) __null) ? ((contains_struct_check ((global_options.x_flag_new_inheriting_ctors
? strip_inheriting_ctors (t) : ((((enum tree_code) (t)->base
.code) == FUNCTION_DECL || (((enum tree_code) (t)->base.code
) == TEMPLATE_DECL && ((struct tree_template_decl *)(
const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) && ((tree_check (((((enum
tree_code) (t)->base.code) == TEMPLATE_DECL ? ((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_constructor
) ? __extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (t)->base.code) == TEMPLATE_DECL ? (
(struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (t)->base.code) == FUNCTION_DECL || (((enum
tree_code) (t)->base.code) == TEMPLATE_DECL && ((
struct tree_template_decl *)(const_cast<union tree_node *>
((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__); &lt->u.fn; })->context : (tree
) __null)), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1763, __FUNCTION__))->decl_minimal.context) : (tree) __null
)
)
1764 {
1765 pp_cxx_ws_string (pp, "[inherited from")pp_c_ws_string (pp, "[inherited from");
1766 dump_type (pp, base, TFF_PLAIN_IDENTIFIER(0));
1767 pp_character (pp, ']');
1768 }
1769 }
1770 else if (template_args)
1771 {
1772 bool need_comma = false;
1773 int i;
1774 pp_cxx_begin_template_argument_list (pp);
1775 template_args = INNERMOST_TEMPLATE_ARGS (template_args)(get_innermost_template_args ((template_args), 1));
1776 for (i = 0; i < TREE_VEC_LENGTH (template_args)((tree_check ((template_args), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1776, __FUNCTION__, (TREE_VEC)))->base.u.length)
; ++i)
1777 {
1778 tree arg = TREE_VEC_ELT (template_args, i)(*((const_cast<tree *> (tree_vec_elt_check ((template_args
), (i), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1778, __FUNCTION__)))))
;
1779 if (need_comma)
1780 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
1781 if (ARGUMENT_PACK_P (arg)(((enum tree_code) (arg)->base.code) == TYPE_ARGUMENT_PACK
|| ((enum tree_code) (arg)->base.code) == NONTYPE_ARGUMENT_PACK
)
)
1782 pp_cxx_left_brace (pp)pp_c_left_brace (pp);
1783 dump_template_argument (pp, arg, TFF_PLAIN_IDENTIFIER(0));
1784 if (ARGUMENT_PACK_P (arg)(((enum tree_code) (arg)->base.code) == TYPE_ARGUMENT_PACK
|| ((enum tree_code) (arg)->base.code) == NONTYPE_ARGUMENT_PACK
)
)
1785 pp_cxx_right_brace (pp)pp_c_right_brace (pp);
1786 need_comma = true;
1787 }
1788 pp_cxx_end_template_argument_list (pp);
1789 }
1790}
1791
1792/* Print a parameter list. If this is for a member function, the
1793 member object ptr (and any other hidden args) should have
1794 already been removed. */
1795
1796static void
1797dump_parameters (cxx_pretty_printer *pp, tree parmtypes, int flags)
1798{
1799 int first = 1;
1800 flags &= ~TFF_SCOPE(1);
1801 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
1802
1803 for (first = 1; parmtypes != void_list_nodeglobal_trees[TI_VOID_LIST_NODE];
1804 parmtypes = TREE_CHAIN (parmtypes)((contains_struct_check ((parmtypes), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1804, __FUNCTION__))->common.chain)
)
1805 {
1806 if (!first)
1807 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
1808 first = 0;
1809 if (!parmtypes)
1810 {
1811 pp_cxx_ws_string (pp, "...")pp_c_ws_string (pp, "...");
1812 break;
1813 }
1814
1815 dump_type (pp, TREE_VALUE (parmtypes)((tree_check ((parmtypes), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1815, __FUNCTION__, (TREE_LIST)))->list.value)
, flags);
1816
1817 if ((flags & TFF_FUNCTION_DEFAULT_ARGUMENTS(1 << 5)) && TREE_PURPOSE (parmtypes)((tree_check ((parmtypes), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1817, __FUNCTION__, (TREE_LIST)))->list.purpose)
)
1818 {
1819 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
1820 pp_equal (pp)pp_character (pp, '=');
1821 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
1822 dump_expr (pp, TREE_PURPOSE (parmtypes)((tree_check ((parmtypes), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1822, __FUNCTION__, (TREE_LIST)))->list.purpose)
, flags | TFF_EXPR_IN_PARENS(1 << 9));
1823 }
1824 }
1825
1826 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
1827}
1828
1829/* Print ref-qualifier of a FUNCTION_TYPE or METHOD_TYPE. FLAGS are ignored. */
1830
1831static void
1832dump_ref_qualifier (cxx_pretty_printer *pp, tree t, int flags ATTRIBUTE_UNUSED__attribute__ ((__unused__)))
1833{
1834 if (FUNCTION_REF_QUALIFIED (t)((tree_not_check2 (((tree_check2 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1834, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1834, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_4)
)
1835 {
1836 pp->padding = pp_before;
1837 if (FUNCTION_RVALUE_QUALIFIED (t)((tree_not_check2 (((tree_check2 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1837, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1837, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_5)
)
1838 pp_cxx_ws_string (pp, "&&")pp_c_ws_string (pp, "&&");
1839 else
1840 pp_cxx_ws_string (pp, "&")pp_c_ws_string (pp, "&");
1841 }
1842}
1843
1844/* Print an exception specification. T is the exception specification. */
1845
1846static void
1847dump_exception_spec (cxx_pretty_printer *pp, tree t, int flags)
1848{
1849 if (t && TREE_PURPOSE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1849, __FUNCTION__, (TREE_LIST)))->list.purpose)
)
1850 {
1851 pp_cxx_ws_string (pp, "noexcept")pp_c_ws_string (pp, "noexcept");
1852 if (!integer_onep (TREE_PURPOSE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1852, __FUNCTION__, (TREE_LIST)))->list.purpose)
))
1853 {
1854 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
1855 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
1856 if (DEFERRED_NOEXCEPT_SPEC_P (t)((t) && (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1856, __FUNCTION__, (TREE_LIST)))->list.purpose)) &&
(((enum tree_code) (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1856, __FUNCTION__, (TREE_LIST)))->list.purpose))->base
.code) == DEFERRED_NOEXCEPT))
)
1857 pp_cxx_ws_string (pp, "<uninstantiated>")pp_c_ws_string (pp, "<uninstantiated>");
1858 else
1859 dump_expr (pp, TREE_PURPOSE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1859, __FUNCTION__, (TREE_LIST)))->list.purpose)
, flags);
1860 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
1861 }
1862 }
1863 else if (t)
1864 {
1865 pp_cxx_ws_string (pp, "throw")pp_c_ws_string (pp, "throw");
1866 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
1867 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
1868 if (TREE_VALUE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1868, __FUNCTION__, (TREE_LIST)))->list.value)
!= NULL_TREE(tree) __null)
1869 while (1)
1870 {
1871 dump_type (pp, TREE_VALUE (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1871, __FUNCTION__, (TREE_LIST)))->list.value)
, flags);
1872 t = TREE_CHAIN (t)((contains_struct_check ((t), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1872, __FUNCTION__))->common.chain)
;
1873 if (!t)
1874 break;
1875 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
1876 }
1877 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
1878 }
1879}
1880
1881/* Handle the function name for a FUNCTION_DECL node, grokking operators
1882 and destructors properly. */
1883
1884static void
1885dump_function_name (cxx_pretty_printer *pp, tree t, int flags)
1886{
1887 tree name = DECL_NAME (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1887, __FUNCTION__))->decl_minimal.name)
;
1888
1889 /* We can get here with a decl that was synthesized by language-
1890 independent machinery (e.g. coverage.c) in which case it won't
1891 have a lang_specific structure attached and DECL_CONSTRUCTOR_P
1892 will crash. In this case it is safe just to print out the
1893 literal name. */
1894 if (!DECL_LANG_SPECIFIC (t)((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1894, __FUNCTION__))->decl_common.lang_specific)
)
1895 {
1896 pp_cxx_tree_identifier (pp, name)pp_c_identifier (pp, ((const char *) (tree_check ((name), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1896, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
1897 return;
1898 }
1899
1900 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == TEMPLATE_DECL)
1901 t = DECL_TEMPLATE_RESULT (t)((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1901, __FUNCTION__, (TEMPLATE_DECL))))))))->result
;
1902
1903 /* Don't let the user see __comp_ctor et al. */
1904 if (DECL_CONSTRUCTOR_P (t)((tree_check (((((enum tree_code) (t)->base.code) == TEMPLATE_DECL
? ((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1904, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1904, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_constructor
)
1905 || DECL_DESTRUCTOR_P (t)((tree_check (((((enum tree_code) (t)->base.code) == TEMPLATE_DECL
? ((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1905, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1905, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_destructor
)
)
1906 {
1907 if (LAMBDA_TYPE_P (DECL_CONTEXT (t))(((enum tree_code) (((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.context))->base.code
) == RECORD_TYPE && ((((tree_class_check ((((tree_class_check
((((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
((((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.name))) && ((tree_check
((((((tree_class_check ((((tree_class_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
((((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__))->type_common.name)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1907, __FUNCTION__, (IDENTIFIER_NODE)))->base.protected_flag
))
)
1908 name = get_identifier ("<lambda>")(__builtin_constant_p ("<lambda>") ? get_identifier_with_length
(("<lambda>"), strlen ("<lambda>")) : get_identifier
("<lambda>"))
;
1909 else if (TYPE_UNNAMED_P (DECL_CONTEXT (t))((((((tree_class_check ((((tree_class_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
((((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name))) && ((tree_check
((((((tree_class_check ((((tree_class_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
((((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__, (IDENTIFIER_NODE)))->base.private_flag
)) && !((tree_check ((((((tree_class_check ((((tree_class_check
((((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
((((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->decl_minimal.context)), (tcc_type)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__))->type_common.name)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1909, __FUNCTION__, (IDENTIFIER_NODE)))->base.protected_flag
))
)
1910 name = get_identifier ("<constructor>")(__builtin_constant_p ("<constructor>") ? get_identifier_with_length
(("<constructor>"), strlen ("<constructor>")) : get_identifier
("<constructor>"))
;
1911 else
1912 name = constructor_name (DECL_CONTEXT (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1912, __FUNCTION__))->decl_minimal.context)
);
1913 }
1914
1915 if (DECL_DESTRUCTOR_P (t)((tree_check (((((enum tree_code) (t)->base.code) == TEMPLATE_DECL
? ((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1915, __FUNCTION__, (TEMPLATE_DECL))))))))->result : t))
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1915, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_destructor
)
)
1916 {
1917 pp_cxx_complement (pp)pp_c_complement (pp);
1918 dump_decl (pp, name, TFF_PLAIN_IDENTIFIER(0));
1919 }
1920 else if (DECL_CONV_FN_P (t)((((tree_not_check2 (((tree_check ((((contains_struct_check (
(t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1920, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1920, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1920, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_2)) & ((tree_not_check2 (((tree_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1920, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1920, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1920, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_1) & (!((tree_not_check2 (((tree_check ((((contains_struct_check
((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1920, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1920, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1920, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)))
)
1921 {
1922 /* This cannot use the hack that the operator's return
1923 type is stashed off of its name because it may be
1924 used for error reporting. In the case of conflicting
1925 declarations, both will have the same name, yet
1926 the types will be different, hence the TREE_TYPE field
1927 of the first name will be clobbered by the second. */
1928 pp_cxx_ws_string (pp, "operator")pp_c_ws_string (pp, "operator");
1929 dump_type (pp, TREE_TYPE (TREE_TYPE (t))((contains_struct_check ((((contains_struct_check ((t), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1929, __FUNCTION__))->typed.type)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1929, __FUNCTION__))->typed.type)
, flags);
1930 }
1931 else
1932 dump_decl (pp, name, flags);
1933
1934 dump_module_suffix (pp, t);
1935
1936 if (DECL_TEMPLATE_INFO (t)(((contains_struct_check ((template_info_decl_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1936, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1936, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)
1937 && !DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION (t)(((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1937, __FUNCTION__))->decl_common.lang_specific) &&
(((contains_struct_check ((template_info_decl_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1937, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1937, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info) && !(((contains_struct_check ((t),
(TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1937, __FUNCTION__))->decl_common.lang_specific)->u.base
.use_template))
1938 && (TREE_CODE (DECL_TI_TEMPLATE (t))((enum tree_code) (((struct tree_template_info*)(tree_check (
((((contains_struct_check ((template_info_decl_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1938, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1938, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1938, __FUNCTION__, (TEMPLATE_INFO))))->tmpl)->base.code
)
!= TEMPLATE_DECL
1939 || PRIMARY_TEMPLATE_P (DECL_TI_TEMPLATE (t))(((((contains_struct_check ((((tree_check ((((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((((struct
tree_template_info*)(tree_check (((((contains_struct_check (
(template_info_decl_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1939, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1939, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1939, __FUNCTION__, (TEMPLATE_INFO))))->tmpl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1939, __FUNCTION__, (TEMPLATE_DECL))))))))->arguments), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1939, __FUNCTION__, (TREE_LIST)))->list.value)), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1939, __FUNCTION__))->typed.type))) == (((struct tree_template_info
*)(tree_check (((((contains_struct_check ((template_info_decl_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1939, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1939, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1939, __FUNCTION__, (TEMPLATE_INFO))))->tmpl))
))
1940 dump_template_parms (pp, DECL_TEMPLATE_INFO (t)(((contains_struct_check ((template_info_decl_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1940, __FUNCTION__)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1940, __FUNCTION__))->decl_common.lang_specific) ->u.
min.template_info)
, !DECL_USE_TEMPLATE (t)(((contains_struct_check ((t), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1940, __FUNCTION__))->decl_common.lang_specific)->u.base
.use_template)
,
1941 flags);
1942}
1943
1944/* Dump the template parameters from the template info INFO under control of
1945 FLAGS. PRIMARY indicates whether this is a primary template decl, or
1946 specialization (partial or complete). For partial specializations we show
1947 the specialized parameter values. For a primary template we show no
1948 decoration. */
1949
1950static void
1951dump_template_parms (cxx_pretty_printer *pp, tree info,
1952 int primary, int flags)
1953{
1954 tree args = info ? TI_ARGS (info)((struct tree_template_info*)(tree_check ((info), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1954, __FUNCTION__, (TEMPLATE_INFO))))->args
: NULL_TREE(tree) __null;
1955
1956 if (primary && flags & TFF_TEMPLATE_NAME(1 << 8))
1957 return;
1958 flags &= ~(TFF_CLASS_KEY_OR_ENUM(1 << 3) | TFF_TEMPLATE_NAME(1 << 8));
1959 pp_cxx_begin_template_argument_list (pp);
1960
1961 /* Be careful only to print things when we have them, so as not
1962 to crash producing error messages. */
1963 if (args && !primary)
1964 {
1965 int len, ix;
1966 len = get_non_default_template_args_count (args, flags);
1967
1968 args = INNERMOST_TEMPLATE_ARGS (args)(get_innermost_template_args ((args), 1));
1969 for (ix = 0; ix != len; ix++)
1970 {
1971 tree arg = TREE_VEC_ELT (args, ix)(*((const_cast<tree *> (tree_vec_elt_check ((args), (ix
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1971, __FUNCTION__)))))
;
1972
1973 /* Only print a comma if we know there is an argument coming. In
1974 the case of an empty template argument pack, no actual
1975 argument will be printed. */
1976 if (ix
1977 && (!ARGUMENT_PACK_P (arg)(((enum tree_code) (arg)->base.code) == TYPE_ARGUMENT_PACK
|| ((enum tree_code) (arg)->base.code) == NONTYPE_ARGUMENT_PACK
)
1978 || TREE_VEC_LENGTH (ARGUMENT_PACK_ARGS (arg))((tree_check (((((enum tree_code) (arg)->base.code) == TYPE_ARGUMENT_PACK
? ((contains_struct_check ((arg), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1978, __FUNCTION__))->typed.type) : (*((const_cast<tree
*> (tree_operand_check ((arg), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1978, __FUNCTION__))))))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1978, __FUNCTION__, (TREE_VEC)))->base.u.length)
> 0))
1979 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
1980
1981 if (!arg)
1982 pp_string (pp, M_("<template parameter error>")((cxx_pp)->translate_identifiers ? gettext ("<template parameter error>"
) : ("<template parameter error>"))
);
1983 else
1984 dump_template_argument (pp, arg, flags);
1985 }
1986 }
1987 else if (primary)
1988 {
1989 tree tpl = TI_TEMPLATE (info)((struct tree_template_info*)(tree_check ((info), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1989, __FUNCTION__, (TEMPLATE_INFO))))->tmpl
;
1990 tree parms = DECL_TEMPLATE_PARMS (tpl)((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((tpl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1990, __FUNCTION__, (TEMPLATE_DECL))))))))->arguments
;
1991 int len, ix;
1992
1993 parms = TREE_CODE (parms)((enum tree_code) (parms)->base.code) == TREE_LIST ? TREE_VALUE (parms)((tree_check ((parms), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1993, __FUNCTION__, (TREE_LIST)))->list.value)
: NULL_TREE(tree) __null;
1994 len = parms ? TREE_VEC_LENGTH (parms)((tree_check ((parms), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 1994, __FUNCTION__, (TREE_VEC)))->base.u.length)
: 0;
1995
1996 for (ix = 0; ix != len; ix++)
1997 {
1998 tree parm;
1999
2000 if (TREE_VEC_ELT (parms, ix)(*((const_cast<tree *> (tree_vec_elt_check ((parms), (ix
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2000, __FUNCTION__)))))
== error_mark_nodeglobal_trees[TI_ERROR_MARK])
2001 {
2002 pp_string (pp, M_("<template parameter error>")((cxx_pp)->translate_identifiers ? gettext ("<template parameter error>"
) : ("<template parameter error>"))
);
2003 continue;
2004 }
2005
2006 parm = TREE_VALUE (TREE_VEC_ELT (parms, ix))((tree_check (((*((const_cast<tree *> (tree_vec_elt_check
((parms), (ix), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2006, __FUNCTION__)))))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2006, __FUNCTION__, (TREE_LIST)))->list.value)
;
2007
2008 if (ix)
2009 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
2010
2011 dump_decl (pp, parm, flags & ~TFF_DECL_SPECIFIERS(1 << 2));
2012 }
2013 }
2014 pp_cxx_end_template_argument_list (pp);
2015}
2016
2017/* Print out the arguments of CALL_EXPR T as a parenthesized list using
2018 flags FLAGS. Skip over the first argument if SKIPFIRST is true. */
2019
2020static void
2021dump_call_expr_args (cxx_pretty_printer *pp, tree t, int flags, bool skipfirst)
2022{
2023 tree arg;
2024 call_expr_arg_iterator iter;
2025
2026 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2027 FOR_EACH_CALL_EXPR_ARG (arg, iter, t)for ((arg) = first_call_expr_arg ((t), &(iter)); (arg); (
arg) = next_call_expr_arg (&(iter)))
2028 {
2029 if (skipfirst)
2030 skipfirst = false;
2031 else
2032 {
2033 dump_expr (pp, arg, flags | TFF_EXPR_IN_PARENS(1 << 9));
2034 if (more_call_expr_args_p (&iter))
2035 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
2036 }
2037 }
2038 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2039}
2040
2041/* Print out the arguments of AGGR_INIT_EXPR T as a parenthesized list
2042 using flags FLAGS. Skip over the first argument if SKIPFIRST is
2043 true. */
2044
2045static void
2046dump_aggr_init_expr_args (cxx_pretty_printer *pp, tree t, int flags,
2047 bool skipfirst)
2048{
2049 tree arg;
2050 aggr_init_expr_arg_iterator iter;
2051
2052 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2053 FOR_EACH_AGGR_INIT_EXPR_ARG (arg, iter, t)for ((arg) = first_aggr_init_expr_arg ((t), &(iter)); (arg
); (arg) = next_aggr_init_expr_arg (&(iter)))
2054 {
2055 if (skipfirst)
2056 skipfirst = false;
2057 else
2058 {
2059 dump_expr (pp, arg, flags | TFF_EXPR_IN_PARENS(1 << 9));
2060 if (more_aggr_init_expr_args_p (&iter))
2061 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
2062 }
2063 }
2064 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2065}
2066
2067/* Print out a list of initializers (subr of dump_expr). */
2068
2069static void
2070dump_expr_list (cxx_pretty_printer *pp, tree l, int flags)
2071{
2072 while (l)
2073 {
2074 dump_expr (pp, TREE_VALUE (l)((tree_check ((l), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2074, __FUNCTION__, (TREE_LIST)))->list.value)
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2075 l = TREE_CHAIN (l)((contains_struct_check ((l), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2075, __FUNCTION__))->common.chain)
;
2076 if (l)
2077 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
2078 }
2079}
2080
2081/* Print out a vector of initializers (subr of dump_expr). */
2082
2083static void
2084dump_expr_init_vec (cxx_pretty_printer *pp, vec<constructor_elt, va_gc> *v,
2085 int flags)
2086{
2087 unsigned HOST_WIDE_INTlong idx;
2088 tree value;
2089
2090 FOR_EACH_CONSTRUCTOR_VALUE (v, idx, value)for (idx = 0; (idx >= vec_safe_length (v)) ? false : ((value
= (*(v))[idx].value), true); (idx)++)
2091 {
2092 dump_expr (pp, value, flags | TFF_EXPR_IN_PARENS(1 << 9));
2093 if (idx != v->length () - 1)
2094 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
2095 }
2096}
2097
2098
2099/* We've gotten an indirect REFERENCE (an OBJ_TYPE_REF) to a virtual
2100 function. Resolve it to a close relative -- in the sense of static
2101 type -- variant being overridden. That is close to what was written in
2102 the source code. Subroutine of dump_expr. */
2103
2104static tree
2105resolve_virtual_fun_from_obj_type_ref (tree ref)
2106{
2107 tree obj_type = TREE_TYPE (OBJ_TYPE_REF_OBJECT (ref))((contains_struct_check (((*((const_cast<tree*> (tree_operand_check
(((tree_check ((ref), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2107, __FUNCTION__, (OBJ_TYPE_REF)))), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2107, __FUNCTION__)))))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2107, __FUNCTION__))->typed.type)
;
2108 HOST_WIDE_INTlong index = tree_to_uhwi (OBJ_TYPE_REF_TOKEN (ref)(*((const_cast<tree*> (tree_operand_check (((tree_check
((ref), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2108, __FUNCTION__, (OBJ_TYPE_REF)))), (2), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2108, __FUNCTION__)))))
);
2109 tree fun = BINFO_VIRTUALS (TYPE_BINFO (TREE_TYPE (obj_type)))((tree_check ((((tree_check3 ((((contains_struct_check ((obj_type
), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2109, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2109, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))->type_non_common.maxval)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2109, __FUNCTION__, (TREE_BINFO)))->binfo.virtuals)
;
2110 while (index)
2111 {
2112 fun = TREE_CHAIN (fun)((contains_struct_check ((fun), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2112, __FUNCTION__))->common.chain)
;
2113 index -= (TARGET_VTABLE_USES_DESCRIPTORS0
2114 ? TARGET_VTABLE_USES_DESCRIPTORS0 : 1);
2115 }
2116
2117 return BV_FN (fun)(((tree_check ((fun), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2117, __FUNCTION__, (TREE_LIST)))->list.value))
;
2118}
2119
2120/* Print out an expression E under control of FLAGS. */
2121
2122static void
2123dump_expr (cxx_pretty_printer *pp, tree t, int flags)
2124{
2125 tree op;
2126
2127 if (t == 0)
2128 return;
2129
2130 if (STATEMENT_CLASS_P (t)(tree_code_type[(int) (((enum tree_code) (t)->base.code))]
== tcc_statement)
)
2131 {
2132 pp_cxx_ws_string (pp, M_("<statement>"))pp_c_ws_string (pp, ((cxx_pp)->translate_identifiers ? gettext
("<statement>") : ("<statement>")))
;
2133 return;
2134 }
2135
2136 switch (TREE_CODE (t)((enum tree_code) (t)->base.code))
2137 {
2138 case VAR_DECL:
2139 case PARM_DECL:
2140 case FIELD_DECL:
2141 case CONST_DECL:
2142 case FUNCTION_DECL:
2143 case TEMPLATE_DECL:
2144 case NAMESPACE_DECL:
2145 case LABEL_DECL:
2146 case WILDCARD_DECL:
2147 case OVERLOAD:
2148 case TYPE_DECL:
2149 case IDENTIFIER_NODE:
2150 dump_decl (pp, t, ((flags & ~(TFF_DECL_SPECIFIERS(1 << 2)|TFF_RETURN_TYPE(1 << 4)
2151 |TFF_TEMPLATE_HEADER(1 << 7)))
2152 | TFF_NO_TEMPLATE_BINDINGS(1 << 13)
2153 | TFF_NO_FUNCTION_ARGUMENTS(1 << 10)));
2154 break;
2155
2156 case SSA_NAME:
2157 if (SSA_NAME_VAR (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2157, __FUNCTION__, (SSA_NAME)))->ssa_name.var == (tree)
__null || ((enum tree_code) ((t)->ssa_name.var)->base.
code) == IDENTIFIER_NODE ? (tree) __null : (t)->ssa_name.var
)
2158 && !DECL_ARTIFICIAL (SSA_NAME_VAR (t))((contains_struct_check ((((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2158, __FUNCTION__, (SSA_NAME)))->ssa_name.var == (tree)
__null || ((enum tree_code) ((t)->ssa_name.var)->base.
code) == IDENTIFIER_NODE ? (tree) __null : (t)->ssa_name.var
)), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2158, __FUNCTION__))->decl_common.artificial_flag)
)
2159 dump_expr (pp, SSA_NAME_VAR (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2159, __FUNCTION__, (SSA_NAME)))->ssa_name.var == (tree)
__null || ((enum tree_code) ((t)->ssa_name.var)->base.
code) == IDENTIFIER_NODE ? (tree) __null : (t)->ssa_name.var
)
, flags);
2160 else
2161 pp_cxx_ws_string (pp, M_("<unknown>"))pp_c_ws_string (pp, ((cxx_pp)->translate_identifiers ? gettext
("<unknown>") : ("<unknown>")))
;
2162 break;
2163
2164 case VOID_CST:
2165 case INTEGER_CST:
2166 case REAL_CST:
2167 case STRING_CST:
2168 case COMPLEX_CST:
2169 pp->constant (t);
2170 break;
2171
2172 case USERDEF_LITERAL:
2173 pp_cxx_userdef_literal (pp, t);
2174 break;
2175
2176 case THROW_EXPR:
2177 /* While waiting for caret diagnostics, avoid printing
2178 __cxa_allocate_exception, __cxa_throw, and the like. */
2179 pp_cxx_ws_string (pp, M_("<throw-expression>"))pp_c_ws_string (pp, ((cxx_pp)->translate_identifiers ? gettext
("<throw-expression>") : ("<throw-expression>"))
)
;
2180 break;
2181
2182 case PTRMEM_CST:
2183 pp_ampersand (pp)pp_character (pp, '&');
2184 dump_type (pp, PTRMEM_CST_CLASS (t)((((enum tree_code) (((contains_struct_check (((tree_check ((
t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__, (PTRMEM_CST)))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__))->typed.type))->base.code) == OFFSET_TYPE
) ? ((tree_check ((((contains_struct_check (((tree_check ((t)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__, (PTRMEM_CST)))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__, (OFFSET_TYPE)))->type_non_common.maxval
) : ((tree_check2 ((((contains_struct_check (((cp_build_qualified_type_real
((((contains_struct_check ((((tree_check3 ((((contains_struct_check
(((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__, (PTRMEM_CST)))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))->type_non_common.values)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__))->typed.type)), (cp_type_quals (((contains_struct_check
(((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__, (PTRMEM_CST)))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__))->typed.type))), tf_warning_or_error
))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2184, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))->type_non_common
.maxval))
, flags);
2185 pp_cxx_colon_colon (pp);
2186 pp_cxx_tree_identifier (pp, DECL_NAME (PTRMEM_CST_MEMBER (t)))pp_c_identifier (pp, ((const char *) (tree_check ((((contains_struct_check
(((((ptrmem_cst_t)(tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2186, __FUNCTION__, (PTRMEM_CST))))->member)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2186, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2186, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
))
;
2187 break;
2188
2189 case COMPOUND_EXPR:
2190 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2191 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2191, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2192 pp_separate_with_comma (pp)pp_cxx_separate_with (pp, ',');
2193 dump_expr (pp, TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2193, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2194 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2195 break;
2196
2197 case COND_EXPR:
2198 case VEC_COND_EXPR:
2199 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2200 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2200, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2201 pp_string (pp, " ? ");
2202 dump_expr (pp, TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2202, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2203 pp_string (pp, " : ");
2204 dump_expr (pp, TREE_OPERAND (t, 2)(*((const_cast<tree*> (tree_operand_check ((t), (2), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2204, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2205 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2206 break;
2207
2208 case SAVE_EXPR:
2209 if (TREE_HAS_CONSTRUCTOR (t)(((tree_not_check2 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2209, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_4))
)
2210 {
2211 pp_cxx_ws_string (pp, "new")pp_c_ws_string (pp, "new");
2212 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
2213 dump_type (pp, TREE_TYPE (TREE_TYPE (t))((contains_struct_check ((((contains_struct_check ((t), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2213, __FUNCTION__))->typed.type)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2213, __FUNCTION__))->typed.type)
, flags);
2214 }
2215 else
2216 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2216, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2217 break;
2218
2219 case AGGR_INIT_EXPR:
2220 {
2221 tree fn = NULL_TREE(tree) __null;
2222
2223 if (TREE_CODE (AGGR_INIT_EXPR_FN (t))((enum tree_code) ((*((const_cast<tree*> (tree_operand_check
(((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2223, __FUNCTION__, (AGGR_INIT_EXPR)))), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2223, __FUNCTION__))))))->base.code)
== ADDR_EXPR)
2224 fn = TREE_OPERAND (AGGR_INIT_EXPR_FN (t), 0)(*((const_cast<tree*> (tree_operand_check (((*((const_cast
<tree*> (tree_operand_check (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2224, __FUNCTION__, (AGGR_INIT_EXPR)))), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2224, __FUNCTION__)))))), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2224, __FUNCTION__)))))
;
2225
2226 if (fn && TREE_CODE (fn)((enum tree_code) (fn)->base.code) == FUNCTION_DECL)
2227 {
2228 if (DECL_CONSTRUCTOR_P (fn)((tree_check (((((enum tree_code) (fn)->base.code) == TEMPLATE_DECL
? ((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2228, __FUNCTION__, (TEMPLATE_DECL))))))))->result : fn)
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2228, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_constructor
)
)
2229 dump_type (pp, DECL_CONTEXT (fn)((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2229, __FUNCTION__))->decl_minimal.context)
, flags);
2230 else
2231 dump_decl (pp, fn, 0);
2232 }
2233 else
2234 dump_expr (pp, AGGR_INIT_EXPR_FN (t)(*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2234, __FUNCTION__, (AGGR_INIT_EXPR)))), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2234, __FUNCTION__)))))
, 0);
2235 }
2236 dump_aggr_init_expr_args (pp, t, flags, true);
2237 break;
2238
2239 case CALL_EXPR:
2240 {
2241 tree fn = CALL_EXPR_FN (t)(*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2241, __FUNCTION__, (CALL_EXPR)))), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2241, __FUNCTION__)))))
;
2242 bool skipfirst = false;
2243
2244 /* Deal with internal functions. */
2245 if (fn == NULL_TREE(tree) __null)
2246 {
2247 pp_string (pp, internal_fn_name (CALL_EXPR_IFN (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2247, __FUNCTION__, (CALL_EXPR)))->base.u.ifn)
));
2248 dump_call_expr_args (pp, t, flags, skipfirst);
2249 break;
2250 }
2251
2252 if (TREE_CODE (fn)((enum tree_code) (fn)->base.code) == ADDR_EXPR)
2253 fn = TREE_OPERAND (fn, 0)(*((const_cast<tree*> (tree_operand_check ((fn), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2253, __FUNCTION__)))))
;
2254
2255 /* Nobody is interested in seeing the guts of vcalls. */
2256 if (TREE_CODE (fn)((enum tree_code) (fn)->base.code) == OBJ_TYPE_REF)
2257 fn = resolve_virtual_fun_from_obj_type_ref (fn);
2258
2259 if (TREE_TYPE (fn)((contains_struct_check ((fn), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2259, __FUNCTION__))->typed.type)
!= NULL_TREE(tree) __null
2260 && NEXT_CODE (fn)(((enum tree_code) (((contains_struct_check ((fn), (TS_TYPED)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2260, __FUNCTION__))->typed.type))->base.code))
== METHOD_TYPE
2261 && call_expr_nargs (t)(((int)((unsigned long) (*tree_int_cst_elt_check (((tree_class_check
((t), (tcc_vl_exp), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2261, __FUNCTION__))->exp.operands[0]), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2261, __FUNCTION__)))) - 3)
)
2262 {
2263 tree ob = CALL_EXPR_ARG (t, 0)(*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2263, __FUNCTION__, (CALL_EXPR)))), ((0) + 3), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2263, __FUNCTION__)))))
;
2264 if (TREE_CODE (ob)((enum tree_code) (ob)->base.code) == ADDR_EXPR)
2265 {
2266 dump_expr (pp, TREE_OPERAND (ob, 0)(*((const_cast<tree*> (tree_operand_check ((ob), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2266, __FUNCTION__)))))
,
2267 flags | TFF_EXPR_IN_PARENS(1 << 9));
2268 pp_cxx_dot (pp)pp_c_dot (pp);
2269 }
2270 else if (!is_this_parameter (ob))
2271 {
2272 dump_expr (pp, ob, flags | TFF_EXPR_IN_PARENS(1 << 9));
2273 pp_cxx_arrow (pp)pp_c_arrow (pp);
2274 }
2275 skipfirst = true;
2276 }
2277 if (flag_sanitizeglobal_options.x_flag_sanitize & SANITIZE_UNDEFINED
2278 && is_ubsan_builtin_p (fn))
2279 {
2280 pp_string (cxx_pp, M_("<ubsan routine call>")((cxx_pp)->translate_identifiers ? gettext ("<ubsan routine call>"
) : ("<ubsan routine call>"))
);
2281 break;
2282 }
2283 dump_expr (pp, fn, flags | TFF_EXPR_IN_PARENS(1 << 9));
2284 dump_call_expr_args (pp, t, flags, skipfirst);
2285 }
2286 break;
2287
2288 case TARGET_EXPR:
2289 /* Note that this only works for G++ target exprs. If somebody
2290 builds a general TARGET_EXPR, there's no way to represent that
2291 it initializes anything other that the parameter slot for the
2292 default argument. Note we may have cleared out the first
2293 operand in expand_expr, so don't go killing ourselves. */
2294 if (TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2294, __FUNCTION__)))))
)
2295 dump_expr (pp, TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2295, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2296 break;
2297
2298 case POINTER_PLUS_EXPR:
2299 dump_binary_op (pp, "+", t, flags);
2300 break;
2301
2302 case POINTER_DIFF_EXPR:
2303 dump_binary_op (pp, "-", t, flags);
2304 break;
2305
2306 case INIT_EXPR:
2307 case MODIFY_EXPR:
2308 dump_binary_op (pp, OVL_OP_INFO (true, NOP_EXPR)(&ovl_op_info[(true) != 0][ovl_op_mapping[(NOP_EXPR)]])->name, t, flags);
2309 break;
2310
2311 case PLUS_EXPR:
2312 case MINUS_EXPR:
2313 case MULT_EXPR:
2314 case TRUNC_DIV_EXPR:
2315 case TRUNC_MOD_EXPR:
2316 case MIN_EXPR:
2317 case MAX_EXPR:
2318 case LSHIFT_EXPR:
2319 case RSHIFT_EXPR:
2320 case BIT_IOR_EXPR:
2321 case BIT_XOR_EXPR:
2322 case BIT_AND_EXPR:
2323 case TRUTH_ANDIF_EXPR:
2324 case TRUTH_ORIF_EXPR:
2325 case LT_EXPR:
2326 case LE_EXPR:
2327 case GT_EXPR:
2328 case GE_EXPR:
2329 case EQ_EXPR:
2330 case NE_EXPR:
2331 case SPACESHIP_EXPR:
2332 case EXACT_DIV_EXPR:
2333 dump_binary_op (pp, OVL_OP_INFO (false, TREE_CODE (t))(&ovl_op_info[(false) != 0][ovl_op_mapping[(((enum tree_code
) (t)->base.code))]])
->name, t, flags);
2334 break;
2335
2336 case CEIL_DIV_EXPR:
2337 case FLOOR_DIV_EXPR:
2338 case ROUND_DIV_EXPR:
2339 case RDIV_EXPR:
2340 dump_binary_op (pp, "/", t, flags);
2341 break;
2342
2343 case CEIL_MOD_EXPR:
2344 case FLOOR_MOD_EXPR:
2345 case ROUND_MOD_EXPR:
2346 dump_binary_op (pp, "%", t, flags);
2347 break;
2348
2349 case COMPONENT_REF:
2350 {
2351 tree ob = TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2351, __FUNCTION__)))))
;
2352 if (INDIRECT_REF_P (ob)(((enum tree_code) (ob)->base.code) == INDIRECT_REF))
2353 {
2354 ob = TREE_OPERAND (ob, 0)(*((const_cast<tree*> (tree_operand_check ((ob), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2354, __FUNCTION__)))))
;
2355 if (!is_this_parameter (ob))
2356 {
2357 dump_expr (pp, ob, flags | TFF_EXPR_IN_PARENS(1 << 9));
2358 if (TYPE_REF_P (TREE_TYPE (ob))(((enum tree_code) (((contains_struct_check ((ob), (TS_TYPED)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2358, __FUNCTION__))->typed.type))->base.code) == REFERENCE_TYPE
)
)
2359 pp_cxx_dot (pp)pp_c_dot (pp);
2360 else
2361 pp_cxx_arrow (pp)pp_c_arrow (pp);
2362 }
2363 }
2364 else
2365 {
2366 dump_expr (pp, ob, flags | TFF_EXPR_IN_PARENS(1 << 9));
2367 if (TREE_CODE (ob)((enum tree_code) (ob)->base.code) != ARROW_EXPR)
2368 pp_cxx_dot (pp)pp_c_dot (pp);
2369 }
2370 dump_expr (pp, TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2370, __FUNCTION__)))))
, flags & ~TFF_EXPR_IN_PARENS(1 << 9));
2371 }
2372 break;
2373
2374 case ARRAY_REF:
2375 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2375, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2376 pp_cxx_left_bracket (pp)pp_c_left_bracket (pp);
2377 dump_expr (pp, TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2377, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2378 pp_cxx_right_bracket (pp)pp_c_right_bracket (pp);
2379 break;
2380
2381 case UNARY_PLUS_EXPR:
2382 dump_unary_op (pp, "+", t, flags);
2383 break;
2384
2385 case ADDR_EXPR:
2386 if (TREE_CODE (TREE_OPERAND (t, 0))((enum tree_code) ((*((const_cast<tree*> (tree_operand_check
((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2386, __FUNCTION__))))))->base.code)
== FUNCTION_DECL
2387 || TREE_CODE (TREE_OPERAND (t, 0))((enum tree_code) ((*((const_cast<tree*> (tree_operand_check
((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2387, __FUNCTION__))))))->base.code)
== STRING_CST
2388 /* An ADDR_EXPR can have reference type. In that case, we
2389 shouldn't print the `&' doing so indicates to the user
2390 that the expression has pointer type. */
2391 || (TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2391, __FUNCTION__))->typed.type)
2392 && TYPE_REF_P (TREE_TYPE (t))(((enum tree_code) (((contains_struct_check ((t), (TS_TYPED),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2392, __FUNCTION__))->typed.type))->base.code) == REFERENCE_TYPE
)
))
2393 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2393, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2394 else if (TREE_CODE (TREE_OPERAND (t, 0))((enum tree_code) ((*((const_cast<tree*> (tree_operand_check
((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2394, __FUNCTION__))))))->base.code)
== LABEL_DECL)
2395 dump_unary_op (pp, "&&", t, flags);
2396 else
2397 dump_unary_op (pp, "&", t, flags);
2398 break;
2399
2400 case INDIRECT_REF:
2401 if (TREE_HAS_CONSTRUCTOR (t)(((tree_not_check2 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2401, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_4))
)
2402 {
2403 t = TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2403, __FUNCTION__)))))
;
2404 gcc_assert (TREE_CODE (t) == CALL_EXPR)((void)(!(((enum tree_code) (t)->base.code) == CALL_EXPR) ?
fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2404, __FUNCTION__), 0 : 0))
;
2405 dump_expr (pp, CALL_EXPR_FN (t)(*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2405, __FUNCTION__, (CALL_EXPR)))), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2405, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2406 dump_call_expr_args (pp, t, flags, true);
2407 }
2408 else
2409 {
2410 if (TREE_OPERAND (t,0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2410, __FUNCTION__)))))
!= NULL_TREE(tree) __null
2411 && TREE_TYPE (TREE_OPERAND (t, 0))((contains_struct_check (((*((const_cast<tree*> (tree_operand_check
((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2411, __FUNCTION__)))))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2411, __FUNCTION__))->typed.type)
2412 && NEXT_CODE (TREE_OPERAND (t, 0))(((enum tree_code) (((contains_struct_check (((*((const_cast<
tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2412, __FUNCTION__)))))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2412, __FUNCTION__))->typed.type))->base.code))
== REFERENCE_TYPE)
2413 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2413, __FUNCTION__)))))
, flags);
2414 else
2415 dump_unary_op (pp, "*", t, flags);
2416 }
2417 break;
2418
2419 case MEM_REF:
2420 /* Delegate to the base "C" pretty printer. */
2421 pp->c_pretty_printer::unary_expression (t);
2422 break;
2423
2424 case TARGET_MEM_REF:
2425 /* TARGET_MEM_REF can't appear directly from source, but can appear
2426 during late GIMPLE optimizations and through late diagnostic we might
2427 need to support it. Print it as dereferencing of a pointer after
2428 cast to the TARGET_MEM_REF type, with pointer arithmetics on some
2429 pointer to single byte types, so
2430 *(type *)((char *) ptr + step * index + index2) if all the operands
2431 are present and the casts are needed. */
2432 pp_cxx_star (pp)pp_c_star (pp);
2433 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2434 if (TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (TMR_BASE (t))))((tree_class_check ((((contains_struct_check ((((contains_struct_check
((((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2434, __FUNCTION__, (TARGET_MEM_REF)))), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2434, __FUNCTION__))))))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2434, __FUNCTION__))->typed.type)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2434, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2434, __FUNCTION__))->type_common.size_unit)
== NULL_TREE(tree) __null
2435 || !integer_onep (TYPE_SIZE_UNIT((tree_class_check ((((contains_struct_check ((((contains_struct_check
((((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2436, __FUNCTION__, (TARGET_MEM_REF)))), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2436, __FUNCTION__))))))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2436, __FUNCTION__))->typed.type)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2436, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2436, __FUNCTION__))->type_common.size_unit)
2436 (TREE_TYPE (TREE_TYPE (TMR_BASE (t))))((tree_class_check ((((contains_struct_check ((((contains_struct_check
((((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2436, __FUNCTION__, (TARGET_MEM_REF)))), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2436, __FUNCTION__))))))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2436, __FUNCTION__))->typed.type)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2436, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2436, __FUNCTION__))->type_common.size_unit)
))
2437 {
2438 if (TYPE_SIZE_UNIT (TREE_TYPE (t))((tree_class_check ((((contains_struct_check ((t), (TS_TYPED)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2438, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2438, __FUNCTION__))->type_common.size_unit)
2439 && integer_onep (TYPE_SIZE_UNIT (TREE_TYPE (t))((tree_class_check ((((contains_struct_check ((t), (TS_TYPED)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2439, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2439, __FUNCTION__))->type_common.size_unit)
))
2440 {
2441 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2442 dump_type (pp, build_pointer_type (TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2442, __FUNCTION__))->typed.type)
), flags);
2443 }
2444 else
2445 {
2446 dump_type (pp, build_pointer_type (TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2446, __FUNCTION__))->typed.type)
), flags);
2447 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2448 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2449 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2450 dump_type (pp, build_pointer_type (char_type_nodeinteger_types[itk_char]), flags);
2451 }
2452 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2453 }
2454 else if (!same_type_p (TREE_TYPE (t),comptypes ((((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2454, __FUNCTION__))->typed.type)), (((contains_struct_check
((((contains_struct_check ((((*((const_cast<tree*> (tree_operand_check
(((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2455, __FUNCTION__, (TARGET_MEM_REF)))), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2455, __FUNCTION__))))))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2455, __FUNCTION__))->typed.type)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2455, __FUNCTION__))->typed.type)), 0)
2455 TREE_TYPE (TREE_TYPE (TMR_BASE (t))))comptypes ((((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2454, __FUNCTION__))->typed.type)), (((contains_struct_check
((((contains_struct_check ((((*((const_cast<tree*> (tree_operand_check
(((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2455, __FUNCTION__, (TARGET_MEM_REF)))), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2455, __FUNCTION__))))))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2455, __FUNCTION__))->typed.type)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2455, __FUNCTION__))->typed.type)), 0)
)
2456 {
2457 dump_type (pp, build_pointer_type (TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2457, __FUNCTION__))->typed.type)
), flags);
2458 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2459 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2460 }
2461 dump_expr (pp, TMR_BASE (t)((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2461, __FUNCTION__, (TARGET_MEM_REF)))), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2461, __FUNCTION__))))))
, flags);
2462 if (TMR_STEP (t)((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2462, __FUNCTION__, (TARGET_MEM_REF)))), (3), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2462, __FUNCTION__))))))
&& TMR_INDEX (t)((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2462, __FUNCTION__, (TARGET_MEM_REF)))), (2), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2462, __FUNCTION__))))))
)
2463 {
2464 pp_cxx_ws_string (pp, "+")pp_c_ws_string (pp, "+");
2465 dump_expr (pp, TMR_INDEX (t)((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2465, __FUNCTION__, (TARGET_MEM_REF)))), (2), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2465, __FUNCTION__))))))
, flags);
2466 pp_cxx_ws_string (pp, "*")pp_c_ws_string (pp, "*");
2467 dump_expr (pp, TMR_STEP (t)((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2467, __FUNCTION__, (TARGET_MEM_REF)))), (3), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2467, __FUNCTION__))))))
, flags);
2468 }
2469 if (TMR_INDEX2 (t)((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2469, __FUNCTION__, (TARGET_MEM_REF)))), (4), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2469, __FUNCTION__))))))
)
2470 {
2471 pp_cxx_ws_string (pp, "+")pp_c_ws_string (pp, "+");
2472 dump_expr (pp, TMR_INDEX2 (t)((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2472, __FUNCTION__, (TARGET_MEM_REF)))), (4), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2472, __FUNCTION__))))))
, flags);
2473 }
2474 if (!integer_zerop (TMR_OFFSET (t)((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2474, __FUNCTION__, (TARGET_MEM_REF)))), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2474, __FUNCTION__))))))
))
2475 {
2476 pp_cxx_ws_string (pp, "+")pp_c_ws_string (pp, "+");
2477 dump_expr (pp, fold_convert (ssizetype, TMR_OFFSET (t))fold_convert_loc (((location_t) 0), sizetype_tab[(int) stk_ssizetype
], ((*((const_cast<tree*> (tree_operand_check (((tree_check
((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2477, __FUNCTION__, (TARGET_MEM_REF)))), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2477, __FUNCTION__)))))))
, flags);
2478 }
2479 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2480 break;
2481
2482 case NEGATE_EXPR:
2483 case BIT_NOT_EXPR:
2484 case TRUTH_NOT_EXPR:
2485 case PREDECREMENT_EXPR:
2486 case PREINCREMENT_EXPR:
2487 dump_unary_op (pp, OVL_OP_INFO (false, TREE_CODE (t))(&ovl_op_info[(false) != 0][ovl_op_mapping[(((enum tree_code
) (t)->base.code))]])
->name, t, flags);
2488 break;
2489
2490 case POSTDECREMENT_EXPR:
2491 case POSTINCREMENT_EXPR:
2492 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2493 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2493, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2494 pp_cxx_ws_string (pp, OVL_OP_INFO (false, TREE_CODE (t))->name)pp_c_ws_string (pp, (&ovl_op_info[(false) != 0][ovl_op_mapping
[(((enum tree_code) (t)->base.code))]])->name)
;
2495 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2496 break;
2497
2498 case NON_LVALUE_EXPR:
2499 /* FIXME: This is a KLUDGE workaround for a parsing problem. There
2500 should be another level of INDIRECT_REF so that I don't have to do
2501 this. */
2502 if (TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2502, __FUNCTION__))->typed.type)
!= NULL_TREE(tree) __null && NEXT_CODE (t)(((enum tree_code) (((contains_struct_check ((t), (TS_TYPED),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2502, __FUNCTION__))->typed.type))->base.code))
== POINTER_TYPE)
2503 {
2504 tree next = TREE_TYPE (TREE_TYPE (t))((contains_struct_check ((((contains_struct_check ((t), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2504, __FUNCTION__))->typed.type)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2504, __FUNCTION__))->typed.type)
;
2505
2506 while (TYPE_PTR_P (next)(((enum tree_code) (next)->base.code) == POINTER_TYPE))
2507 next = TREE_TYPE (next)((contains_struct_check ((next), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2507, __FUNCTION__))->typed.type)
;
2508
2509 if (TREE_CODE (next)((enum tree_code) (next)->base.code) == FUNCTION_TYPE)
2510 {
2511 if (flags & TFF_EXPR_IN_PARENS(1 << 9))
2512 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2513 pp_cxx_star (pp)pp_c_star (pp);
2514 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2514, __FUNCTION__)))))
, flags & ~TFF_EXPR_IN_PARENS(1 << 9));
2515 if (flags & TFF_EXPR_IN_PARENS(1 << 9))
2516 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2517 break;
2518 }
2519 /* Else fall through. */
2520 }
2521 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2521, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2522 break;
2523
2524 CASE_CONVERTcase NOP_EXPR: case CONVERT_EXPR:
2525 case IMPLICIT_CONV_EXPR:
2526 case VIEW_CONVERT_EXPR:
2527 {
2528 tree op = TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2528, __FUNCTION__)))))
;
2529 tree ttype = TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2529, __FUNCTION__))->typed.type)
;
2530 tree optype = TREE_TYPE (op)((contains_struct_check ((op), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2530, __FUNCTION__))->typed.type)
;
2531
2532 if (TREE_CODE (ttype)((enum tree_code) (ttype)->base.code) != TREE_CODE (optype)((enum tree_code) (optype)->base.code)
2533 && INDIRECT_TYPE_P (ttype)((((enum tree_code) (ttype)->base.code) == POINTER_TYPE) ||
(((enum tree_code) (ttype)->base.code) == REFERENCE_TYPE)
)
2534 && INDIRECT_TYPE_P (optype)((((enum tree_code) (optype)->base.code) == POINTER_TYPE) ||
(((enum tree_code) (optype)->base.code) == REFERENCE_TYPE
))
2535 && same_type_p (TREE_TYPE (optype),comptypes ((((contains_struct_check ((optype), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2535, __FUNCTION__))->typed.type)), (((contains_struct_check
((ttype), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2536, __FUNCTION__))->typed.type)), 0)
2536 TREE_TYPE (ttype))comptypes ((((contains_struct_check ((optype), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2535, __FUNCTION__))->typed.type)), (((contains_struct_check
((ttype), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2536, __FUNCTION__))->typed.type)), 0)
)
2537 {
2538 if (TYPE_REF_P (ttype)(((enum tree_code) (ttype)->base.code) == REFERENCE_TYPE))
2539 {
2540 STRIP_NOPS (op)(op) = tree_strip_nop_conversions ((const_cast<union tree_node
*> (((op)))))
;
2541 if (TREE_CODE (op)((enum tree_code) (op)->base.code) == ADDR_EXPR)
2542 dump_expr (pp, TREE_OPERAND (op, 0)(*((const_cast<tree*> (tree_operand_check ((op), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2542, __FUNCTION__)))))
, flags);
2543 else
2544 dump_unary_op (pp, "*", t, flags);
2545 }
2546 else
2547 dump_unary_op (pp, "&", t, flags);
2548 }
2549 else if (!same_type_p (TREE_TYPE (op), TREE_TYPE (t))comptypes ((((contains_struct_check ((op), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2549, __FUNCTION__))->typed.type)), (((contains_struct_check
((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2549, __FUNCTION__))->typed.type)), 0)
)
2550 {
2551 /* It is a cast, but we cannot tell whether it is a
2552 reinterpret or static cast. Use the C style notation. */
2553 if (flags & TFF_EXPR_IN_PARENS(1 << 9))
2554 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2555 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2556 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2556, __FUNCTION__))->typed.type)
, flags);
2557 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2558 dump_expr (pp, op, flags | TFF_EXPR_IN_PARENS(1 << 9));
2559 if (flags & TFF_EXPR_IN_PARENS(1 << 9))
2560 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2561 }
2562 else
2563 dump_expr (pp, op, flags);
2564 break;
2565 }
2566
2567 case CONSTRUCTOR:
2568 if (TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2568, __FUNCTION__))->typed.type)
&& TYPE_PTRMEMFUNC_P (TREE_TYPE (t))(((enum tree_code) (((contains_struct_check ((t), (TS_TYPED),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2568, __FUNCTION__))->typed.type))->base.code) == RECORD_TYPE
&& (((tree_class_check (((tree_check ((((contains_struct_check
((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2568, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2568, __FUNCTION__, (RECORD_TYPE)))), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2568, __FUNCTION__))->type_common.lang_flag_2)))
)
2569 {
2570 tree idx = build_ptrmemfunc_access_expr (t, pfn_identifiercp_global_trees[CPTI_PFN_IDENTIFIER]);
2571
2572 if (integer_zerop (idx))
2573 {
2574 /* A NULL pointer-to-member constant. */
2575 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2576 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2577 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2577, __FUNCTION__))->typed.type)
, flags);
2578 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2579 pp_character (pp, '0');
2580 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2581 break;
2582 }
2583 else if (tree_fits_shwi_p (idx))
2584 {
2585 tree virtuals;
2586 unsigned HOST_WIDE_INTlong n;
2587
2588 t = TREE_TYPE (TYPE_PTRMEMFUNC_FN_TYPE (TREE_TYPE (t)))((contains_struct_check (((cp_build_qualified_type_real ((((contains_struct_check
((((tree_check3 ((((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2588, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2588, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))->type_non_common.values)), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2588, __FUNCTION__))->typed.type)), (cp_type_quals (((contains_struct_check
((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2588, __FUNCTION__))->typed.type))), tf_warning_or_error
))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2588, __FUNCTION__))->typed.type)
;
2589 t = TYPE_METHOD_BASETYPE (t)((tree_check2 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2589, __FUNCTION__, (FUNCTION_TYPE), (METHOD_TYPE)))->type_non_common
.maxval)
;
2590 virtuals = BINFO_VIRTUALS (TYPE_BINFO (TYPE_MAIN_VARIANT (t)))((tree_check ((((tree_check3 ((((tree_class_check ((t), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2590, __FUNCTION__))->type_common.main_variant)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2590, __FUNCTION__, (RECORD_TYPE), (UNION_TYPE), (QUAL_UNION_TYPE
)))->type_non_common.maxval)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2590, __FUNCTION__, (TREE_BINFO)))->binfo.virtuals)
;
2591
2592 n = tree_to_shwi (idx);
2593
2594 /* Map vtable index back one, to allow for the null pointer to
2595 member. */
2596 --n;
2597
2598 while (n > 0 && virtuals)
2599 {
2600 --n;
2601 virtuals = TREE_CHAIN (virtuals)((contains_struct_check ((virtuals), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2601, __FUNCTION__))->common.chain)
;
2602 }
2603 if (virtuals)
2604 {
2605 dump_expr (pp, BV_FN (virtuals)(((tree_check ((virtuals), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2605, __FUNCTION__, (TREE_LIST)))->list.value))
,
2606 flags | TFF_EXPR_IN_PARENS(1 << 9));
2607 break;
2608 }
2609 }
2610 }
2611 if (TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->typed.type)
&& LAMBDA_TYPE_P (TREE_TYPE (t))(((enum tree_code) (((contains_struct_check ((t), (TS_TYPED),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->typed.type))->base.code) == RECORD_TYPE
&& ((((tree_class_check ((((tree_class_check ((((contains_struct_check
((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
((((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.name))) && ((tree_check
((((((tree_class_check ((((tree_class_check ((((contains_struct_check
((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
((((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check ((((contains_struct_check ((t), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->typed.type)), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__))->type_common.name)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2611, __FUNCTION__, (IDENTIFIER_NODE)))->base.protected_flag
))
)
2612 pp_string (pp, "<lambda closure object>");
2613 if (TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2613, __FUNCTION__))->typed.type)
&& EMPTY_CONSTRUCTOR_P (t)(((enum tree_code) (t)->base.code) == CONSTRUCTOR &&
vec_safe_is_empty(((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2613, __FUNCTION__, (CONSTRUCTOR)))->constructor.elts)) &&
!(((tree_not_check2 ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2613, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_4)))
)
2614 {
2615 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2615, __FUNCTION__))->typed.type)
, 0);
2616 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2617 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2618 }
2619 else
2620 {
2621 if (!BRACE_ENCLOSED_INITIALIZER_P (t)(((enum tree_code) (t)->base.code) == CONSTRUCTOR &&
((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2621, __FUNCTION__))->typed.type) == cp_global_trees[CPTI_INIT_LIST_TYPE
])
)
2622 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2622, __FUNCTION__))->typed.type)
, 0);
2623 pp_cxx_left_brace (pp)pp_c_left_brace (pp);
2624 dump_expr_init_vec (pp, CONSTRUCTOR_ELTS (t)((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2624, __FUNCTION__, (CONSTRUCTOR)))->constructor.elts)
, flags);
2625 pp_cxx_right_brace (pp)pp_c_right_brace (pp);
2626 }
2627
2628 break;
2629
2630 case OFFSET_REF:
2631 {
2632 tree ob = TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2632, __FUNCTION__)))))
;
2633 if (is_dummy_object (ob))
2634 {
2635 t = TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2635, __FUNCTION__)))))
;
2636 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == FUNCTION_DECL)
2637 /* A::f */
2638 dump_expr (pp, t, flags | TFF_EXPR_IN_PARENS(1 << 9));
2639 else if (BASELINK_P (t)(((enum tree_code) (t)->base.code) == BASELINK))
2640 dump_expr (pp, OVL_FIRST (BASELINK_FUNCTIONS (t))ovl_first ((((struct tree_baselink*) (tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2640, __FUNCTION__, (BASELINK))))->functions))
,
2641 flags | TFF_EXPR_IN_PARENS(1 << 9));
2642 else
2643 dump_decl (pp, t, flags);
2644 }
2645 else
2646 {
2647 if (INDIRECT_REF_P (ob)(((enum tree_code) (ob)->base.code) == INDIRECT_REF))
2648 {
2649 dump_expr (pp, TREE_OPERAND (ob, 0)(*((const_cast<tree*> (tree_operand_check ((ob), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2649, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2650 pp_cxx_arrow (pp)pp_c_arrow (pp);
2651 pp_cxx_star (pp)pp_c_star (pp);
2652 }
2653 else
2654 {
2655 dump_expr (pp, ob, flags | TFF_EXPR_IN_PARENS(1 << 9));
2656 pp_cxx_dot (pp)pp_c_dot (pp);
2657 pp_cxx_star (pp)pp_c_star (pp);
2658 }
2659 dump_expr (pp, TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2659, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2660 }
2661 break;
2662 }
2663
2664 case TEMPLATE_PARM_INDEX:
2665 dump_decl (pp, TEMPLATE_PARM_DECL (t)(((template_parm_index*)(tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2665, __FUNCTION__, (TEMPLATE_PARM_INDEX))))->decl)
, flags & ~TFF_DECL_SPECIFIERS(1 << 2));
2666 break;
2667
2668 case CAST_EXPR:
2669 if (TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2669, __FUNCTION__)))))
== NULL_TREE(tree) __null
2670 || TREE_CHAIN (TREE_OPERAND (t, 0))((contains_struct_check (((*((const_cast<tree*> (tree_operand_check
((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2670, __FUNCTION__)))))), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2670, __FUNCTION__))->common.chain)
)
2671 {
2672 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2672, __FUNCTION__))->typed.type)
, flags);
2673 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2674 dump_expr_list (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2674, __FUNCTION__)))))
, flags);
2675 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2676 }
2677 else
2678 {
2679 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2680 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2680, __FUNCTION__))->typed.type)
, flags);
2681 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2682 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2683 dump_expr_list (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2683, __FUNCTION__)))))
, flags);
2684 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2685 }
2686 break;
2687
2688 case STATIC_CAST_EXPR:
2689 pp_cxx_ws_string (pp, "static_cast")pp_c_ws_string (pp, "static_cast");
2690 goto cast;
2691 case REINTERPRET_CAST_EXPR:
2692 pp_cxx_ws_string (pp, "reinterpret_cast")pp_c_ws_string (pp, "reinterpret_cast");
2693 goto cast;
2694 case CONST_CAST_EXPR:
2695 pp_cxx_ws_string (pp, "const_cast")pp_c_ws_string (pp, "const_cast");
2696 goto cast;
2697 case DYNAMIC_CAST_EXPR:
2698 pp_cxx_ws_string (pp, "dynamic_cast")pp_c_ws_string (pp, "dynamic_cast");
2699 cast:
2700 pp_cxx_begin_template_argument_list (pp);
2701 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2701, __FUNCTION__))->typed.type)
, flags);
2702 pp_cxx_end_template_argument_list (pp);
2703 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2704 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2704, __FUNCTION__)))))
, flags);
2705 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2706 break;
2707
2708 case ARROW_EXPR:
2709 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2709, __FUNCTION__)))))
, flags);
2710 pp_cxx_arrow (pp)pp_c_arrow (pp);
2711 break;
2712
2713 case SIZEOF_EXPR:
2714 case ALIGNOF_EXPR:
2715 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == SIZEOF_EXPR)
2716 pp_cxx_ws_string (pp, "sizeof")pp_c_ws_string (pp, "sizeof");
2717 else
2718 {
2719 gcc_assert (TREE_CODE (t) == ALIGNOF_EXPR)((void)(!(((enum tree_code) (t)->base.code) == ALIGNOF_EXPR
) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2719, __FUNCTION__), 0 : 0))
;
2720 pp_cxx_ws_string (pp, "__alignof__")pp_c_ws_string (pp, "__alignof__");
2721 }
2722 op = TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2722, __FUNCTION__)))))
;
2723 if (PACK_EXPANSION_P (op)(((enum tree_code) (op)->base.code) == TYPE_PACK_EXPANSION
|| ((enum tree_code) (op)->base.code) == EXPR_PACK_EXPANSION
)
)
2724 {
2725 pp_string (pp, "...");
2726 op = PACK_EXPANSION_PATTERN (op)(((enum tree_code) (op)->base.code) == TYPE_PACK_EXPANSION
? ((contains_struct_check ((op), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2726, __FUNCTION__))->typed.type) : (*((const_cast<tree
*> (tree_operand_check ((op), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2726, __FUNCTION__))))))
;
2727 }
2728 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
2729 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2730 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == SIZEOF_EXPR && SIZEOF_EXPR_TYPE_P (t)((tree_not_check2 (((tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2730, __FUNCTION__, (SIZEOF_EXPR)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2730, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_0)
)
2731 dump_type (pp, TREE_TYPE (op)((contains_struct_check ((op), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2731, __FUNCTION__))->typed.type)
, flags);
2732 else if (TYPE_P (TREE_OPERAND (t, 0))(tree_code_type[(int) (((enum tree_code) ((*((const_cast<tree
*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2732, __FUNCTION__))))))->base.code))] == tcc_type)
)
2733 dump_type (pp, op, flags);
2734 else
2735 dump_expr (pp, op, flags);
2736 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2737 break;
2738
2739 case AT_ENCODE_EXPR:
2740 pp_cxx_ws_string (pp, "@encode")pp_c_ws_string (pp, "@encode");
2741 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
2742 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2743 dump_type (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2743, __FUNCTION__)))))
, flags);
2744 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2745 break;
2746
2747 case NOEXCEPT_EXPR:
2748 pp_cxx_ws_string (pp, "noexcept")pp_c_ws_string (pp, "noexcept");
2749 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
2750 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2751 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2751, __FUNCTION__)))))
, flags);
2752 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2753 break;
2754
2755 case REALPART_EXPR:
2756 case IMAGPART_EXPR:
2757 pp_cxx_ws_string (pp, OVL_OP_INFO (false, TREE_CODE (t))->name)pp_c_ws_string (pp, (&ovl_op_info[(false) != 0][ovl_op_mapping
[(((enum tree_code) (t)->base.code))]])->name)
;
2758 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
2759 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2759, __FUNCTION__)))))
, flags);
2760 break;
2761
2762 case DEFERRED_PARSE:
2763 pp_string (pp, M_("<unparsed>")((cxx_pp)->translate_identifiers ? gettext ("<unparsed>"
) : ("<unparsed>"))
);
2764 break;
2765
2766 case TRY_CATCH_EXPR:
2767 case CLEANUP_POINT_EXPR:
2768 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2768, __FUNCTION__)))))
, flags);
2769 break;
2770
2771 case PSEUDO_DTOR_EXPR:
2772 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2772, __FUNCTION__)))))
, flags);
2773 pp_cxx_dot (pp)pp_c_dot (pp);
2774 if (TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2774, __FUNCTION__)))))
)
2775 {
2776 dump_type (pp, TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2776, __FUNCTION__)))))
, flags);
2777 pp_cxx_colon_colon (pp);
2778 }
2779 pp_cxx_complement (pp)pp_c_complement (pp);
2780 dump_type (pp, TREE_OPERAND (t, 2)(*((const_cast<tree*> (tree_operand_check ((t), (2), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2780, __FUNCTION__)))))
, flags);
2781 break;
2782
2783 case TEMPLATE_ID_EXPR:
2784 dump_decl (pp, t, flags);
2785 break;
2786
2787 case BIND_EXPR:
2788 case STMT_EXPR:
2789 case EXPR_STMT:
2790 case STATEMENT_LIST:
2791 /* We don't yet have a way of dumping statements in a
2792 human-readable format. */
2793 pp_string (pp, "({...})");
2794 break;
2795
2796 case LOOP_EXPR:
2797 pp_string (pp, "while (1) { ");
2798 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2798, __FUNCTION__)))))
, flags & ~TFF_EXPR_IN_PARENS(1 << 9));
2799 pp_cxx_right_brace (pp)pp_c_right_brace (pp);
2800 break;
2801
2802 case EXIT_EXPR:
2803 pp_string (pp, "if (");
2804 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2804, __FUNCTION__)))))
, flags & ~TFF_EXPR_IN_PARENS(1 << 9));
2805 pp_string (pp, ") break; ");
2806 break;
2807
2808 case BASELINK:
2809 dump_expr (pp, BASELINK_FUNCTIONS (t)(((struct tree_baselink*) (tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2809, __FUNCTION__, (BASELINK))))->functions)
, flags & ~TFF_EXPR_IN_PARENS(1 << 9));
2810 break;
2811
2812 case EMPTY_CLASS_EXPR:
2813 dump_type (pp, TREE_TYPE (t)((contains_struct_check ((t), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2813, __FUNCTION__))->typed.type)
, flags);
2814 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2815 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2816 break;
2817
2818 case NON_DEPENDENT_EXPR:
2819 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2819, __FUNCTION__)))))
, flags);
2820 break;
2821
2822 case ARGUMENT_PACK_SELECT:
2823 dump_template_argument (pp, ARGUMENT_PACK_SELECT_FROM_PACK (t)(((struct tree_argument_pack_select *)(tree_check ((t), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2823, __FUNCTION__, (ARGUMENT_PACK_SELECT))))->argument_pack
)
, flags);
2824 break;
2825
2826 case RECORD_TYPE:
2827 case UNION_TYPE:
2828 case ENUMERAL_TYPE:
2829 case REAL_TYPE:
2830 case VOID_TYPE:
2831 case OPAQUE_TYPE:
2832 case BOOLEAN_TYPE:
2833 case INTEGER_TYPE:
2834 case COMPLEX_TYPE:
2835 case VECTOR_TYPE:
2836 case DECLTYPE_TYPE:
2837 pp_type_specifier_seq (pp, t)(pp)->type_specifier_seq (pp, t);
2838 break;
2839
2840 case TYPENAME_TYPE:
2841 /* We get here when we want to print a dependent type as an
2842 id-expression, without any disambiguator decoration. */
2843 pp->id_expression (t);
2844 break;
2845
2846 case TEMPLATE_TYPE_PARM:
2847 case TEMPLATE_TEMPLATE_PARM:
2848 case BOUND_TEMPLATE_TEMPLATE_PARM:
2849 dump_type (pp, t, flags);
2850 break;
2851
2852 case TRAIT_EXPR:
2853 pp_cxx_trait_expression (pp, t);
2854 break;
2855
2856 case VA_ARG_EXPR:
2857 pp_cxx_va_arg_expression (pp, t);
2858 break;
2859
2860 case OFFSETOF_EXPR:
2861 pp_cxx_offsetof_expression (pp, t);
2862 break;
2863
2864 case ADDRESSOF_EXPR:
2865 pp_cxx_addressof_expression (pp, t);
2866 break;
2867
2868 case SCOPE_REF:
2869 dump_decl (pp, t, flags);
2870 break;
2871
2872 case EXPR_PACK_EXPANSION:
2873 case UNARY_LEFT_FOLD_EXPR:
2874 case UNARY_RIGHT_FOLD_EXPR:
2875 case BINARY_LEFT_FOLD_EXPR:
2876 case BINARY_RIGHT_FOLD_EXPR:
2877 case TYPEID_EXPR:
2878 case MEMBER_REF:
2879 case DOTSTAR_EXPR:
2880 case NEW_EXPR:
2881 case VEC_NEW_EXPR:
2882 case DELETE_EXPR:
2883 case VEC_DELETE_EXPR:
2884 case MODOP_EXPR:
2885 case ABS_EXPR:
2886 case ABSU_EXPR:
2887 case CONJ_EXPR:
2888 case VECTOR_CST:
2889 case FIXED_CST:
2890 case UNORDERED_EXPR:
2891 case ORDERED_EXPR:
2892 case UNLT_EXPR:
2893 case UNLE_EXPR:
2894 case UNGT_EXPR:
2895 case UNGE_EXPR:
2896 case UNEQ_EXPR:
2897 case LTGT_EXPR:
2898 case COMPLEX_EXPR:
2899 case BIT_FIELD_REF:
2900 case FIX_TRUNC_EXPR:
2901 case FLOAT_EXPR:
2902 pp->expression (t);
2903 break;
2904
2905 case TRUTH_AND_EXPR:
2906 case TRUTH_OR_EXPR:
2907 case TRUTH_XOR_EXPR:
2908 if (flags & TFF_EXPR_IN_PARENS(1 << 9))
2909 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2910 pp->expression (t);
2911 if (flags & TFF_EXPR_IN_PARENS(1 << 9))
2912 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2913 break;
2914
2915 case OBJ_TYPE_REF:
2916 dump_expr (pp, resolve_virtual_fun_from_obj_type_ref (t), flags);
2917 break;
2918
2919 case LAMBDA_EXPR:
2920 pp_string (pp, M_("<lambda>")((cxx_pp)->translate_identifiers ? gettext ("<lambda>"
) : ("<lambda>"))
);
2921 break;
2922
2923 case PAREN_EXPR:
2924 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2925 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2925, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2926 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2927 break;
2928
2929 case REQUIRES_EXPR:
2930 pp_cxx_requires_expr (cxx_pp, t);
2931 break;
2932
2933 case SIMPLE_REQ:
2934 pp_cxx_simple_requirement (cxx_pp, t);
2935 break;
2936
2937 case TYPE_REQ:
2938 pp_cxx_type_requirement (cxx_pp, t);
2939 break;
2940
2941 case COMPOUND_REQ:
2942 pp_cxx_compound_requirement (cxx_pp, t);
2943 break;
2944
2945 case NESTED_REQ:
2946 pp_cxx_nested_requirement (cxx_pp, t);
2947 break;
2948
2949 case ATOMIC_CONSTR:
2950 case CHECK_CONSTR:
2951 case CONJ_CONSTR:
2952 case DISJ_CONSTR:
2953 {
2954 pp_cxx_constraint (cxx_pp, t);
2955 break;
2956 }
2957
2958 case PLACEHOLDER_EXPR:
2959 pp_string (pp, M_("*this")((cxx_pp)->translate_identifiers ? gettext ("*this") : ("*this"
))
);
2960 break;
2961
2962 case TREE_LIST:
2963 dump_expr_list (pp, t, flags);
2964 break;
2965
2966 /* This list is incomplete, but should suffice for now.
2967 It is very important that `sorry' does not call
2968 `report_error_function'. That could cause an infinite loop. */
2969 default:
2970 pp_unsupported_tree (pp, t)pp_verbatim (pp, "%qs not supported by %s", get_tree_code_name
(((enum tree_code) (t)->base.code)), __FUNCTION__)
;
2971 /* Fall through. */
2972 case ERROR_MARK:
2973 pp_string (pp, M_("<expression error>")((cxx_pp)->translate_identifiers ? gettext ("<expression error>"
) : ("<expression error>"))
);
2974 break;
2975 }
2976}
2977
2978static void
2979dump_binary_op (cxx_pretty_printer *pp, const char *opstring, tree t,
2980 int flags)
2981{
2982 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
2983 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2983, __FUNCTION__)))))
, flags | TFF_EXPR_IN_PARENS(1 << 9));
2984 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
2985 if (opstring)
2986 pp_cxx_ws_string (pp, opstring)pp_c_ws_string (pp, opstring);
2987 else
2988 pp_string (pp, M_("<unknown operator>")((cxx_pp)->translate_identifiers ? gettext ("<unknown operator>"
) : ("<unknown operator>"))
);
2989 pp_cxx_whitespace (pp)pp_c_whitespace (pp);
2990 tree op1 = TREE_OPERAND (t, 1)(*((const_cast<tree*> (tree_operand_check ((t), (1), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 2990, __FUNCTION__)))))
;
2991 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == POINTER_PLUS_EXPR
2992 && TREE_CODE (op1)((enum tree_code) (op1)->base.code) == INTEGER_CST
2993 && tree_int_cst_sign_bit (op1))
2994 /* A pointer minus an integer is represented internally as plus a very
2995 large number, don't expose that to users. */
2996 op1 = convert (ssizetypesizetype_tab[(int) stk_ssizetype], op1);
2997 dump_expr (pp, op1, flags | TFF_EXPR_IN_PARENS(1 << 9));
2998 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
2999}
3000
3001static void
3002dump_unary_op (cxx_pretty_printer *pp, const char *opstring, tree t, int flags)
3003{
3004 if (flags & TFF_EXPR_IN_PARENS(1 << 9))
3005 pp_cxx_left_paren (pp)pp_c_left_paren (pp);
3006 pp_cxx_ws_string (pp, opstring)pp_c_ws_string (pp, opstring);
3007 dump_expr (pp, TREE_OPERAND (t, 0)(*((const_cast<tree*> (tree_operand_check ((t), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3007, __FUNCTION__)))))
, flags & ~TFF_EXPR_IN_PARENS(1 << 9));
3008 if (flags & TFF_EXPR_IN_PARENS(1 << 9))
3009 pp_cxx_right_paren (pp)pp_c_right_paren (pp);
3010}
3011
3012static void
3013reinit_cxx_pp (void)
3014{
3015 pp_clear_output_area (cxx_pp);
3016 cxx_pp->padding = pp_none;
3017 pp_indentation (cxx_pp)(cxx_pp)->indent_skip = 0;
3018 pp_needs_newline (cxx_pp)(cxx_pp)->need_newline = false;
3019 cxx_pp->enclosing_scope = current_function_decl;
3020}
3021
3022/* Same as pp_formatted_text, except the return string is a separate
3023 copy and has a GGC storage duration, e.g. an indefinite lifetime. */
3024
3025inline const char *
3026pp_ggc_formatted_text (pretty_printer *pp)
3027{
3028 return ggc_strdup (pp_formatted_text (pp))ggc_alloc_string ((pp_formatted_text (pp)), -1 );
3029}
3030
3031/* Exported interface to stringifying types, exprs and decls under TFF_*
3032 control. */
3033
3034const char *
3035type_as_string (tree typ, int flags)
3036{
3037 reinit_cxx_pp ();
3038 pp_translate_identifiers (cxx_pp)(cxx_pp)->translate_identifiers = false;
3039 dump_type (cxx_pp, typ, flags);
3040 return pp_ggc_formatted_text (cxx_pp);
3041}
3042
3043const char *
3044type_as_string_translate (tree typ, int flags)
3045{
3046 reinit_cxx_pp ();
3047 dump_type (cxx_pp, typ, flags);
3048 return pp_ggc_formatted_text (cxx_pp);
3049}
3050
3051const char *
3052expr_as_string (tree decl, int flags)
3053{
3054 reinit_cxx_pp ();
3055 pp_translate_identifiers (cxx_pp)(cxx_pp)->translate_identifiers = false;
3056 dump_expr (cxx_pp, decl, flags);
3057 return pp_ggc_formatted_text (cxx_pp);
3058}
3059
3060/* Wrap decl_as_string with options appropriate for dwarf. */
3061
3062const char *
3063decl_as_dwarf_string (tree decl, int flags)
3064{
3065 const char *name;
3066 /* Curiously, reinit_cxx_pp doesn't reset the flags field, so setting the flag
3067 here will be adequate to get the desired behavior. */
3068 cxx_pp->flags |= pp_c_flag_gnu_v3;
3069 name = decl_as_string (decl, flags);
3070 /* Subsequent calls to the pretty printer shouldn't use this style. */
3071 cxx_pp->flags &= ~pp_c_flag_gnu_v3;
3072 return name;
3073}
3074
3075const char *
3076decl_as_string (tree decl, int flags)
3077{
3078 reinit_cxx_pp ();
3079 pp_translate_identifiers (cxx_pp)(cxx_pp)->translate_identifiers = false;
3080 dump_decl (cxx_pp, decl, flags);
3081 return pp_ggc_formatted_text (cxx_pp);
3082}
3083
3084const char *
3085decl_as_string_translate (tree decl, int flags)
3086{
3087 reinit_cxx_pp ();
3088 dump_decl (cxx_pp, decl, flags);
3089 return pp_ggc_formatted_text (cxx_pp);
3090}
3091
3092/* Wrap lang_decl_name with options appropriate for dwarf. */
3093
3094const char *
3095lang_decl_dwarf_name (tree decl, int v, bool translate)
3096{
3097 const char *name;
3098 /* Curiously, reinit_cxx_pp doesn't reset the flags field, so setting the flag
3099 here will be adequate to get the desired behavior. */
3100 cxx_pp->flags |= pp_c_flag_gnu_v3;
3101 name = lang_decl_name (decl, v, translate);
3102 /* Subsequent calls to the pretty printer shouldn't use this style. */
3103 cxx_pp->flags &= ~pp_c_flag_gnu_v3;
3104 return name;
3105}
3106
3107/* Generate the three forms of printable names for cxx_printable_name. */
3108
3109const char *
3110lang_decl_name (tree decl, int v, bool translate)
3111{
3112 if (v >= 2)
3113 return (translate
3114 ? decl_as_string_translate (decl, TFF_DECL_SPECIFIERS(1 << 2))
3115 : decl_as_string (decl, TFF_DECL_SPECIFIERS(1 << 2)));
3116
3117 reinit_cxx_pp ();
3118 pp_translate_identifiers (cxx_pp)(cxx_pp)->translate_identifiers = translate;
3119 if (v == 1
3120 && (DECL_CLASS_SCOPE_P (decl)(((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3120, __FUNCTION__))->decl_minimal.context) && (
tree_code_type[(int) (((enum tree_code) (((contains_struct_check
((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3120, __FUNCTION__))->decl_minimal.context))->base.code
))] == tcc_type))
3121 || (DECL_NAMESPACE_SCOPE_P (decl)(!(((contains_struct_check ((decl), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3121, __FUNCTION__))->decl_common.lang_flag_0) &&
(((enum tree_code) (decl)->base.code) == CONST_DECL || ((
enum tree_code) (decl)->base.code) == PARM_DECL || ((enum tree_code
) (decl)->base.code) == TYPE_DECL || ((enum tree_code) (decl
)->base.code) == TEMPLATE_DECL)) && ((enum tree_code
) ((!(! (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3121, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3121, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((decl)
, (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3121, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL]))->base.code) == NAMESPACE_DECL)
3122 && CP_DECL_CONTEXT (decl)(!(! (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3122, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3122, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((decl)
, (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3122, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])
!= global_namespacecp_global_trees[CPTI_GLOBAL])))
3123 {
3124 dump_type (cxx_pp, CP_DECL_CONTEXT (decl)(!(! (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3124, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3124, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((decl)
, (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3124, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])
, TFF_PLAIN_IDENTIFIER(0));
3125 pp_cxx_colon_colon (cxx_pp);
3126 }
3127
3128 if (TREE_CODE (decl)((enum tree_code) (decl)->base.code) == FUNCTION_DECL)
3129 dump_function_name (cxx_pp, decl, TFF_PLAIN_IDENTIFIER(0));
3130 else if ((DECL_NAME (decl)((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3130, __FUNCTION__))->decl_minimal.name)
== NULL_TREE(tree) __null)
3131 && TREE_CODE (decl)((enum tree_code) (decl)->base.code) == NAMESPACE_DECL)
3132 dump_decl (cxx_pp, decl, TFF_PLAIN_IDENTIFIER(0) | TFF_UNQUALIFIED_NAME(1 << 11));
3133 else
3134 dump_decl (cxx_pp, DECL_NAME (decl)((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3134, __FUNCTION__))->decl_minimal.name)
, TFF_PLAIN_IDENTIFIER(0));
3135
3136 return pp_ggc_formatted_text (cxx_pp);
3137}
3138
3139/* Return the location of a tree passed to %+ formats. */
3140
3141location_t
3142location_of (tree t)
3143{
3144 if (TYPE_P (t)(tree_code_type[(int) (((enum tree_code) (t)->base.code))]
== tcc_type)
)
3145 {
3146 t = TYPE_MAIN_DECL (t)((((contains_struct_check (((tree_class_check ((((tree_class_check
((t), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3146, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3146, __FUNCTION__))), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3146, __FUNCTION__))->common.chain)))
;
3147 if (t == NULL_TREE(tree) __null)
3148 return input_location;
3149 }
3150 else if (TREE_CODE (t)((enum tree_code) (t)->base.code) == OVERLOAD)
3151 t = OVL_FIRST (t)ovl_first (t);
3152
3153 if (DECL_P (t)(tree_code_type[(int) (((enum tree_code) (t)->base.code))]
== tcc_declaration)
)
3154 return DECL_SOURCE_LOCATION (t)((contains_struct_check ((t), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3154, __FUNCTION__))->decl_minimal.locus)
;
3155 if (TREE_CODE (t)((enum tree_code) (t)->base.code) == DEFERRED_PARSE)
3156 return defparse_location (t);
3157 return cp_expr_loc_or_input_loc (t);
3158}
3159
3160/* Now the interfaces from error et al to dump_type et al. Each takes an
3161 on/off VERBOSE flag and supply the appropriate TFF_ flags to a dump_
3162 function. */
3163
3164static const char *
3165decl_to_string (tree decl, int verbose)
3166{
3167 int flags = 0;
3168
3169 if (TREE_CODE (decl)((enum tree_code) (decl)->base.code) == TYPE_DECL || TREE_CODE (decl)((enum tree_code) (decl)->base.code) == RECORD_TYPE
3170 || TREE_CODE (decl)((enum tree_code) (decl)->base.code) == UNION_TYPE || TREE_CODE (decl)((enum tree_code) (decl)->base.code) == ENUMERAL_TYPE)
3171 flags = TFF_CLASS_KEY_OR_ENUM(1 << 3);
3172 if (verbose)
3173 flags |= TFF_DECL_SPECIFIERS(1 << 2);
3174 else if (TREE_CODE (decl)((enum tree_code) (decl)->base.code) == FUNCTION_DECL)
3175 flags |= TFF_DECL_SPECIFIERS(1 << 2) | TFF_RETURN_TYPE(1 << 4);
3176 flags |= TFF_TEMPLATE_HEADER(1 << 7);
3177
3178 reinit_cxx_pp ();
3179 dump_decl (cxx_pp, decl, flags);
3180 return pp_ggc_formatted_text (cxx_pp);
3181}
3182
3183const char *
3184expr_to_string (tree decl)
3185{
3186 reinit_cxx_pp ();
3187 dump_expr (cxx_pp, decl, 0);
3188 return pp_ggc_formatted_text (cxx_pp);
3189}
3190
3191static const char *
3192fndecl_to_string (tree fndecl, int verbose)
3193{
3194 int flags;
3195
3196 flags = TFF_EXCEPTION_SPECIFICATION(1 << 6) | TFF_DECL_SPECIFIERS(1 << 2)
3197 | TFF_TEMPLATE_HEADER(1 << 7);
3198 if (verbose)
3199 flags |= TFF_FUNCTION_DEFAULT_ARGUMENTS(1 << 5);
3200 reinit_cxx_pp ();
3201 dump_decl (cxx_pp, fndecl, flags);
3202 return pp_ggc_formatted_text (cxx_pp);
3203}
3204
3205
3206static const char *
3207code_to_string (enum tree_code c)
3208{
3209 return get_tree_code_name (c);
3210}
3211
3212const char *
3213language_to_string (enum languages c)
3214{
3215 switch (c)
3216 {
3217 case lang_c:
3218 return "C";
3219
3220 case lang_cplusplus:
3221 return "C++";
3222
3223 default:
3224 gcc_unreachable ()(fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3224, __FUNCTION__))
;
3225 }
3226 return NULL__null;
3227}
3228
3229/* Return the proper printed version of a parameter to a C++ function. */
3230
3231static const char *
3232parm_to_string (int p)
3233{
3234 reinit_cxx_pp ();
3235 if (p < 0)
3236 pp_string (cxx_pp, "'this'");
3237 else
3238 pp_decimal_int (cxx_pp, p + 1)do { sprintf ((cxx_pp)->buffer->digit_buffer, "%d", p +
1); pp_string (cxx_pp, (cxx_pp)->buffer->digit_buffer)
; } while (0)
;
3239 return pp_ggc_formatted_text (cxx_pp);
3240}
3241
3242static const char *
3243op_to_string (bool assop, enum tree_code p)
3244{
3245 tree id = ovl_op_identifier (assop, p);
3246 return id ? IDENTIFIER_POINTER (id)((const char *) (tree_check ((id), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3246, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
)
: M_("<unknown>")((cxx_pp)->translate_identifiers ? gettext ("<unknown>"
) : ("<unknown>"))
;
3247}
3248
3249/* Return a GC-allocated representation of type TYP, with verbosity VERBOSE.
3250
3251 If QUOTE is non-NULL and if *QUOTE is true, then quotes are added to the
3252 string in appropriate places, and *QUOTE is written to with false
3253 to suppress pp_format's trailing close quote so that e.g.
3254 foo_typedef {aka underlying_foo} {enum}
3255 can be printed by "%qT" as:
3256 `foo_typedef' {aka `underlying_foo'} {enum}
3257 rather than:
3258 `foo_typedef {aka underlying_foo} {enum}'
3259 When adding such quotes, if POSTPROCESSED is true (for handling %H and %I)
3260 then a leading open quote will be added, whereas if POSTPROCESSED is false
3261 (for handling %T) then any leading quote has already been added by
3262 pp_format, or is not needed due to QUOTE being NULL (for template arguments
3263 within %H and %I).
3264
3265 SHOW_COLOR is used to determine the colorization of any quotes that
3266 are added. */
3267
3268static const char *
3269type_to_string (tree typ, int verbose, bool postprocessed, bool *quote,
3270 bool show_color)
3271{
3272 int flags = 0;
3273 if (verbose)
3274 flags |= TFF_CLASS_KEY_OR_ENUM(1 << 3);
3275 flags |= TFF_TEMPLATE_HEADER(1 << 7);
3276
3277 reinit_cxx_pp ();
3278
3279 if (postprocessed && quote && *quote)
3280 pp_begin_quote (cxx_pp, show_color);
3281
3282 struct obstack *ob = pp_buffer (cxx_pp)(cxx_pp)->buffer->obstack;
3283 int type_start, type_len;
3284 type_start = obstack_object_size (ob)__extension__ ({ struct obstack const *__o = (ob); (size_t) (
__o->next_free - __o->object_base); })
;
3285
3286 dump_type (cxx_pp, typ, flags);
3287
3288 /* Remember the end of the initial dump. */
3289 type_len = obstack_object_size (ob)__extension__ ({ struct obstack const *__o = (ob); (size_t) (
__o->next_free - __o->object_base); })
- type_start;
3290
3291 /* If we're printing a type that involves typedefs, also print the
3292 stripped version. But sometimes the stripped version looks
3293 exactly the same, so we don't want it after all. To avoid printing
3294 it in that case, we play ugly obstack games. */
3295 if (typ && TYPE_P (typ)(tree_code_type[(int) (((enum tree_code) (typ)->base.code)
)] == tcc_type)
&& typ != TYPE_CANONICAL (typ)((tree_class_check ((typ), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3295, __FUNCTION__))->type_common.canonical)
3296 && !uses_template_parms (typ))
3297 {
3298 int aka_start, aka_len; char *p;
3299 tree aka = strip_typedefs (typ, NULL__null, STF_USER_VISIBLE);
3300 if (quote && *quote)
3301 pp_end_quote (cxx_pp, show_color);
3302 pp_string (cxx_pp, " {aka");
3303 pp_cxx_whitespace (cxx_pp)pp_c_whitespace (cxx_pp);
3304 if (quote && *quote)
3305 pp_begin_quote (cxx_pp, show_color);
3306 /* And remember the start of the aka dump. */
3307 aka_start = obstack_object_size (ob)__extension__ ({ struct obstack const *__o = (ob); (size_t) (
__o->next_free - __o->object_base); })
;
3308 dump_type (cxx_pp, aka, flags);
3309 aka_len = obstack_object_size (ob)__extension__ ({ struct obstack const *__o = (ob); (size_t) (
__o->next_free - __o->object_base); })
- aka_start;
3310 if (quote && *quote)
3311 pp_end_quote (cxx_pp, show_color);
3312 pp_right_brace (cxx_pp)pp_character (cxx_pp, '}');
3313 p = (char*)obstack_base (ob)((void *) (ob)->object_base);
3314 /* If they are identical, cut off the aka by unwinding the obstack. */
3315 if (type_len == aka_len
3316 && memcmp (p + type_start, p+aka_start, type_len) == 0)
3317 {
3318 /* We can't add a '\0' here, since we may be adding a closing quote
3319 below, and it would be hidden by the '\0'.
3320 Instead, manually unwind the current object within the obstack
3321 so that the insertion point is at the end of the type, before
3322 the "' {aka". */
3323 int delta = type_start + type_len - obstack_object_size (ob)__extension__ ({ struct obstack const *__o = (ob); (size_t) (
__o->next_free - __o->object_base); })
;
3324 gcc_assert (delta <= 0)((void)(!(delta <= 0) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3324, __FUNCTION__), 0 : 0))
;
3325 obstack_blank_fast (ob, delta)((void) ((ob)->next_free += (delta)));
3326 }
3327 else
3328 if (quote)
3329 /* No further closing quotes are needed. */
3330 *quote = false;
3331 }
3332
3333 if (quote && *quote)
3334 {
3335 pp_end_quote (cxx_pp, show_color);
3336 *quote = false;
3337 }
3338 return pp_ggc_formatted_text (cxx_pp);
3339}
3340
3341static const char *
3342args_to_string (tree p, int verbose)
3343{
3344 int flags = 0;
3345 if (verbose)
3346 flags |= TFF_CLASS_KEY_OR_ENUM(1 << 3);
3347
3348 if (p == NULL_TREE(tree) __null)
3349 return "";
3350
3351 if (TYPE_P (TREE_VALUE (p))(tree_code_type[(int) (((enum tree_code) (((tree_check ((p), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3351, __FUNCTION__, (TREE_LIST)))->list.value))->base
.code))] == tcc_type)
)
3352 return type_as_string_translate (p, flags);
3353
3354 reinit_cxx_pp ();
3355 for (; p; p = TREE_CHAIN (p)((contains_struct_check ((p), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3355, __FUNCTION__))->common.chain)
)
3356 {
3357 if (null_node_p (TREE_VALUE (p)((tree_check ((p), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3357, __FUNCTION__, (TREE_LIST)))->list.value)
))
3358 pp_cxx_ws_string (cxx_pp, "NULL")pp_c_ws_string (cxx_pp, "NULL");
3359 else
3360 dump_type (cxx_pp, error_type (TREE_VALUE (p)((tree_check ((p), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3360, __FUNCTION__, (TREE_LIST)))->list.value)
), flags);
3361 if (TREE_CHAIN (p)((contains_struct_check ((p), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3361, __FUNCTION__))->common.chain)
)
3362 pp_separate_with_comma (cxx_pp)pp_cxx_separate_with (cxx_pp, ',');
3363 }
3364 return pp_ggc_formatted_text (cxx_pp);
3365}
3366
3367/* Pretty-print a deduction substitution (from deduction_tsubst_fntype). P
3368 is a TREE_LIST with purpose the TEMPLATE_DECL, value the template
3369 arguments. */
3370
3371static const char *
3372subst_to_string (tree p)
3373{
3374 tree decl = TREE_PURPOSE (p)((tree_check ((p), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3374, __FUNCTION__, (TREE_LIST)))->list.purpose)
;
3375 tree targs = TREE_VALUE (p)((tree_check ((p), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3375, __FUNCTION__, (TREE_LIST)))->list.value)
;
3376 tree tparms = DECL_TEMPLATE_PARMS (decl)((struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((decl), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3376, __FUNCTION__, (TEMPLATE_DECL))))))))->arguments
;
3377 int flags = (TFF_DECL_SPECIFIERS(1 << 2)|TFF_TEMPLATE_HEADER(1 << 7)
3378 |TFF_NO_TEMPLATE_BINDINGS(1 << 13));
3379
3380 if (p == NULL_TREE(tree) __null)
3381 return "";
3382
3383 reinit_cxx_pp ();
3384 dump_template_decl (cxx_pp, TREE_PURPOSE (p)((tree_check ((p), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3384, __FUNCTION__, (TREE_LIST)))->list.purpose)
, flags);
3385 dump_substitution (cxx_pp, NULL__null, tparms, targs, /*flags=*/0);
3386 return pp_ggc_formatted_text (cxx_pp);
3387}
3388
3389static const char *
3390cv_to_string (tree p, int v)
3391{
3392 reinit_cxx_pp ();
3393 cxx_pp->padding = v ? pp_before : pp_none;
3394 pp_cxx_cv_qualifier_seq (cxx_pp, p)pp_c_type_qualifier_list (cxx_pp, p);
3395 return pp_ggc_formatted_text (cxx_pp);
3396}
3397
3398static const char *
3399eh_spec_to_string (tree p, int /*v*/)
3400{
3401 int flags = 0;
3402 reinit_cxx_pp ();
3403 dump_exception_spec (cxx_pp, p, flags);
3404 return pp_ggc_formatted_text (cxx_pp);
3405}
3406
3407/* Langhook for print_error_function. */
3408void
3409cxx_print_error_function (diagnostic_context *context, const char *file,
3410 diagnostic_info *diagnostic)
3411{
3412 char *prefix;
3413 if (file)
3414 prefix = xstrdup (file);
3415 else
3416 prefix = NULL__null;
3417 lhd_print_error_function (context, file, diagnostic);
3418 pp_set_prefix (context->printer, prefix);
3419 maybe_print_instantiation_context (context);
3420}
3421
3422static void
3423cp_diagnostic_starter (diagnostic_context *context,
3424 diagnostic_info *diagnostic)
3425{
3426 diagnostic_report_current_module (context, diagnostic_location (diagnostic));
3427 cp_print_error_function (context, diagnostic);
3428 maybe_print_instantiation_context (context);
3429 maybe_print_constexpr_context (context);
3430 maybe_print_constraint_context (context);
3431 pp_set_prefix (context->printer, diagnostic_build_prefix (context,
3432 diagnostic));
3433}
3434
3435/* Print current function onto BUFFER, in the process of reporting
3436 a diagnostic message. Called from cp_diagnostic_starter. */
3437static void
3438cp_print_error_function (diagnostic_context *context,
3439 diagnostic_info *diagnostic)
3440{
3441 /* If we are in an instantiation context, current_function_decl is likely
3442 to be wrong, so just rely on print_instantiation_full_context. */
3443 if (current_instantiation ())
3444 return;
3445 /* The above is true for constraint satisfaction also. */
3446 if (current_failed_constraint)
3447 return;
3448 if (diagnostic_last_function_changed (context, diagnostic)(((tree) (context)->x_data) != (((tree) (diagnostic)->x_data
) ? ((tree) (diagnostic)->x_data) : current_function_decl)
)
)
3449 {
3450 char *old_prefix = pp_take_prefix (context->printer);
3451 const char *file = LOCATION_FILE (diagnostic_location (diagnostic))((expand_location (diagnostic_location (diagnostic))).file);
3452 tree abstract_origin = diagnostic_abstract_origin (diagnostic)((tree) (diagnostic)->x_data);
3453 char *new_prefix = (file && abstract_origin == NULL__null)
3454 ? file_name_as_prefix (context, file) : NULL__null;
3455
3456 pp_set_prefix (context->printer, new_prefix);
3457
3458 if (current_function_decl == NULL__null)
3459 pp_string (context->printer, _("At global scope:")gettext ("At global scope:"));
3460 else
3461 {
3462 tree fndecl, ao;
3463
3464 if (abstract_origin)
3465 {
3466 ao = BLOCK_ABSTRACT_ORIGIN (abstract_origin)((tree_check ((abstract_origin), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3466, __FUNCTION__, (BLOCK)))->block.abstract_origin)
;
3467 gcc_assert (TREE_CODE (ao) == FUNCTION_DECL)((void)(!(((enum tree_code) (ao)->base.code) == FUNCTION_DECL
) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3467, __FUNCTION__), 0 : 0))
;
3468 fndecl = ao;
3469 }
3470 else
3471 fndecl = current_function_decl;
3472
3473 pp_printf (context->printer, function_category (fndecl),
3474 cxx_printable_name_translate (fndecl, 2));
3475
3476 while (abstract_origin)
3477 {
3478 location_t *locus;
3479 tree block = abstract_origin;
3480
3481 locus = &BLOCK_SOURCE_LOCATION (block)((tree_check ((block), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3481, __FUNCTION__, (BLOCK)))->block.locus)
;
3482 fndecl = NULL__null;
3483 block = BLOCK_SUPERCONTEXT (block)((tree_check ((block), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3483, __FUNCTION__, (BLOCK)))->block.supercontext)
;
3484 while (block && TREE_CODE (block)((enum tree_code) (block)->base.code) == BLOCK
3485 && BLOCK_ABSTRACT_ORIGIN (block)((tree_check ((block), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3485, __FUNCTION__, (BLOCK)))->block.abstract_origin)
)
3486 {
3487 ao = BLOCK_ABSTRACT_ORIGIN (block)((tree_check ((block), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3487, __FUNCTION__, (BLOCK)))->block.abstract_origin)
;
3488 if (TREE_CODE (ao)((enum tree_code) (ao)->base.code) == FUNCTION_DECL)
3489 {
3490 fndecl = ao;
3491 break;
3492 }
3493 else if (TREE_CODE (ao)((enum tree_code) (ao)->base.code) != BLOCK)
3494 break;
3495
3496 block = BLOCK_SUPERCONTEXT (block)((tree_check ((block), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3496, __FUNCTION__, (BLOCK)))->block.supercontext)
;
3497 }
3498 if (fndecl)
3499 abstract_origin = block;
3500 else
3501 {
3502 while (block && TREE_CODE (block)((enum tree_code) (block)->base.code) == BLOCK)
3503 block = BLOCK_SUPERCONTEXT (block)((tree_check ((block), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3503, __FUNCTION__, (BLOCK)))->block.supercontext)
;
3504
3505 if (block && TREE_CODE (block)((enum tree_code) (block)->base.code) == FUNCTION_DECL)
3506 fndecl = block;
3507 abstract_origin = NULL__null;
3508 }
3509 if (fndecl)
3510 {
3511 expanded_location s = expand_location (*locus);
3512 pp_character (context->printer, ',');
3513 pp_newline (context->printer);
3514 if (s.file != NULL__null)
3515 {
3516 if (context->show_column && s.column != 0)
3517 pp_printf (context->printer,
3518 _(" inlined from %qs at %r%s:%d:%d%R")gettext (" inlined from %qs at %r%s:%d:%d%R"),
3519 cxx_printable_name_translate (fndecl, 2),
3520 "locus", s.file, s.line, s.column);
3521 else
3522 pp_printf (context->printer,
3523 _(" inlined from %qs at %r%s:%d%R")gettext (" inlined from %qs at %r%s:%d%R"),
3524 cxx_printable_name_translate (fndecl, 2),
3525 "locus", s.file, s.line);
3526
3527 }
3528 else
3529 pp_printf (context->printer, _(" inlined from %qs")gettext (" inlined from %qs"),
3530 cxx_printable_name_translate (fndecl, 2));
3531 }
3532 }
3533 pp_character (context->printer, ':');
3534 }
3535 pp_newline (context->printer);
3536
3537 diagnostic_set_last_function (context, diagnostic)(context)->x_data = (((diagnostic) && ((tree) (diagnostic
)->x_data)) ? ((tree) (diagnostic)->x_data) : current_function_decl
)
;
3538 pp_destroy_prefix (context->printer);
3539 context->printer->prefix = old_prefix;
3540 }
3541}
3542
3543/* Returns a description of FUNCTION using standard terminology. The
3544 result is a format string of the form "In CATEGORY %qs". */
3545static const char *
3546function_category (tree fn)
3547{
3548 /* We can get called from the middle-end for diagnostics of function
3549 clones. Make sure we have language specific information before
3550 dereferencing it. */
3551 if (DECL_LANG_SPECIFIC (STRIP_TEMPLATE (fn))((contains_struct_check (((((enum tree_code) (fn)->base.code
) == TEMPLATE_DECL ? ((struct tree_template_decl *)(const_cast
<union tree_node *> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3551, __FUNCTION__, (TEMPLATE_DECL))))))))->result : fn)
), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3551, __FUNCTION__))->decl_common.lang_specific)
3552 && DECL_FUNCTION_MEMBER_P (fn)((((enum tree_code) (((contains_struct_check ((fn), (TS_TYPED
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3552, __FUNCTION__))->typed.type))->base.code) == METHOD_TYPE
) || (__extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (fn)->base.code) == TEMPLATE_DECL ? (
(struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3552, __FUNCTION__, (TEMPLATE_DECL))))))))->result : fn)
), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3552, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (fn)->base.code) == FUNCTION_DECL || (((
enum tree_code) (fn)->base.code) == TEMPLATE_DECL &&
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3552, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((fn),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3552, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3552, __FUNCTION__); &lt->u.fn; })->static_function
))
)
3553 {
3554 if (DECL_STATIC_FUNCTION_P (fn)(__extension__ ({ struct lang_decl *lt = ((contains_struct_check
(((((enum tree_code) (fn)->base.code) == TEMPLATE_DECL ? (
(struct tree_template_decl *)(const_cast<union tree_node *
> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3554, __FUNCTION__, (TEMPLATE_DECL))))))))->result : fn)
), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3554, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (fn)->base.code) == FUNCTION_DECL || (((
enum tree_code) (fn)->base.code) == TEMPLATE_DECL &&
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3554, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((fn),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3554, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3554, __FUNCTION__); &lt->u.fn; })->static_function
)
)
3555 return _("In static member function %qs")gettext ("In static member function %qs");
3556 else if (DECL_COPY_CONSTRUCTOR_P (fn)(((tree_check (((((enum tree_code) (fn)->base.code) == TEMPLATE_DECL
? ((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3556, __FUNCTION__, (TEMPLATE_DECL))))))))->result : fn)
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3556, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_constructor
) && copy_fn_p (fn) > 0)
)
3557 return _("In copy constructor %qs")gettext ("In copy constructor %qs");
3558 else if (DECL_CONSTRUCTOR_P (fn)((tree_check (((((enum tree_code) (fn)->base.code) == TEMPLATE_DECL
? ((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3558, __FUNCTION__, (TEMPLATE_DECL))))))))->result : fn)
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3558, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_constructor
)
)
3559 return _("In constructor %qs")gettext ("In constructor %qs");
3560 else if (DECL_DESTRUCTOR_P (fn)((tree_check (((((enum tree_code) (fn)->base.code) == TEMPLATE_DECL
? ((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3560, __FUNCTION__, (TEMPLATE_DECL))))))))->result : fn)
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3560, __FUNCTION__, (FUNCTION_DECL)))->decl_with_vis.cxx_destructor
)
)
3561 return _("In destructor %qs")gettext ("In destructor %qs");
3562 else if (LAMBDA_FUNCTION_P (fn)((((enum tree_code) (fn)->base.code) == FUNCTION_DECL || (
((enum tree_code) (fn)->base.code) == TEMPLATE_DECL &&
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((fn),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) && (((tree_not_check2 (
((tree_check ((((contains_struct_check ((fn), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__, (IDENTIFIER_NODE)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__, (TREE_VEC), (SSA_NAME)))->base.u.bits
.lang_flag_2)) && ((__extension__ ({ struct lang_decl
*lt = ((contains_struct_check (((((enum tree_code) (fn)->
base.code) == TEMPLATE_DECL ? ((struct tree_template_decl *)(
const_cast<union tree_node *> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__, (TEMPLATE_DECL))))))))->result : fn)
), (TS_DECL_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_common.lang_specific); if (!(
((enum tree_code) (fn)->base.code) == FUNCTION_DECL || (((
enum tree_code) (fn)->base.code) == TEMPLATE_DECL &&
((struct tree_template_decl *)(const_cast<union tree_node
*> ((((tree_check ((fn), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__, (TEMPLATE_DECL))))))))->result != (tree
) __null && ((enum tree_code) (((struct tree_template_decl
*)(const_cast<union tree_node *> ((((tree_check ((fn),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__, (TEMPLATE_DECL))))))))->result)->
base.code) == FUNCTION_DECL)) || lt->u.base.selector != lds_fn
) lang_check_failed ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__); &lt->u.fn; })->ovl_op_code) ==
OVL_OP_CALL_EXPR) && (((enum tree_code) ((!(! (((contains_struct_check
((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL]))->base.code) == RECORD_TYPE && ((((
tree_class_check ((((tree_class_check (((!(! (((contains_struct_check
((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
(((!(! (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check (((!(! (((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check (((!(! (((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.name))) && ((tree_check
((((((tree_class_check ((((tree_class_check (((!(! (((contains_struct_check
((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.name) && (tree_code_type
[(int) (((enum tree_code) (((tree_class_check ((((tree_class_check
(((!(! (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.name))->base.code))
] == tcc_declaration) ? ((contains_struct_check ((((tree_class_check
((((tree_class_check (((!(! (((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.name)), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.name) : ((tree_class_check
((((tree_class_check (((!(! (((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context)) || ((enum tree_code
) (((contains_struct_check ((fn), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context))->base.code
) == TRANSLATION_UNIT_DECL) ? ((contains_struct_check ((fn), (
TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->decl_minimal.context) : cp_global_trees
[CPTI_GLOBAL])), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.main_variant)), (tcc_type
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__))->type_common.name)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3562, __FUNCTION__, (IDENTIFIER_NODE)))->base.protected_flag
)))
)
3563 return _("In lambda function")gettext ("In lambda function");
3564 else
3565 return _("In member function %qs")gettext ("In member function %qs");
3566 }
3567 else
3568 return _("In function %qs")gettext ("In function %qs");
3569}
3570
3571/* Disable warnings about missing quoting in GCC diagnostics for
3572 the pp_verbatim calls. Their format strings deliberately don't
3573 follow GCC diagnostic conventions. */
3574#if __GNUC__4 >= 10
3575# pragma GCC diagnostic push
3576# pragma GCC diagnostic ignored "-Wformat-diag"
3577#endif
3578
3579/* Report the full context of a current template instantiation,
3580 onto BUFFER. */
3581static void
3582print_instantiation_full_context (diagnostic_context *context)
3583{
3584 struct tinst_level *p = current_instantiation ();
3585 location_t location = input_location;
3586
3587 if (p)
3588 {
3589 pp_verbatim (context->printer,
3590 p->list_p ()
3591 ? _("%s: In substitution of %qS:\n")gettext ("%s: In substitution of %qS:\n")
3592 : _("%s: In instantiation of %q#D:\n")gettext ("%s: In instantiation of %q#D:\n"),
3593 LOCATION_FILE (location)((expand_location (location)).file),
3594 p->get_node ());
3595
3596 location = p->locus;
3597 p = p->next;
3598 }
3599
3600 print_instantiation_partial_context (context, p, location);
3601}
3602
3603/* Helper function of print_instantiation_partial_context() that
3604 prints a single line of instantiation context. */
3605
3606static void
3607print_instantiation_partial_context_line (diagnostic_context *context,
3608 struct tinst_level *t,
3609 location_t loc, bool recursive_p)
3610{
3611 if (loc == UNKNOWN_LOCATION((location_t) 0))
3612 return;
3613
3614 expanded_location xloc = expand_location (loc);
3615
3616 if (context->show_column)
3617 pp_verbatim (context->printer, _("%r%s:%d:%d:%R ")gettext ("%r%s:%d:%d:%R "),
3618 "locus", xloc.file, xloc.line, xloc.column);
3619 else
3620 pp_verbatim (context->printer, _("%r%s:%d:%R ")gettext ("%r%s:%d:%R "),
3621 "locus", xloc.file, xloc.line);
3622
3623 if (t != NULL__null)
3624 {
3625 if (t->list_p ())
3626 pp_verbatim (context->printer,
3627 recursive_p
3628 ? _("recursively required by substitution of %qS\n")gettext ("recursively required by substitution of %qS\n")
3629 : _("required by substitution of %qS\n")gettext ("required by substitution of %qS\n"),
3630 t->get_node ());
3631 else
3632 pp_verbatim (context->printer,
3633 recursive_p
3634 ? _("recursively required from %q#D\n")gettext ("recursively required from %q#D\n")
3635 : _("required from %q#D\n")gettext ("required from %q#D\n"),
3636 t->get_node ());
3637 }
3638 else
3639 {
3640 pp_verbatim (context->printer,
3641 recursive_p
3642 ? _("recursively required from here\n")gettext ("recursively required from here\n")
3643 : _("required from here\n")gettext ("required from here\n"));
3644 }
3645}
3646
3647/* Same as print_instantiation_full_context but less verbose. */
3648
3649static void
3650print_instantiation_partial_context (diagnostic_context *context,
3651 struct tinst_level *t0, location_t loc)
3652{
3653 struct tinst_level *t;
3654 int n_total = 0;
3655 int n;
3656 location_t prev_loc = loc;
3657
3658 for (t = t0; t != NULL__null; t = t->next)
3659 if (prev_loc != t->locus)
3660 {
3661 prev_loc = t->locus;
3662 n_total++;
3663 }
3664
3665 t = t0;
3666
3667 if (template_backtrace_limitglobal_options.x_template_backtrace_limit
3668 && n_total > template_backtrace_limitglobal_options.x_template_backtrace_limit)
3669 {
3670 int skip = n_total - template_backtrace_limitglobal_options.x_template_backtrace_limit;
3671 int head = template_backtrace_limitglobal_options.x_template_backtrace_limit / 2;
3672
3673 /* Avoid skipping just 1. If so, skip 2. */
3674 if (skip == 1)
3675 {
3676 skip = 2;
3677 head = (template_backtrace_limitglobal_options.x_template_backtrace_limit - 1) / 2;
3678 }
3679
3680 for (n = 0; n < head; n++)
3681 {
3682 gcc_assert (t != NULL)((void)(!(t != __null) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3682, __FUNCTION__), 0 : 0))
;
3683 if (loc != t->locus)
3684 print_instantiation_partial_context_line (context, t, loc,
3685 /*recursive_p=*/false);
3686 loc = t->locus;
3687 t = t->next;
3688 }
3689 if (t != NULL__null && skip > 0)
3690 {
3691 expanded_location xloc;
3692 xloc = expand_location (loc);
3693 if (context->show_column)
3694 pp_verbatim (context->printer,
3695 _("%r%s:%d:%d:%R [ skipping %d instantiation "gettext ("%r%s:%d:%d:%R [ skipping %d instantiation " "contexts, use -ftemplate-backtrace-limit=0 to "
"disable ]\n")
3696 "contexts, use -ftemplate-backtrace-limit=0 to "gettext ("%r%s:%d:%d:%R [ skipping %d instantiation " "contexts, use -ftemplate-backtrace-limit=0 to "
"disable ]\n")
3697 "disable ]\n")gettext ("%r%s:%d:%d:%R [ skipping %d instantiation " "contexts, use -ftemplate-backtrace-limit=0 to "
"disable ]\n")
,
3698 "locus", xloc.file, xloc.line, xloc.column, skip);
3699 else
3700 pp_verbatim (context->printer,
3701 _("%r%s:%d:%R [ skipping %d instantiation "gettext ("%r%s:%d:%R [ skipping %d instantiation " "contexts, use -ftemplate-backtrace-limit=0 to "
"disable ]\n")
3702 "contexts, use -ftemplate-backtrace-limit=0 to "gettext ("%r%s:%d:%R [ skipping %d instantiation " "contexts, use -ftemplate-backtrace-limit=0 to "
"disable ]\n")
3703 "disable ]\n")gettext ("%r%s:%d:%R [ skipping %d instantiation " "contexts, use -ftemplate-backtrace-limit=0 to "
"disable ]\n")
,
3704 "locus", xloc.file, xloc.line, skip);
3705
3706 do {
3707 loc = t->locus;
3708 t = t->next;
3709 } while (t != NULL__null && --skip > 0);
3710 }
3711 }
3712
3713 while (t != NULL__null)
3714 {
3715 while (t->next != NULL__null && t->locus == t->next->locus)
3716 {
3717 loc = t->locus;
3718 t = t->next;
3719 }
3720 print_instantiation_partial_context_line (context, t, loc,
3721 t->locus == loc);
3722 loc = t->locus;
3723 t = t->next;
3724 }
3725 print_instantiation_partial_context_line (context, NULL__null, loc,
3726 /*recursive_p=*/false);
3727}
3728
3729/* Called from cp_thing to print the template context for an error. */
3730static void
3731maybe_print_instantiation_context (diagnostic_context *context)
3732{
3733 if (!problematic_instantiation_changed () || current_instantiation () == 0)
3734 return;
3735
3736 record_last_problematic_instantiation ();
3737 print_instantiation_full_context (context);
3738}
3739
3740/* Report what constexpr call(s) we're trying to expand, if any. */
3741
3742void
3743maybe_print_constexpr_context (diagnostic_context *context)
3744{
3745 vec<tree> call_stack = cx_error_context ();
3746 unsigned ix;
3747 tree t;
3748
3749 FOR_EACH_VEC_ELT (call_stack, ix, t)for (ix = 0; (call_stack).iterate ((ix), &(t)); ++(ix))
3750 {
3751 expanded_location xloc = expand_location (EXPR_LOCATION (t)((((t)) && ((tree_code_type[(int) (((enum tree_code) (
(t))->base.code))]) >= tcc_reference && (tree_code_type
[(int) (((enum tree_code) ((t))->base.code))]) <= tcc_expression
)) ? (t)->exp.locus : ((location_t) 0))
);
3752 const char *s = expr_as_string (t, 0);
3753 if (context->show_column)
3754 pp_verbatim (context->printer,
3755 _("%r%s:%d:%d:%R in %<constexpr%> expansion of %qs")gettext ("%r%s:%d:%d:%R in %<constexpr%> expansion of %qs"
)
,
3756 "locus", xloc.file, xloc.line, xloc.column, s);
3757 else
3758 pp_verbatim (context->printer,
3759 _("%r%s:%d:%R in %<constexpr%> expansion of %qs")gettext ("%r%s:%d:%R in %<constexpr%> expansion of %qs"
)
,
3760 "locus", xloc.file, xloc.line, s);
3761 pp_newline (context->printer);
3762 }
3763}
3764
3765
3766static void
3767print_location (diagnostic_context *context, location_t loc)
3768{
3769 expanded_location xloc = expand_location (loc);
3770 if (context->show_column)
3771 pp_verbatim (context->printer, _("%r%s:%d:%d:%R ")gettext ("%r%s:%d:%d:%R "),
3772 "locus", xloc.file, xloc.line, xloc.column);
3773 else
3774 pp_verbatim (context->printer, _("%r%s:%d:%R ")gettext ("%r%s:%d:%R "),
3775 "locus", xloc.file, xloc.line);
3776}
3777
3778static void
3779print_constrained_decl_info (diagnostic_context *context, tree decl)
3780{
3781 print_location (context, DECL_SOURCE_LOCATION (decl)((contains_struct_check ((decl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3781, __FUNCTION__))->decl_minimal.locus)
);
3782 pp_verbatim (context->printer, "required by the constraints of %q#D\n", decl);
3783}
3784
3785static void
3786print_concept_check_info (diagnostic_context *context, tree expr, tree map, tree args)
3787{
3788 gcc_assert (concept_check_p (expr))((void)(!(concept_check_p (expr)) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3788, __FUNCTION__), 0 : 0))
;
3789
3790 tree id = unpack_concept_check (expr);
3791 tree tmpl = TREE_OPERAND (id, 0)(*((const_cast<tree*> (tree_operand_check ((id), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3791, __FUNCTION__)))))
;
3792 if (OVL_P (tmpl)(((enum tree_code) (tmpl)->base.code) == FUNCTION_DECL || (
(enum tree_code) (tmpl)->base.code) == OVERLOAD)
)
3793 tmpl = OVL_FIRST (tmpl)ovl_first (tmpl);
3794
3795 print_location (context, DECL_SOURCE_LOCATION (tmpl)((contains_struct_check ((tmpl), (TS_DECL_MINIMAL), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3795, __FUNCTION__))->decl_minimal.locus)
);
3796
3797 cxx_pretty_printer *pp = (cxx_pretty_printer *)context->printer;
3798 pp_verbatim (pp, "required for the satisfaction of %qE", expr);
3799 if (map && map != error_mark_nodeglobal_trees[TI_ERROR_MARK])
3800 {
3801 tree subst_map = tsubst_parameter_mapping (map, args, tf_none, NULL_TREE(tree) __null);
3802 pp_cxx_parameter_mapping (pp, (subst_map != error_mark_nodeglobal_trees[TI_ERROR_MARK]
3803 ? subst_map : map));
3804 }
3805 pp_newline (pp);
3806}
3807
3808/* Diagnose the entry point into the satisfaction error. Returns the next
3809 context, if any. */
3810
3811static tree
3812print_constraint_context_head (diagnostic_context *context, tree cxt, tree args)
3813{
3814 tree src = TREE_VALUE (cxt)((tree_check ((cxt), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3814, __FUNCTION__, (TREE_LIST)))->list.value)
;
3815 if (!src)
3816 {
3817 print_location (context, input_location);
3818 pp_verbatim (context->printer, "required for constraint satisfaction\n");
3819 return NULL_TREE(tree) __null;
3820 }
3821 if (DECL_P (src)(tree_code_type[(int) (((enum tree_code) (src)->base.code)
)] == tcc_declaration)
)
3822 {
3823 print_constrained_decl_info (context, src);
3824 return NULL_TREE(tree) __null;
3825 }
3826 else
3827 {
3828 print_concept_check_info (context, src, TREE_PURPOSE (cxt)((tree_check ((cxt), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3828, __FUNCTION__, (TREE_LIST)))->list.purpose)
, args);
3829 return TREE_CHAIN (cxt)((contains_struct_check ((cxt), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3829, __FUNCTION__))->common.chain)
;
3830 }
3831}
3832
3833static void
3834print_requires_expression_info (diagnostic_context *context, tree constr, tree args)
3835{
3836
3837 tree expr = ATOMIC_CONSTR_EXPR (constr)((tree_check ((((contains_struct_check (((tree_check3 (((tree_check
((constr), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3837, __FUNCTION__, (ATOMIC_CONSTR)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3837, __FUNCTION__, (ATOMIC_CONSTR), (CONJ_CONSTR), (DISJ_CONSTR
)))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3837, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3837, __FUNCTION__, (TREE_LIST)))->list.purpose)
;
3838 tree map = ATOMIC_CONSTR_MAP (constr)(*((const_cast<tree*> (tree_operand_check (((tree_check
((constr), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3838, __FUNCTION__, (ATOMIC_CONSTR)))), (0), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3838, __FUNCTION__)))))
;
3839 map = tsubst_parameter_mapping (map, args, tf_none, NULL_TREE(tree) __null);
3840 if (map == error_mark_nodeglobal_trees[TI_ERROR_MARK])
3841 return;
3842
3843 print_location (context, cp_expr_loc_or_input_loc (expr));
3844 pp_verbatim (context->printer, "in requirements ");
3845
3846 tree parms = TREE_OPERAND (expr, 0)(*((const_cast<tree*> (tree_operand_check ((expr), (0),
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3846, __FUNCTION__)))))
;
3847 if (parms)
3848 pp_verbatim (context->printer, "with ");
3849 while (parms)
3850 {
3851 pp_verbatim (context->printer, "%q#D", parms);
3852 if (TREE_CHAIN (parms)((contains_struct_check ((parms), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3852, __FUNCTION__))->common.chain)
)
3853 pp_separate_with_comma ((cxx_pretty_printer *)context->printer)pp_cxx_separate_with ((cxx_pretty_printer *)context->printer
, ',')
;
3854 parms = TREE_CHAIN (parms)((contains_struct_check ((parms), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3854, __FUNCTION__))->common.chain)
;
3855 }
3856 pp_cxx_parameter_mapping ((cxx_pretty_printer *)context->printer, map);
3857
3858 pp_verbatim (context->printer, "\n");
3859}
3860
3861void
3862maybe_print_single_constraint_context (diagnostic_context *context, tree failed)
3863{
3864 if (!failed)
3865 return;
3866
3867 tree constr = TREE_VALUE (failed)((tree_check ((failed), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3867, __FUNCTION__, (TREE_LIST)))->list.value)
;
3868 if (!constr || constr == error_mark_nodeglobal_trees[TI_ERROR_MARK])
3869 return;
3870 tree cxt = CONSTR_CONTEXT (constr)((tree_check ((((contains_struct_check (((tree_check3 ((constr
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3870, __FUNCTION__, (ATOMIC_CONSTR), (CONJ_CONSTR), (DISJ_CONSTR
)))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3870, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3870, __FUNCTION__, (TREE_LIST)))->list.value)
;
3871 if (!cxt)
3872 return;
3873 tree args = TREE_PURPOSE (failed)((tree_check ((failed), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3873, __FUNCTION__, (TREE_LIST)))->list.purpose)
;
3874
3875 /* Print the stack of requirements. */
3876 cxt = print_constraint_context_head (context, cxt, args);
3877 while (cxt && !DECL_P (TREE_VALUE (cxt))(tree_code_type[(int) (((enum tree_code) (((tree_check ((cxt)
, "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3877, __FUNCTION__, (TREE_LIST)))->list.value))->base
.code))] == tcc_declaration)
)
3878 {
3879 tree expr = TREE_VALUE (cxt)((tree_check ((cxt), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3879, __FUNCTION__, (TREE_LIST)))->list.value)
;
3880 tree map = TREE_PURPOSE (cxt)((tree_check ((cxt), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3880, __FUNCTION__, (TREE_LIST)))->list.purpose)
;
3881 print_concept_check_info (context, expr, map, args);
3882 cxt = TREE_CHAIN (cxt)((contains_struct_check ((cxt), (TS_COMMON), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3882, __FUNCTION__))->common.chain)
;
3883 }
3884
3885 /* For certain constraints, we can provide additional context. */
3886 if (TREE_CODE (constr)((enum tree_code) (constr)->base.code) == ATOMIC_CONSTR
3887 && TREE_CODE (ATOMIC_CONSTR_EXPR (constr))((enum tree_code) (((tree_check ((((contains_struct_check (((
tree_check3 (((tree_check ((constr), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3887, __FUNCTION__, (ATOMIC_CONSTR)))), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3887, __FUNCTION__, (ATOMIC_CONSTR), (CONJ_CONSTR), (DISJ_CONSTR
)))), (TS_TYPED), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3887, __FUNCTION__))->typed.type)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3887, __FUNCTION__, (TREE_LIST)))->list.purpose))->base
.code)
== REQUIRES_EXPR)
3888 print_requires_expression_info (context, constr, args);
3889}
3890
3891void
3892maybe_print_constraint_context (diagnostic_context *context)
3893{
3894 if (!current_failed_constraint)
3895 return;
3896
3897 tree cur = current_failed_constraint;
3898
3899 /* Recursively print nested contexts. */
3900 current_failed_constraint = TREE_CHAIN (current_failed_constraint)((contains_struct_check ((current_failed_constraint), (TS_COMMON
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3900, __FUNCTION__))->common.chain)
;
3901 if (current_failed_constraint)
3902 maybe_print_constraint_context (context);
3903
3904 /* Print this context. */
3905 maybe_print_single_constraint_context (context, cur);
3906}
3907
3908/* Return true iff TYPE_A and TYPE_B are template types that are
3909 meaningful to compare. */
3910
3911static bool
3912comparable_template_types_p (tree type_a, tree type_b)
3913{
3914 if (!CLASS_TYPE_P (type_a)(((((enum tree_code) (type_a)->base.code)) == RECORD_TYPE ||
(((enum tree_code) (type_a)->base.code)) == UNION_TYPE) &&
((tree_class_check ((type_a), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3914, __FUNCTION__))->type_common.lang_flag_5))
)
3915 return false;
3916 if (!CLASS_TYPE_P (type_b)(((((enum tree_code) (type_b)->base.code)) == RECORD_TYPE ||
(((enum tree_code) (type_b)->base.code)) == UNION_TYPE) &&
((tree_class_check ((type_b), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3916, __FUNCTION__))->type_common.lang_flag_5))
)
3917 return false;
3918
3919 tree tinfo_a = TYPE_TEMPLATE_INFO (type_a)(((enum tree_code) (type_a)->base.code) == ENUMERAL_TYPE ||
((enum tree_code) (type_a)->base.code) == BOUND_TEMPLATE_TEMPLATE_PARM
|| (((enum tree_code) (type_a)->base.code) == RECORD_TYPE
|| ((enum tree_code) (type_a)->base.code) == UNION_TYPE ||
((enum tree_code) (type_a)->base.code) == QUAL_UNION_TYPE
) ? ((tree_class_check ((type_a), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3919, __FUNCTION__))->type_non_common.lang_1) : (tree) __null
)
;
3920 tree tinfo_b = TYPE_TEMPLATE_INFO (type_b)(((enum tree_code) (type_b)->base.code) == ENUMERAL_TYPE ||
((enum tree_code) (type_b)->base.code) == BOUND_TEMPLATE_TEMPLATE_PARM
|| (((enum tree_code) (type_b)->base.code) == RECORD_TYPE
|| ((enum tree_code) (type_b)->base.code) == UNION_TYPE ||
((enum tree_code) (type_b)->base.code) == QUAL_UNION_TYPE
) ? ((tree_class_check ((type_b), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3920, __FUNCTION__))->type_non_common.lang_1) : (tree) __null
)
;
3921 if (!tinfo_a || !tinfo_b)
3922 return false;
3923
3924 return TI_TEMPLATE (tinfo_a)((struct tree_template_info*)(tree_check ((tinfo_a), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3924, __FUNCTION__, (TEMPLATE_INFO))))->tmpl
== TI_TEMPLATE (tinfo_b)((struct tree_template_info*)(tree_check ((tinfo_b), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 3924, __FUNCTION__, (TEMPLATE_INFO))))->tmpl
;
3925}
3926
3927/* Start a new line indented by SPC spaces on PP. */
3928
3929static void
3930newline_and_indent (pretty_printer *pp, int spc)
3931{
3932 pp_newline (pp);
3933 for (int i = 0; i < spc; i++)
3934 pp_space (pp)pp_character (pp, ' ');
3935}
3936
3937/* Generate a GC-allocated string for ARG, an expression or type. */
3938
3939static const char *
3940arg_to_string (tree arg, bool verbose)
3941{
3942 if (TYPE_P (arg)(tree_code_type[(int) (((enum tree_code) (arg)->base.code)
)] == tcc_type)
)
3943 return type_to_string (arg, verbose, true, NULL__null, false);
3944 else
3945 return expr_to_string (arg);
3946}
3947
3948/* Subroutine to type_to_string_with_compare and
3949 print_template_tree_comparison.
3950
3951 Print a representation of ARG (an expression or type) to PP,
3952 colorizing it as "type-diff" if PP->show_color. */
3953
3954static void
3955print_nonequal_arg (pretty_printer *pp, tree arg, bool verbose)
3956{
3957 pp_printf (pp, "%r%s%R",
3958 "type-diff",
3959 (arg
3960 ? arg_to_string (arg, verbose)
3961 : G_("(no argument)")"(no argument)"));
3962}
3963
3964/* Recursively print template TYPE_A to PP, as compared to template TYPE_B.
3965
3966 The types must satisfy comparable_template_types_p.
3967
3968 If INDENT is 0, then this is equivalent to type_to_string (TYPE_A), but
3969 potentially colorizing/eliding in comparison with TYPE_B.
3970
3971 For example given types:
3972 vector<map<int,double>>
3973 and
3974 vector<map<int,float>>
3975 then the result on PP would be:
3976 vector<map<[...],double>>
3977 with type elision, and:
3978 vector<map<int,double>>
3979 without type elision.
3980
3981 In both cases the parts of TYPE that differ from PEER will be colorized
3982 if pp_show_color (pp) is true. In the above example, this would be
3983 "double".
3984
3985 If INDENT is non-zero, then the types are printed in a tree-like form
3986 which shows both types. In the above example, the result on PP would be:
3987
3988 vector<
3989 map<
3990 [...],
3991 [double != float]>>
3992
3993 and without type-elision would be:
3994
3995 vector<
3996 map<
3997 int,
3998 [double != float]>>
3999
4000 As before, the differing parts of the types are colorized if
4001 pp_show_color (pp) is true ("double" and "float" in this example).
4002
4003 Template arguments in which both types are using the default arguments
4004 are not printed; if at least one of the two types is using a non-default
4005 argument, then that argument is printed (or both arguments for the
4006 tree-like print format). */
4007
4008static void
4009print_template_differences (pretty_printer *pp, tree type_a, tree type_b,
4010 bool verbose, int indent)
4011{
4012 if (indent)
4013 newline_and_indent (pp, indent);
4014
4015 tree tinfo_a = TYPE_TEMPLATE_INFO (type_a)(((enum tree_code) (type_a)->base.code) == ENUMERAL_TYPE ||
((enum tree_code) (type_a)->base.code) == BOUND_TEMPLATE_TEMPLATE_PARM
|| (((enum tree_code) (type_a)->base.code) == RECORD_TYPE
|| ((enum tree_code) (type_a)->base.code) == UNION_TYPE ||
((enum tree_code) (type_a)->base.code) == QUAL_UNION_TYPE
) ? ((tree_class_check ((type_a), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4015, __FUNCTION__))->type_non_common.lang_1) : (tree) __null
)
;
4016 tree tinfo_b = TYPE_TEMPLATE_INFO (type_b)(((enum tree_code) (type_b)->base.code) == ENUMERAL_TYPE ||
((enum tree_code) (type_b)->base.code) == BOUND_TEMPLATE_TEMPLATE_PARM
|| (((enum tree_code) (type_b)->base.code) == RECORD_TYPE
|| ((enum tree_code) (type_b)->base.code) == UNION_TYPE ||
((enum tree_code) (type_b)->base.code) == QUAL_UNION_TYPE
) ? ((tree_class_check ((type_b), (tcc_type), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4016, __FUNCTION__))->type_non_common.lang_1) : (tree) __null
)
;
4017
4018 pp_printf (pp, "%s<",
4019 IDENTIFIER_POINTER (DECL_NAME (TI_TEMPLATE (tinfo_a)))((const char *) (tree_check ((((contains_struct_check ((((struct
tree_template_info*)(tree_check ((tinfo_a), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4019, __FUNCTION__, (TEMPLATE_INFO))))->tmpl), (TS_DECL_MINIMAL
), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4019, __FUNCTION__))->decl_minimal.name)), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4019, __FUNCTION__, (IDENTIFIER_NODE)))->identifier.id.str
)
);
4020
4021 tree args_a = TI_ARGS (tinfo_a)((struct tree_template_info*)(tree_check ((tinfo_a), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4021, __FUNCTION__, (TEMPLATE_INFO))))->args
;
4022 tree args_b = TI_ARGS (tinfo_b)((struct tree_template_info*)(tree_check ((tinfo_b), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4022, __FUNCTION__, (TEMPLATE_INFO))))->args
;
4023 gcc_assert (TREE_CODE (args_a) == TREE_VEC)((void)(!(((enum tree_code) (args_a)->base.code) == TREE_VEC
) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4023, __FUNCTION__), 0 : 0))
;
4024 gcc_assert (TREE_CODE (args_b) == TREE_VEC)((void)(!(((enum tree_code) (args_b)->base.code) == TREE_VEC
) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4024, __FUNCTION__), 0 : 0))
;
4025 int flags = 0;
4026 int len_a = get_non_default_template_args_count (args_a, flags);
4027 args_a = INNERMOST_TEMPLATE_ARGS (args_a)(get_innermost_template_args ((args_a), 1));
4028 int len_b = get_non_default_template_args_count (args_b, flags);
4029 args_b = INNERMOST_TEMPLATE_ARGS (args_b)(get_innermost_template_args ((args_b), 1));
4030 /* Determine the maximum range of args for which non-default template args
4031 were used; beyond this, only default args (if any) were used, and so
4032 they will be equal from this point onwards.
4033 One of the two peers might have used default arguments within this
4034 range, but the other will be using non-default arguments, and so
4035 it's more readable to print both within this range, to highlight
4036 the differences. */
4037 int len_max = MAX (len_a, len_b)((len_a) > (len_b) ? (len_a) : (len_b));
4038 gcc_assert (TREE_CODE (args_a) == TREE_VEC)((void)(!(((enum tree_code) (args_a)->base.code) == TREE_VEC
) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4038, __FUNCTION__), 0 : 0))
;
4039 gcc_assert (TREE_CODE (args_b) == TREE_VEC)((void)(!(((enum tree_code) (args_b)->base.code) == TREE_VEC
) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4039, __FUNCTION__), 0 : 0))
;
4040 for (int idx = 0; idx < len_max; idx++)
4041 {
4042 if (idx)
4043 pp_character (pp, ',');
4044
4045 tree arg_a = TREE_VEC_ELT (args_a, idx)(*((const_cast<tree *> (tree_vec_elt_check ((args_a), (
idx), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4045, __FUNCTION__)))))
;
4046 tree arg_b = TREE_VEC_ELT (args_b, idx)(*((const_cast<tree *> (tree_vec_elt_check ((args_b), (
idx), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4046, __FUNCTION__)))))
;
4047 if (arg_a == arg_b)
4048 {
4049 if (indent)
4050 newline_and_indent (pp, indent + 2);
4051 /* Can do elision here, printing "[...]". */
4052 if (flag_elide_typeglobal_options.x_flag_elide_type)
4053 pp_string (pp, G_("[...]")"[...]");
4054 else
4055 pp_string (pp, arg_to_string (arg_a, verbose));
4056 }
4057 else
4058 {
4059 int new_indent = indent ? indent + 2 : 0;
4060 if (comparable_template_types_p (arg_a, arg_b))
4061 print_template_differences (pp, arg_a, arg_b, verbose, new_indent);
4062 else
4063 if (indent)
4064 {
4065 newline_and_indent (pp, indent + 2);
4066 pp_character (pp, '[');
4067 print_nonequal_arg (pp, arg_a, verbose);
4068 pp_string (pp, " != ");
4069 print_nonequal_arg (pp, arg_b, verbose);
4070 pp_character (pp, ']');
4071 }
4072 else
4073 print_nonequal_arg (pp, arg_a, verbose);
4074 }
4075 }
4076 pp_printf (pp, ">");
4077}
4078
4079/* As type_to_string, but for a template, potentially colorizing/eliding
4080 in comparison with PEER.
4081 For example, if TYPE is map<int,double> and PEER is map<int,int>,
4082 then the resulting string would be:
4083 map<[...],double>
4084 with type elision, and:
4085 map<int,double>
4086 without type elision.
4087
4088 In both cases the parts of TYPE that differ from PEER will be colorized
4089 if SHOW_COLOR is true. In the above example, this would be "double".
4090
4091 Template arguments in which both types are using the default arguments
4092 are not printed; if at least one of the two types is using a non-default
4093 argument, then both arguments are printed.
4094
4095 The resulting string is in a GC-allocated buffer. */
4096
4097static const char *
4098type_to_string_with_compare (tree type, tree peer, bool verbose,
4099 bool show_color)
4100{
4101 pretty_printer inner_pp;
4102 pretty_printer *pp = &inner_pp;
4103 pp_show_color (pp)(pp)->show_color = show_color;
4104
4105 print_template_differences (pp, type, peer, verbose, 0);
4106 return pp_ggc_formatted_text (pp);
4107}
4108
4109/* Recursively print a tree-like comparison of TYPE_A and TYPE_B to PP,
4110 indented by INDENT spaces.
4111
4112 For example given types:
4113
4114 vector<map<int,double>>
4115
4116 and
4117
4118 vector<map<double,float>>
4119
4120 the output with type elision would be:
4121
4122 vector<
4123 map<
4124 [...],
4125 [double != float]>>
4126
4127 and without type-elision would be:
4128
4129 vector<
4130 map<
4131 int,
4132 [double != float]>>
4133
4134 TYPE_A and TYPE_B must both be comparable template types
4135 (as per comparable_template_types_p).
4136
4137 Template arguments in which both types are using the default arguments
4138 are not printed; if at least one of the two types is using a non-default
4139 argument, then both arguments are printed. */
4140
4141static void
4142print_template_tree_comparison (pretty_printer *pp, tree type_a, tree type_b,
4143 bool verbose, int indent)
4144{
4145 print_template_differences (pp, type_a, type_b, verbose, indent);
4146}
4147
4148/* Subroutine for use in a format_postprocessor::handle
4149 implementation. Adds a chunk to the end of
4150 formatted output, so that it will be printed
4151 by pp_output_formatted_text. */
4152
4153static void
4154append_formatted_chunk (pretty_printer *pp, const char *content)
4155{
4156 output_buffer *buffer = pp_buffer (pp)(pp)->buffer;
4157 struct chunk_info *chunk_array = buffer->cur_chunk_array;
4158 const char **args = chunk_array->args;
4159
4160 unsigned int chunk_idx;
4161 for (chunk_idx = 0; args[chunk_idx]; chunk_idx++)
4162 ;
4163 args[chunk_idx++] = content;
4164 args[chunk_idx] = NULL__null;
4165}
4166
4167/* Create a copy of CONTENT, with quotes added, and,
4168 potentially, with colorization.
4169 No escaped is performed on CONTENT.
4170 The result is in a GC-allocated buffer. */
4171
4172static const char *
4173add_quotes (const char *content, bool show_color)
4174{
4175 pretty_printer tmp_pp;
4176 pp_show_color (&tmp_pp)(&tmp_pp)->show_color = show_color;
4177
4178 /* We have to use "%<%s%>" rather than "%qs" here in order to avoid
4179 quoting colorization bytes within the results and using either
4180 pp_quote or pp_begin_quote doesn't work the same. */
4181 pp_printf (&tmp_pp, "%<%s%>", content);
4182
4183 return pp_ggc_formatted_text (&tmp_pp);
4184}
4185
4186#if __GNUC__4 >= 10
4187# pragma GCC diagnostic pop
4188#endif
4189
4190/* If we had %H and %I, and hence deferred printing them,
4191 print them now, storing the result into the chunk_info
4192 for pp_format. Quote them if 'q' was provided.
4193 Also print the difference in tree form, adding it as
4194 an additional chunk. */
4195
4196void
4197cxx_format_postprocessor::handle (pretty_printer *pp)
4198{
4199 /* If we have one of %H and %I, the other should have
4200 been present. */
4201 if (m_type_a.m_tree || m_type_b.m_tree)
4202 {
4203 /* Avoid reentrancy issues by working with a copy of
4204 m_type_a and m_type_b, resetting them now. */
4205 deferred_printed_type type_a = m_type_a;
4206 deferred_printed_type type_b = m_type_b;
4207 m_type_a = deferred_printed_type ();
4208 m_type_b = deferred_printed_type ();
4209
4210 gcc_assert (type_a.m_buffer_ptr)((void)(!(type_a.m_buffer_ptr) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4210, __FUNCTION__), 0 : 0))
;
4211 gcc_assert (type_b.m_buffer_ptr)((void)(!(type_b.m_buffer_ptr) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4211, __FUNCTION__), 0 : 0))
;
4212
4213 bool show_color = pp_show_color (pp)(pp)->show_color;
4214
4215 const char *type_a_text;
4216 const char *type_b_text;
4217
4218 if (comparable_template_types_p (type_a.m_tree, type_b.m_tree))
4219 {
4220 type_a_text
4221 = type_to_string_with_compare (type_a.m_tree, type_b.m_tree,
4222 type_a.m_verbose, show_color);
4223 type_b_text
4224 = type_to_string_with_compare (type_b.m_tree, type_a.m_tree,
4225 type_b.m_verbose, show_color);
4226
4227 if (flag_diagnostics_show_template_treeglobal_options.x_flag_diagnostics_show_template_tree)
4228 {
4229 pretty_printer inner_pp;
4230 pp_show_color (&inner_pp)(&inner_pp)->show_color = pp_show_color (pp)(pp)->show_color;
4231 print_template_tree_comparison
4232 (&inner_pp, type_a.m_tree, type_b.m_tree, type_a.m_verbose, 2);
4233 append_formatted_chunk (pp, pp_ggc_formatted_text (&inner_pp));
4234 }
4235 }
4236 else
4237 {
4238 /* If the types were not comparable (or if only one of %H/%I was
4239 provided), they are printed normally, and no difference tree
4240 is printed. */
4241 type_a_text = type_to_string (type_a.m_tree, type_a.m_verbose,
4242 true, &type_a.m_quote, show_color);
4243 type_b_text = type_to_string (type_b.m_tree, type_b.m_verbose,
4244 true, &type_b.m_quote, show_color);
4245 }
4246
4247 if (type_a.m_quote)
4248 type_a_text = add_quotes (type_a_text, show_color);
4249 *type_a.m_buffer_ptr = type_a_text;
4250
4251 if (type_b.m_quote)
4252 type_b_text = add_quotes (type_b_text, show_color);
4253 *type_b.m_buffer_ptr = type_b_text;
4254 }
4255}
4256
4257/* Subroutine for handling %H and %I, to support i18n of messages like:
4258
4259 error_at (loc, "could not convert %qE from %qH to %qI",
4260 expr, type_a, type_b);
4261
4262 so that we can print things like:
4263
4264 could not convert 'foo' from 'map<int,double>' to 'map<int,int>'
4265
4266 and, with type-elision:
4267
4268 could not convert 'foo' from 'map<[...],double>' to 'map<[...],int>'
4269
4270 (with color-coding of the differences between the types).
4271
4272 The %H and %I format codes are peers: both must be present,
4273 and they affect each other. Hence to handle them, we must
4274 delay printing until we have both, deferring the printing to
4275 pretty_printer's m_format_postprocessor hook.
4276
4277 This is called in phase 2 of pp_format, when it is accumulating
4278 a series of formatted chunks. We stash the location of the chunk
4279 we're meant to have written to, so that we can write to it in the
4280 m_format_postprocessor hook.
4281
4282 We also need to stash whether a 'q' prefix was provided (the QUOTE
4283 param) so that we can add the quotes when writing out the delayed
4284 chunk. */
4285
4286static void
4287defer_phase_2_of_type_diff (deferred_printed_type *deferred,
4288 tree type, const char **buffer_ptr,
4289 bool verbose, bool quote)
4290{
4291 gcc_assert (deferred->m_tree == NULL_TREE)((void)(!(deferred->m_tree == (tree) __null) ? fancy_abort
("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4291, __FUNCTION__), 0 : 0))
;
4292 gcc_assert (deferred->m_buffer_ptr == NULL)((void)(!(deferred->m_buffer_ptr == __null) ? fancy_abort (
"/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4292, __FUNCTION__), 0 : 0))
;
4293 *deferred = deferred_printed_type (type, buffer_ptr, verbose, quote);
4294}
4295
4296
4297/* Called from output_format -- during diagnostic message processing --
4298 to handle C++ specific format specifier with the following meanings:
4299 %A function argument-list.
4300 %C tree code.
4301 %D declaration.
4302 %E expression.
4303 %F function declaration.
4304 %G gcall *
4305 %H type difference (from).
4306 %I type difference (to).
4307 %K tree
4308 %L language as used in extern "lang".
4309 %O binary operator.
4310 %P function parameter whose position is indicated by an integer.
4311 %Q assignment operator.
4312 %S substitution (template + args)
4313 %T type.
4314 %V cv-qualifier.
4315 %X exception-specification. */
4316static bool
4317cp_printer (pretty_printer *pp, text_info *text, const char *spec,
4318 int precision, bool wide, bool set_locus, bool verbose,
4319 bool *quoted, const char **buffer_ptr)
4320{
4321 gcc_assert (pp->m_format_postprocessor)((void)(!(pp->m_format_postprocessor) ? fancy_abort ("/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4321, __FUNCTION__), 0 : 0))
;
4322 cxx_format_postprocessor *postprocessor
4323 = static_cast <cxx_format_postprocessor *> (pp->m_format_postprocessor);
4324
4325 const char *result;
4326 tree t = NULL__null;
4327#define next_tree (t = va_arg (*text->args_ptr, tree)__builtin_va_arg(*text->args_ptr, tree))
4328#define next_tcode ((enum tree_code) va_arg (*text->args_ptr, int)__builtin_va_arg(*text->args_ptr, int))
4329#define next_lang ((enum languages) va_arg (*text->args_ptr, int)__builtin_va_arg(*text->args_ptr, int))
4330#define next_int va_arg (*text->args_ptr, int)__builtin_va_arg(*text->args_ptr, int)
4331
4332 if (precision != 0 || wide)
4333 return false;
4334
4335 switch (*spec)
4336 {
4337 case 'A': result = args_to_string (next_tree, verbose); break;
4338 case 'C': result = code_to_string (next_tcode); break;
4339 case 'D':
4340 {
4341 tree temp = next_tree;
4342 if (VAR_P (temp)(((enum tree_code) (temp)->base.code) == VAR_DECL)
4343 && DECL_HAS_DEBUG_EXPR_P (temp)((tree_check ((temp), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4343, __FUNCTION__, (VAR_DECL)))->decl_common.debug_expr_is_from
)
)
4344 {
4345 temp = DECL_DEBUG_EXPR (temp)(decl_debug_expr_lookup ((tree_check ((temp), "/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-clang-static-analyzer/build/gcc/cp/error.c"
, 4345, __FUNCTION__, (VAR_DECL)))))
;
4346 if (!DECL_P (temp)(tree_code_type[(int) (((enum tree_code) (temp)->base.code
))] == tcc_declaration)
)
4347 {
4348 result = expr_to_string (temp);
4349 break;
4350 }
4351 }
4352 result = decl_to_string (temp, verbose);
4353 }
4354 break;
4355 case 'E': result = expr_to_string (next_tree); break;
4356 case 'F': result = fndecl_to_string (next_tree, verbose); break;
4357 case 'G':
4358 percent_G_format (text);
4359 return true;
4360 case 'H':
4361 defer_phase_2_of_type_diff (&postprocessor->m_type_a, next_tree,
4362 buffer_ptr, verbose, *quoted);
4363 return true;
4364 case 'I':
4365 defer_phase_2_of_type_diff (&postprocessor->m_type_b, next_tree,
4366 buffer_ptr, verbose, *quoted);
4367 return true;
4368 case 'K':
4369 t = va_arg (*text->args_ptr, tree)__builtin_va_arg(*text->args_ptr, tree);
4370 percent_K_format (text, EXPR_LOCATION (t)((((t)) && ((tree_code_type[(int) (((enum tree_code) (
(t))->base.code))]) >= tcc_reference && (tree_code_type
[(int) (((enum tree_code) ((t))->base.code))]) <= tcc_expression
)) ? (t)->exp.locus : ((location_t) 0))
, TREE_BLOCK (t)(tree_block (t)));
4371 return true;
4372 case 'L': result = language_to_string (next_lang); break;
4373 case 'O': result = op_to_string (false, next_tcode); break;
4374 case 'P': result = parm_to_string (next_int); break;
4375 case 'Q': result = op_to_string (true, next_tcode); break;
4376 case 'S': result = subst_to_string (next_tree); break;
4377 case 'T':
4378 {
4379 result = type_to_string (next_tree, verbose, false, quoted,
4380 pp_show_color (pp)(pp)->show_color);
4381 }
4382 break;
4383 case 'V': result = cv_to_string (next_tree, verbose); break;
4384 case 'X': result = eh_spec_to_string (next_tree, verbose); break;
4385
4386 default:
4387 return false;
4388 }
4389
4390 pp_string (pp, result);
4391 if (set_locus && t != NULL__null)
4392 text->set_location (0, location_of (t), SHOW_RANGE_WITH_CARET);
4393 return true;
4394#undef next_tree
4395#undef next_tcode
4396#undef next_lang
4397#undef next_int
4398}
4399
4400/* Warn about the use of C++0x features when appropriate. */
4401void
4402maybe_warn_cpp0x (cpp0x_warn_str str)
4403{
4404 if (cxx_dialect == cxx98)
4405 switch (str)
4406 {
4407 case CPP0X_INITIALIZER_LISTS:
4408 pedwarn (input_location, 0,
4409 "extended initializer lists "
4410 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4411 break;
4412 case CPP0X_EXPLICIT_CONVERSION:
4413 pedwarn (input_location, 0,
4414 "explicit conversion operators "
4415 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4416 break;
4417 case CPP0X_VARIADIC_TEMPLATES:
4418 pedwarn (input_location, 0,
4419 "variadic templates "
4420 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4421 break;
4422 case CPP0X_LAMBDA_EXPR:
4423 pedwarn (input_location, 0,
4424 "lambda expressions "
4425 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4426 break;
4427 case CPP0X_AUTO:
4428 pedwarn (input_location, 0,
4429 "C++11 auto only available with %<-std=c++11%> or "
4430 "%<-std=gnu++11%>");
4431 break;
4432 case CPP0X_SCOPED_ENUMS:
4433 pedwarn (input_location, 0,
4434 "scoped enums only available with %<-std=c++11%> or "
4435 "%<-std=gnu++11%>");
4436 break;
4437 case CPP0X_DEFAULTED_DELETED:
4438 pedwarn (input_location, 0,
4439 "defaulted and deleted functions "
4440 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4441 break;
4442 case CPP0X_INLINE_NAMESPACES:
4443 pedwarn (input_location, OPT_Wpedantic,
4444 "inline namespaces "
4445 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4446 break;
4447 case CPP0X_OVERRIDE_CONTROLS:
4448 pedwarn (input_location, 0,
4449 "override controls (override/final) "
4450 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4451 break;
4452 case CPP0X_NSDMI:
4453 pedwarn (input_location, 0,
4454 "non-static data member initializers "
4455 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4456 break;
4457 case CPP0X_USER_DEFINED_LITERALS:
4458 pedwarn (input_location, 0,
4459 "user-defined literals "
4460 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4461 break;
4462 case CPP0X_DELEGATING_CTORS:
4463 pedwarn (input_location, 0,
4464 "delegating constructors "
4465 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4466 break;
4467 case CPP0X_INHERITING_CTORS:
4468 pedwarn (input_location, 0,
4469 "inheriting constructors "
4470 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4471 break;
4472 case CPP0X_ATTRIBUTES:
4473 pedwarn (input_location, 0,
4474 "c++11 attributes "
4475 "only available with %<-std=c++11%> or %<-std=gnu++11%>");
4476 break;
4477 case CPP0X_REF_QU