Lines Matching refs:OS

24     OS << Desc;                                                                \
28 static void outputSpaceIfNecessary(OutputStream &OS) { in outputSpaceIfNecessary() argument
29 if (OS.empty()) in outputSpaceIfNecessary()
32 char C = OS.back(); in outputSpaceIfNecessary()
34 OS << " "; in outputSpaceIfNecessary()
37 static void outputSingleQualifier(OutputStream &OS, Qualifiers Q) { in outputSingleQualifier() argument
40 OS << "const"; in outputSingleQualifier()
43 OS << "volatile"; in outputSingleQualifier()
46 OS << "__restrict"; in outputSingleQualifier()
53 static bool outputQualifierIfPresent(OutputStream &OS, Qualifiers Q, in outputQualifierIfPresent() argument
59 OS << " "; in outputQualifierIfPresent()
61 outputSingleQualifier(OS, Mask); in outputQualifierIfPresent()
65 static void outputQualifiers(OutputStream &OS, Qualifiers Q, bool SpaceBefore, in outputQualifiers() argument
70 size_t Pos1 = OS.getCurrentPosition(); in outputQualifiers()
71 SpaceBefore = outputQualifierIfPresent(OS, Q, Q_Const, SpaceBefore); in outputQualifiers()
72 SpaceBefore = outputQualifierIfPresent(OS, Q, Q_Volatile, SpaceBefore); in outputQualifiers()
73 SpaceBefore = outputQualifierIfPresent(OS, Q, Q_Restrict, SpaceBefore); in outputQualifiers()
74 size_t Pos2 = OS.getCurrentPosition(); in outputQualifiers()
76 OS << " "; in outputQualifiers()
79 static void outputCallingConvention(OutputStream &OS, CallingConv CC) { in outputCallingConvention() argument
80 outputSpaceIfNecessary(OS); in outputCallingConvention()
84 OS << "__cdecl"; in outputCallingConvention()
87 OS << "__fastcall"; in outputCallingConvention()
90 OS << "__pascal"; in outputCallingConvention()
93 OS << "__regcall"; in outputCallingConvention()
96 OS << "__stdcall"; in outputCallingConvention()
99 OS << "__thiscall"; in outputCallingConvention()
102 OS << "__eabi"; in outputCallingConvention()
105 OS << "__vectorcall"; in outputCallingConvention()
108 OS << "__clrcall"; in outputCallingConvention()
111 OS << "__attribute__((__swiftcall__)) "; in outputCallingConvention()
114 OS << "__attribute__((__swiftasynccall__)) "; in outputCallingConvention()
122 OutputStream OS; in toString() local
123 initializeOutputStream(nullptr, nullptr, OS, 1024); in toString()
124 this->output(OS, Flags); in toString()
125 OS << '\0'; in toString()
126 std::string Owned(OS.getBuffer()); in toString()
127 std::free(OS.getBuffer()); in toString()
131 void PrimitiveTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
155 outputQualifiers(OS, Quals, true, false); in outputPre()
158 void NodeArrayNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
159 output(OS, Flags, ", "); in output()
162 void NodeArrayNode::output(OutputStream &OS, OutputFlags Flags, in output() argument
167 Nodes[0]->output(OS, Flags); in output()
169 OS << Separator; in output()
170 Nodes[I]->output(OS, Flags); in output()
174 void EncodedStringLiteralNode::output(OutputStream &OS, in output() argument
178 OS << "L\""; in output()
181 OS << "\""; in output()
184 OS << "u\""; in output()
187 OS << "U\""; in output()
190 OS << DecodedString << "\""; in output()
192 OS << "..."; in output()
195 void IntegerLiteralNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
197 OS << '-'; in output()
198 OS << Value; in output()
201 void TemplateParameterReferenceNode::output(OutputStream &OS, in output() argument
204 OS << "{"; in output()
206 OS << "&"; in output()
209 Symbol->output(OS, Flags); in output()
211 OS << ", "; in output()
215 OS << ThunkOffsets[0]; in output()
217 OS << ", " << ThunkOffsets[I]; in output()
220 OS << "}"; in output()
223 void IdentifierNode::outputTemplateParameters(OutputStream &OS, in outputTemplateParameters() argument
227 OS << "<"; in outputTemplateParameters()
228 TemplateParams->output(OS, Flags); in outputTemplateParameters()
229 OS << ">"; in outputTemplateParameters()
232 void DynamicStructorIdentifierNode::output(OutputStream &OS, in output() argument
235 OS << "`dynamic atexit destructor for "; in output()
237 OS << "`dynamic initializer for "; in output()
240 OS << "`"; in output()
241 Variable->output(OS, Flags); in output()
242 OS << "''"; in output()
244 OS << "'"; in output()
245 Name->output(OS, Flags); in output()
246 OS << "''"; in output()
250 void NamedIdentifierNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
251 OS << Name; in output()
252 outputTemplateParameters(OS, Flags); in output()
255 void IntrinsicFunctionIdentifierNode::output(OutputStream &OS, in output() argument
353 outputTemplateParameters(OS, Flags); in output()
356 void LocalStaticGuardIdentifierNode::output(OutputStream &OS, in output() argument
359 OS << "`local static thread guard'"; in output()
361 OS << "`local static guard'"; in output()
363 OS << "{" << ScopeIndex << "}"; in output()
366 void ConversionOperatorIdentifierNode::output(OutputStream &OS, in output() argument
368 OS << "operator"; in output()
369 outputTemplateParameters(OS, Flags); in output()
370 OS << " "; in output()
371 TargetType->output(OS, Flags); in output()
374 void StructorIdentifierNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
376 OS << "~"; in output()
377 Class->output(OS, Flags); in output()
378 outputTemplateParameters(OS, Flags); in output()
381 void LiteralOperatorIdentifierNode::output(OutputStream &OS, in output() argument
383 OS << "operator \"\"" << Name; in output()
384 outputTemplateParameters(OS, Flags); in output()
387 void FunctionSignatureNode::outputPre(OutputStream &OS, in outputPre() argument
391 OS << "public: "; in outputPre()
393 OS << "protected: "; in outputPre()
395 OS << "private: "; in outputPre()
401 OS << "static "; in outputPre()
404 OS << "virtual "; in outputPre()
407 OS << "extern \"C\" "; in outputPre()
411 ReturnType->outputPre(OS, Flags); in outputPre()
412 OS << " "; in outputPre()
416 outputCallingConvention(OS, CallConvention); in outputPre()
419 void FunctionSignatureNode::outputPost(OutputStream &OS, in outputPost() argument
422 OS << "("; in outputPost()
424 Params->output(OS, Flags); in outputPost()
426 OS << "void"; in outputPost()
429 if (OS.back() != '(') in outputPost()
430 OS << ", "; in outputPost()
431 OS << "..."; in outputPost()
433 OS << ")"; in outputPost()
437 OS << " const"; in outputPost()
439 OS << " volatile"; in outputPost()
441 OS << " __restrict"; in outputPost()
443 OS << " __unaligned"; in outputPost()
446 OS << " noexcept"; in outputPost()
449 OS << " &"; in outputPost()
451 OS << " &&"; in outputPost()
454 ReturnType->outputPost(OS, Flags); in outputPost()
457 void ThunkSignatureNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
458 OS << "[thunk]: "; in outputPre()
460 FunctionSignatureNode::outputPre(OS, Flags); in outputPre()
463 void ThunkSignatureNode::outputPost(OutputStream &OS, OutputFlags Flags) const { in outputPost() argument
465 OS << "`adjustor{" << ThisAdjust.StaticOffset << "}'"; in outputPost()
468 OS << "`vtordispex{" << ThisAdjust.VBPtrOffset << ", " in outputPost()
472 OS << "`vtordisp{" << ThisAdjust.VtordispOffset << ", " in outputPost()
477 FunctionSignatureNode::outputPost(OS, Flags); in outputPost()
480 void PointerTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
486 Sig->outputPre(OS, OF_NoCallingConvention); in outputPre()
488 Pointee->outputPre(OS, Flags); in outputPre()
490 outputSpaceIfNecessary(OS); in outputPre()
493 OS << "__unaligned "; in outputPre()
496 OS << "("; in outputPre()
498 OS << "("; in outputPre()
501 outputCallingConvention(OS, Sig->CallConvention); in outputPre()
502 OS << " "; in outputPre()
506 ClassParent->output(OS, Flags); in outputPre()
507 OS << "::"; in outputPre()
512 OS << "*"; in outputPre()
515 OS << "&"; in outputPre()
518 OS << "&&"; in outputPre()
523 outputQualifiers(OS, Quals, false, false); in outputPre()
526 void PointerTypeNode::outputPost(OutputStream &OS, OutputFlags Flags) const { in outputPost() argument
529 OS << ")"; in outputPost()
531 Pointee->outputPost(OS, Flags); in outputPost()
534 void TagTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
542 OS << " "; in outputPre()
544 QualifiedName->output(OS, Flags); in outputPre()
545 outputQualifiers(OS, Quals, true, false); in outputPre()
548 void TagTypeNode::outputPost(OutputStream &OS, OutputFlags Flags) const {} in outputPost() argument
550 void ArrayTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
551 ElementType->outputPre(OS, Flags); in outputPre()
552 outputQualifiers(OS, Quals, true, false); in outputPre()
555 void ArrayTypeNode::outputOneDimension(OutputStream &OS, OutputFlags Flags, in outputOneDimension() argument
560 ILN->output(OS, Flags); in outputOneDimension()
563 void ArrayTypeNode::outputDimensionsImpl(OutputStream &OS, in outputDimensionsImpl() argument
568 outputOneDimension(OS, Flags, Dimensions->Nodes[0]); in outputDimensionsImpl()
570 OS << "]["; in outputDimensionsImpl()
571 outputOneDimension(OS, Flags, Dimensions->Nodes[I]); in outputDimensionsImpl()
575 void ArrayTypeNode::outputPost(OutputStream &OS, OutputFlags Flags) const { in outputPost() argument
576 OS << "["; in outputPost()
577 outputDimensionsImpl(OS, Flags); in outputPost()
578 OS << "]"; in outputPost()
580 ElementType->outputPost(OS, Flags); in outputPost()
583 void SymbolNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
584 Name->output(OS, Flags); in output()
587 void FunctionSymbolNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
588 Signature->outputPre(OS, Flags); in output()
589 outputSpaceIfNecessary(OS); in output()
590 Name->output(OS, Flags); in output()
591 Signature->outputPost(OS, Flags); in output()
594 void VariableSymbolNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
612 OS << AccessSpec << ": "; in output()
614 OS << "static "; in output()
617 Type->outputPre(OS, Flags); in output()
618 outputSpaceIfNecessary(OS); in output()
620 Name->output(OS, Flags); in output()
622 Type->outputPost(OS, Flags); in output()
625 void CustomTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const { in outputPre() argument
626 Identifier->output(OS, Flags); in outputPre()
628 void CustomTypeNode::outputPost(OutputStream &OS, OutputFlags Flags) const {} in outputPost() argument
630 void QualifiedNameNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
631 Components->output(OS, Flags, "::"); in output()
634 void RttiBaseClassDescriptorNode::output(OutputStream &OS, in output() argument
636 OS << "`RTTI Base Class Descriptor at ("; in output()
637 OS << NVOffset << ", " << VBPtrOffset << ", " << VBTableOffset << ", " in output()
639 OS << ")'"; in output()
642 void LocalStaticGuardVariableNode::output(OutputStream &OS, in output() argument
644 Name->output(OS, Flags); in output()
647 void VcallThunkIdentifierNode::output(OutputStream &OS, in output() argument
649 OS << "`vcall'{" << OffsetInVTable << ", {flat}}"; in output()
652 void SpecialTableSymbolNode::output(OutputStream &OS, OutputFlags Flags) const { in output() argument
653 outputQualifiers(OS, Quals, false, true); in output()
654 Name->output(OS, Flags); in output()
656 OS << "{for `"; in output()
657 TargetName->output(OS, Flags); in output()
658 OS << "'}"; in output()