summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir.cpp')
-rw-r--r--source/slang/slang-ir.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp
index 92e51fe3b..6d1d76afc 100644
--- a/source/slang/slang-ir.cpp
+++ b/source/slang/slang-ir.cpp
@@ -8950,24 +8950,33 @@ void IRInst::addBlock(IRBlock* block)
block->insertAtEnd(this);
}
-void IRInst::dump()
+void IRInst::dump(String& outStr)
{
+ StringBuilder sb;
+
if (auto intLit = as<IRIntLit>(this))
{
- std::cout << intLit->getValue() << std::endl;
+ sb << intLit->getValue();
}
else if (auto stringLit = as<IRStringLit>(this))
{
- std::cout << stringLit->getStringSlice().begin() << std::endl;
+ sb << stringLit->getStringSlice();
}
else
{
- StringBuilder sb;
IRDumpOptions options;
StringWriter writer(&sb, Slang::WriterFlag::AutoFlush);
dumpIR(this, options, nullptr, &writer);
- std::cout << sb.toString().begin() << std::endl;
}
+
+ outStr = sb.toString();
+}
+
+void IRInst::dump()
+{
+ String s;
+ dump(s);
+ std::cout << s.begin() << std::endl;
}
} // namespace Slang