Lines Matching refs:OB

23     OB << Desc;                                                                \
27 static void outputSpaceIfNecessary(OutputBuffer &OB) { in outputSpaceIfNecessary() argument
28 if (OB.empty()) in outputSpaceIfNecessary()
31 char C = OB.back(); in outputSpaceIfNecessary()
33 OB << " "; in outputSpaceIfNecessary()
36 static void outputSingleQualifier(OutputBuffer &OB, Qualifiers Q) { in outputSingleQualifier() argument
39 OB << "const"; in outputSingleQualifier()
42 OB << "volatile"; in outputSingleQualifier()
45 OB << "__restrict"; in outputSingleQualifier()
52 static bool outputQualifierIfPresent(OutputBuffer &OB, Qualifiers Q, in outputQualifierIfPresent() argument
58 OB << " "; in outputQualifierIfPresent()
60 outputSingleQualifier(OB, Mask); in outputQualifierIfPresent()
64 static void outputQualifiers(OutputBuffer &OB, Qualifiers Q, bool SpaceBefore, in outputQualifiers() argument
69 size_t Pos1 = OB.getCurrentPosition(); in outputQualifiers()
70 SpaceBefore = outputQualifierIfPresent(OB, Q, Q_Const, SpaceBefore); in outputQualifiers()
71 SpaceBefore = outputQualifierIfPresent(OB, Q, Q_Volatile, SpaceBefore); in outputQualifiers()
72 SpaceBefore = outputQualifierIfPresent(OB, Q, Q_Restrict, SpaceBefore); in outputQualifiers()
73 size_t Pos2 = OB.getCurrentPosition(); in outputQualifiers()
75 OB << " "; in outputQualifiers()
78 static void outputCallingConvention(OutputBuffer &OB, CallingConv CC) { in outputCallingConvention() argument
79 outputSpaceIfNecessary(OB); in outputCallingConvention()
83 OB << "__cdecl"; in outputCallingConvention()
86 OB << "__fastcall"; in outputCallingConvention()
89 OB << "__pascal"; in outputCallingConvention()
92 OB << "__regcall"; in outputCallingConvention()
95 OB << "__stdcall"; in outputCallingConvention()
98 OB << "__thiscall"; in outputCallingConvention()
101 OB << "__eabi"; in outputCallingConvention()
104 OB << "__vectorcall"; in outputCallingConvention()
107 OB << "__clrcall"; in outputCallingConvention()
110 OB << "__attribute__((__swiftcall__)) "; in outputCallingConvention()
113 OB << "__attribute__((__swiftasynccall__)) "; in outputCallingConvention()
121 OutputBuffer OB; in toString() local
122 this->output(OB, Flags); in toString()
123 std::string_view SV = OB; in toString()
125 std::free(OB.getBuffer()); in toString()
129 void PrimitiveTypeNode::outputPre(OutputBuffer &OB, OutputFlags Flags) const { in outputPre() argument
153 outputQualifiers(OB, Quals, true, false); in outputPre()
156 void NodeArrayNode::output(OutputBuffer &OB, OutputFlags Flags) const { in output() argument
157 output(OB, Flags, ", "); in output()
160 void NodeArrayNode::output(OutputBuffer &OB, OutputFlags Flags, in output() argument
165 Nodes[0]->output(OB, Flags); in output()
167 OB << Separator; in output()
168 Nodes[I]->output(OB, Flags); in output()
172 void EncodedStringLiteralNode::output(OutputBuffer &OB, in output() argument
176 OB << "L\""; in output()
179 OB << "\""; in output()
182 OB << "u\""; in output()
185 OB << "U\""; in output()
188 OB << DecodedString << "\""; in output()
190 OB << "..."; in output()
193 void IntegerLiteralNode::output(OutputBuffer &OB, OutputFlags Flags) const { in output() argument
195 OB << '-'; in output()
196 OB << Value; in output()
199 void TemplateParameterReferenceNode::output(OutputBuffer &OB, in output() argument
202 OB << "{"; in output()
204 OB << "&"; in output()
207 Symbol->output(OB, Flags); in output()
209 OB << ", "; in output()
213 OB << ThunkOffsets[0]; in output()
215 OB << ", " << ThunkOffsets[I]; in output()
218 OB << "}"; in output()
221 void IdentifierNode::outputTemplateParameters(OutputBuffer &OB, in outputTemplateParameters() argument
225 OB << "<"; in outputTemplateParameters()
226 TemplateParams->output(OB, Flags); in outputTemplateParameters()
227 OB << ">"; in outputTemplateParameters()
230 void DynamicStructorIdentifierNode::output(OutputBuffer &OB, in output() argument
233 OB << "`dynamic atexit destructor for "; in output()
235 OB << "`dynamic initializer for "; in output()
238 OB << "`"; in output()
239 Variable->output(OB, Flags); in output()
240 OB << "''"; in output()
242 OB << "'"; in output()
243 Name->output(OB, Flags); in output()
244 OB << "''"; in output()
248 void NamedIdentifierNode::output(OutputBuffer &OB, OutputFlags Flags) const { in output() argument
249 OB << Name; in output()
250 outputTemplateParameters(OB, Flags); in output()
253 void IntrinsicFunctionIdentifierNode::output(OutputBuffer &OB, in output() argument
351 outputTemplateParameters(OB, Flags); in output()
354 void LocalStaticGuardIdentifierNode::output(OutputBuffer &OB, in output() argument
357 OB << "`local static thread guard'"; in output()
359 OB << "`local static guard'"; in output()
361 OB << "{" << ScopeIndex << "}"; in output()
364 void ConversionOperatorIdentifierNode::output(OutputBuffer &OB, in output() argument
366 OB << "operator"; in output()
367 outputTemplateParameters(OB, Flags); in output()
368 OB << " "; in output()
369 TargetType->output(OB, Flags); in output()
372 void StructorIdentifierNode::output(OutputBuffer &OB, OutputFlags Flags) const { in output() argument
374 OB << "~"; in output()
375 Class->output(OB, Flags); in output()
376 outputTemplateParameters(OB, Flags); in output()
379 void LiteralOperatorIdentifierNode::output(OutputBuffer &OB, in output() argument
381 OB << "operator \"\"" << Name; in output()
382 outputTemplateParameters(OB, Flags); in output()
385 void FunctionSignatureNode::outputPre(OutputBuffer &OB, in outputPre() argument
389 OB << "public: "; in outputPre()
391 OB << "protected: "; in outputPre()
393 OB << "private: "; in outputPre()
399 OB << "static "; in outputPre()
402 OB << "virtual "; in outputPre()
405 OB << "extern \"C\" "; in outputPre()
409 ReturnType->outputPre(OB, Flags); in outputPre()
410 OB << " "; in outputPre()
414 outputCallingConvention(OB, CallConvention); in outputPre()
417 void FunctionSignatureNode::outputPost(OutputBuffer &OB, in outputPost() argument
420 OB << "("; in outputPost()
422 Params->output(OB, Flags); in outputPost()
424 OB << "void"; in outputPost()
427 if (OB.back() != '(') in outputPost()
428 OB << ", "; in outputPost()
429 OB << "..."; in outputPost()
431 OB << ")"; in outputPost()
435 OB << " const"; in outputPost()
437 OB << " volatile"; in outputPost()
439 OB << " __restrict"; in outputPost()
441 OB << " __unaligned"; in outputPost()
444 OB << " noexcept"; in outputPost()
447 OB << " &"; in outputPost()
449 OB << " &&"; in outputPost()
452 ReturnType->outputPost(OB, Flags); in outputPost()
455 void ThunkSignatureNode::outputPre(OutputBuffer &OB, OutputFlags Flags) const { in outputPre() argument
456 OB << "[thunk]: "; in outputPre()
458 FunctionSignatureNode::outputPre(OB, Flags); in outputPre()
461 void ThunkSignatureNode::outputPost(OutputBuffer &OB, OutputFlags Flags) const { in outputPost() argument
463 OB << "`adjustor{" << ThisAdjust.StaticOffset << "}'"; in outputPost()
466 OB << "`vtordispex{" << ThisAdjust.VBPtrOffset << ", " in outputPost()
470 OB << "`vtordisp{" << ThisAdjust.VtordispOffset << ", " in outputPost()
475 FunctionSignatureNode::outputPost(OB, Flags); in outputPost()
478 void PointerTypeNode::outputPre(OutputBuffer &OB, OutputFlags Flags) const { in outputPre() argument
484 Sig->outputPre(OB, OF_NoCallingConvention); in outputPre()
486 Pointee->outputPre(OB, Flags); in outputPre()
488 outputSpaceIfNecessary(OB); in outputPre()
491 OB << "__unaligned "; in outputPre()
494 OB << "("; in outputPre()
496 OB << "("; in outputPre()
499 outputCallingConvention(OB, Sig->CallConvention); in outputPre()
500 OB << " "; in outputPre()
504 ClassParent->output(OB, Flags); in outputPre()
505 OB << "::"; in outputPre()
510 OB << "*"; in outputPre()
513 OB << "&"; in outputPre()
516 OB << "&&"; in outputPre()
521 outputQualifiers(OB, Quals, false, false); in outputPre()
524 void PointerTypeNode::outputPost(OutputBuffer &OB, OutputFlags Flags) const { in outputPost() argument
527 OB << ")"; in outputPost()
529 Pointee->outputPost(OB, Flags); in outputPost()
532 void TagTypeNode::outputPre(OutputBuffer &OB, OutputFlags Flags) const { in outputPre() argument
540 OB << " "; in outputPre()
542 QualifiedName->output(OB, Flags); in outputPre()
543 outputQualifiers(OB, Quals, true, false); in outputPre()
546 void TagTypeNode::outputPost(OutputBuffer &OB, OutputFlags Flags) const {} in outputPost() argument
548 void ArrayTypeNode::outputPre(OutputBuffer &OB, OutputFlags Flags) const { in outputPre() argument
549 ElementType->outputPre(OB, Flags); in outputPre()
550 outputQualifiers(OB, Quals, true, false); in outputPre()
553 void ArrayTypeNode::outputOneDimension(OutputBuffer &OB, OutputFlags Flags, in outputOneDimension() argument
558 ILN->output(OB, Flags); in outputOneDimension()
561 void ArrayTypeNode::outputDimensionsImpl(OutputBuffer &OB, in outputDimensionsImpl() argument
566 outputOneDimension(OB, Flags, Dimensions->Nodes[0]); in outputDimensionsImpl()
568 OB << "]["; in outputDimensionsImpl()
569 outputOneDimension(OB, Flags, Dimensions->Nodes[I]); in outputDimensionsImpl()
573 void ArrayTypeNode::outputPost(OutputBuffer &OB, OutputFlags Flags) const { in outputPost() argument
574 OB << "["; in outputPost()
575 outputDimensionsImpl(OB, Flags); in outputPost()
576 OB << "]"; in outputPost()
578 ElementType->outputPost(OB, Flags); in outputPost()
581 void SymbolNode::output(OutputBuffer &OB, OutputFlags Flags) const { in output() argument
582 Name->output(OB, Flags); in output()
585 void FunctionSymbolNode::output(OutputBuffer &OB, OutputFlags Flags) const { in output() argument
586 Signature->outputPre(OB, Flags); in output()
587 outputSpaceIfNecessary(OB); in output()
588 Name->output(OB, Flags); in output()
589 Signature->outputPost(OB, Flags); in output()
592 void VariableSymbolNode::output(OutputBuffer &OB, OutputFlags Flags) const { in output() argument
610 OB << AccessSpec << ": "; in output()
612 OB << "static "; in output()
615 Type->outputPre(OB, Flags); in output()
616 outputSpaceIfNecessary(OB); in output()
618 Name->output(OB, Flags); in output()
620 Type->outputPost(OB, Flags); in output()
623 void CustomTypeNode::outputPre(OutputBuffer &OB, OutputFlags Flags) const { in outputPre() argument
624 Identifier->output(OB, Flags); in outputPre()
626 void CustomTypeNode::outputPost(OutputBuffer &OB, OutputFlags Flags) const {} in outputPost() argument
628 void QualifiedNameNode::output(OutputBuffer &OB, OutputFlags Flags) const { in output() argument
629 Components->output(OB, Flags, "::"); in output()
632 void RttiBaseClassDescriptorNode::output(OutputBuffer &OB, in output() argument
634 OB << "`RTTI Base Class Descriptor at ("; in output()
635 OB << NVOffset << ", " << VBPtrOffset << ", " << VBTableOffset << ", " in output()
637 OB << ")'"; in output()
640 void LocalStaticGuardVariableNode::output(OutputBuffer &OB, in output() argument
642 Name->output(OB, Flags); in output()
645 void VcallThunkIdentifierNode::output(OutputBuffer &OB, in output() argument
647 OB << "`vcall'{" << OffsetInVTable << ", {flat}}"; in output()
650 void SpecialTableSymbolNode::output(OutputBuffer &OB, OutputFlags Flags) const { in output() argument
651 outputQualifiers(OB, Quals, false, true); in output()
652 Name->output(OB, Flags); in output()
654 OB << "{for `"; in output()
655 TargetName->output(OB, Flags); in output()
656 OB << "'}"; in output()