Lines Matching refs:OS
25 OS << Desc; \
29 static void outputSpaceIfNecessary(OutputStream &OS) { in outputSpaceIfNecessary() argument
30 if (OS.empty()) in outputSpaceIfNecessary()
33 char C = OS.back(); in outputSpaceIfNecessary()
35 OS << " "; in outputSpaceIfNecessary()
38 static bool outputSingleQualifier(OutputStream &OS, Qualifiers Q) { in outputSingleQualifier() argument
41 OS << "const"; in outputSingleQualifier()
44 OS << "volatile"; in outputSingleQualifier()
47 OS << "__restrict"; in outputSingleQualifier()
55 static bool outputQualifierIfPresent(OutputStream &OS, Qualifiers Q, in outputQualifierIfPresent() argument
61 OS << " "; in outputQualifierIfPresent()
63 outputSingleQualifier(OS, Mask); in outputQualifierIfPresent()
67 static void outputQualifiers(OutputStream &OS, Qualifiers Q, bool SpaceBefore, in outputQualifiers() argument
72 size_t Pos1 = OS.getCurrentPosition(); in outputQualifiers()
73 SpaceBefore = outputQualifierIfPresent(OS, Q, Q_Const, SpaceBefore); in outputQualifiers()
74 SpaceBefore = outputQualifierIfPresent(OS, Q, Q_Volatile, SpaceBefore); in outputQualifiers()
75 SpaceBefore = outputQualifierIfPresent(OS, Q, Q_Restrict, SpaceBefore); in outputQualifiers()
76 size_t Pos2 = OS.getCurrentPosition(); in outputQualifiers()
78 OS << " "; in outputQualifiers()
81 static void outputCallingConvention(OutputStream &OS, CallingConv CC) { in outputCallingConvention() argument
82 outputSpaceIfNecessary(OS); in outputCallingConvention()
86 OS << "__cdecl"; in outputCallingConvention()
89 OS << "__fastcall"; in outputCallingConvention()
92 OS << "__pascal"; in outputCallingConvention()
95 OS << "__regcall"; in outputCallingConvention()
98 OS << "__stdcall"; in outputCallingConvention()
101 OS << "__thiscall"; in outputCallingConvention()
104 OS << "__eabi"; in outputCallingConvention()
107 OS << "__vectorcall"; in outputCallingConvention()
110 OS << "__clrcall"; in outputCallingConvention()
118 OutputStream OS; in toString() local
119 initializeOutputStream(nullptr, nullptr, OS, 1024); in toString()
120 this->output(OS, Flags); in toString()
121 OS << '\0'; in toString()
122 return {OS.getBuffer()}; in toString()
127 void PrimitiveTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
150 outputQualifiers(OS, Quals, true, false); in outputPre()
153 void NodeArrayNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
154 output(OS, Flags, ", "); in output()
157 void NodeArrayNode::output(OutputStream &OS, OutputFlags Flags, in output() argument
162 Nodes[0]->output(OS, Flags); in output()
164 OS << Separator; in output()
165 Nodes[I]->output(OS, Flags); in output()
169 void EncodedStringLiteralNode::output(OutputStream &OS, in output() argument
173 OS << "L\""; in output()
176 OS << "\""; in output()
179 OS << "u\""; in output()
182 OS << "U\""; in output()
185 OS << DecodedString << "\""; in output()
187 OS << "..."; in output()
190 void IntegerLiteralNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
192 OS << '-'; in output()
193 OS << Value; in output()
196 void TemplateParameterReferenceNode::output(OutputStream &OS, in output() argument
199 OS << "{"; in output()
201 OS << "&"; in output()
204 Symbol->output(OS, Flags); in output()
206 OS << ", "; in output()
210 OS << ThunkOffsets[0]; in output()
212 OS << ", " << ThunkOffsets[I]; in output()
215 OS << "}"; in output()
218 void IdentifierNode::outputTemplateParameters(OutputStream &OS, in outputTemplateParameters() argument
222 OS << "<"; in outputTemplateParameters()
223 TemplateParams->output(OS, Flags); in outputTemplateParameters()
224 OS << ">"; in outputTemplateParameters()
227 void DynamicStructorIdentifierNode::output(OutputStream &OS, in output() argument
230 OS << "`dynamic atexit destructor for "; in output()
232 OS << "`dynamic initializer for "; in output()
235 OS << "`"; in output()
236 Variable->output(OS, Flags); in output()
237 OS << "''"; in output()
239 OS << "'"; in output()
240 Name->output(OS, Flags); in output()
241 OS << "''"; in output()
245 void NamedIdentifierNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
246 OS << Name; in output()
247 outputTemplateParameters(OS, Flags); in output()
250 void IntrinsicFunctionIdentifierNode::output(OutputStream &OS, in output() argument
347 outputTemplateParameters(OS, Flags); in output()
350 void LocalStaticGuardIdentifierNode::output(OutputStream &OS, in output() argument
352 OS << "`local static guard'"; in output()
354 OS << "{" << ScopeIndex << "}"; in output()
357 void ConversionOperatorIdentifierNode::output(OutputStream &OS, in output() argument
359 OS << "operator"; in output()
360 outputTemplateParameters(OS, Flags); in output()
361 OS << " "; in output()
362 TargetType->output(OS, Flags); in output()
365 void StructorIdentifierNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
367 OS << "~"; in output()
368 Class->output(OS, Flags); in output()
369 outputTemplateParameters(OS, Flags); in output()
372 void LiteralOperatorIdentifierNode::output(OutputStream &OS, in output() argument
374 OS << "operator \"\"" << Name; in output()
375 outputTemplateParameters(OS, Flags); in output()
378 void FunctionSignatureNode::outputPre(OutputStream &OS, in outputPre() argument
381 OS << "public: "; in outputPre()
383 OS << "protected: "; in outputPre()
385 OS << "private: "; in outputPre()
389 OS << "static "; in outputPre()
392 OS << "virtual "; in outputPre()
395 OS << "extern \"C\" "; in outputPre()
398 ReturnType->outputPre(OS, Flags); in outputPre()
399 OS << " "; in outputPre()
403 outputCallingConvention(OS, CallConvention); in outputPre()
406 void FunctionSignatureNode::outputPost(OutputStream &OS, in outputPost() argument
409 OS << "("; in outputPost()
411 Params->output(OS, Flags); in outputPost()
413 OS << "void"; in outputPost()
414 OS << ")"; in outputPost()
418 OS << " const"; in outputPost()
420 OS << " volatile"; in outputPost()
422 OS << " __restrict"; in outputPost()
424 OS << " __unaligned"; in outputPost()
427 OS << " noexcept"; in outputPost()
430 OS << " &"; in outputPost()
432 OS << " &&"; in outputPost()
435 ReturnType->outputPost(OS, Flags); in outputPost()
438 void ThunkSignatureNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
439 OS << "[thunk]: "; in outputPre()
441 FunctionSignatureNode::outputPre(OS, Flags); in outputPre()
444 void ThunkSignatureNode::outputPost(OutputStream &OS, OutputFlags Flags) const { in outputPost() argument
446 OS << "`adjustor{" << ThisAdjust.StaticOffset << "}'"; in outputPost()
449 OS << "`vtordispex{" << ThisAdjust.VBPtrOffset << ", " in outputPost()
453 OS << "`vtordisp{" << ThisAdjust.VtordispOffset << ", " in outputPost()
458 FunctionSignatureNode::outputPost(OS, Flags); in outputPost()
461 void PointerTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
467 Sig->outputPre(OS, OF_NoCallingConvention); in outputPre()
469 Pointee->outputPre(OS, Flags); in outputPre()
471 outputSpaceIfNecessary(OS); in outputPre()
474 OS << "__unaligned "; in outputPre()
477 OS << "("; in outputPre()
479 OS << "("; in outputPre()
482 outputCallingConvention(OS, Sig->CallConvention); in outputPre()
483 OS << " "; in outputPre()
487 ClassParent->output(OS, Flags); in outputPre()
488 OS << "::"; in outputPre()
493 OS << "*"; in outputPre()
496 OS << "&"; in outputPre()
499 OS << "&&"; in outputPre()
504 outputQualifiers(OS, Quals, false, false); in outputPre()
507 void PointerTypeNode::outputPost(OutputStream &OS, OutputFlags Flags) const { in outputPost() argument
510 OS << ")"; in outputPost()
512 Pointee->outputPost(OS, Flags); in outputPost()
515 void TagTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
523 OS << " "; in outputPre()
525 QualifiedName->output(OS, Flags); in outputPre()
526 outputQualifiers(OS, Quals, true, false); in outputPre()
529 void TagTypeNode::outputPost(OutputStream &OS, OutputFlags Flags) const {} in outputPost() argument
531 void ArrayTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
532 ElementType->outputPre(OS, Flags); in outputPre()
533 outputQualifiers(OS, Quals, true, false); in outputPre()
536 void ArrayTypeNode::outputOneDimension(OutputStream &OS, OutputFlags Flags, in outputOneDimension() argument
541 ILN->output(OS, Flags); in outputOneDimension()
544 void ArrayTypeNode::outputDimensionsImpl(OutputStream &OS, in outputDimensionsImpl() argument
549 outputOneDimension(OS, Flags, Dimensions->Nodes[0]); in outputDimensionsImpl()
551 OS << "]["; in outputDimensionsImpl()
552 outputOneDimension(OS, Flags, Dimensions->Nodes[I]); in outputDimensionsImpl()
556 void ArrayTypeNode::outputPost(OutputStream &OS, OutputFlags Flags) const { in outputPost() argument
557 OS << "["; in outputPost()
558 outputDimensionsImpl(OS, Flags); in outputPost()
559 OS << "]"; in outputPost()
561 ElementType->outputPost(OS, Flags); in outputPost()
564 void SymbolNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
565 Name->output(OS, Flags); in output()
568 void FunctionSymbolNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
569 Signature->outputPre(OS, Flags); in output()
570 outputSpaceIfNecessary(OS); in output()
571 Name->output(OS, Flags); in output()
572 Signature->outputPost(OS, Flags); in output()
575 void VariableSymbolNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
578 OS << "private: static "; in output()
581 OS << "public: static "; in output()
584 OS << "protected: static "; in output()
591 Type->outputPre(OS, Flags); in output()
592 outputSpaceIfNecessary(OS); in output()
594 Name->output(OS, Flags); in output()
596 Type->outputPost(OS, Flags); in output()
599 void CustomTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
600 Identifier->output(OS, Flags); in outputPre()
602 void CustomTypeNode::outputPost(OutputStream &OS, OutputFlags Flags) const {} in outputPost() argument
604 void QualifiedNameNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
605 Components->output(OS, Flags, "::"); in output()
608 void RttiBaseClassDescriptorNode::output(OutputStream &OS, in output() argument
610 OS << "`RTTI Base Class Descriptor at ("; in output()
611 OS << NVOffset << ", " << VBPtrOffset << ", " << VBTableOffset << ", " in output()
613 OS << ")'"; in output()
616 void LocalStaticGuardVariableNode::output(OutputStream &OS, in output() argument
618 Name->output(OS, Flags); in output()
621 void VcallThunkIdentifierNode::output(OutputStream &OS, in output() argument
623 OS << "`vcall'{" << OffsetInVTable << ", {flat}}"; in output()
626 void SpecialTableSymbolNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
627 outputQualifiers(OS, Quals, false, true); in output()
628 Name->output(OS, Flags); in output()
630 OS << "{for `"; in output()
631 TargetName->output(OS, Flags); in output()
632 OS << "'}"; in output()