From 5c2c2cfc9918bb43225159e67a851e196e17759a Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Fri, 26 Aug 2022 20:32:53 -0400 Subject: DownstreamCompileOptions using POD types (#2381) * #include an absolute path didn't work - because paths were taken to always be relative. * Make DownstreamCompileOptions use POD types. * CharSliceAllocator -> SliceAllocator Added SliceConverter CharSliceCaster -> SliceCaster * First attempt at zero terminating around blobs. * Fix clang warning. * Add SlangTerminatedChars Make Blob implementations support it. Make most blobs 'terminated'. * Fix bug setting up sourceFiles for CommandLineDownstreamCompiler. * Traffic in TerminatedCharSlice for sourceFiles. Use ArtifactDesc to generate temporary file names for source. * Fix typo in testing for shared library/C++. --- .../slang-artifact-diagnostic-util.cpp | 29 +++------------------- 1 file changed, 3 insertions(+), 26 deletions(-) (limited to 'source/compiler-core/slang-artifact-diagnostic-util.cpp') diff --git a/source/compiler-core/slang-artifact-diagnostic-util.cpp b/source/compiler-core/slang-artifact-diagnostic-util.cpp index 0f6b70ab4..3a2c64dce 100644 --- a/source/compiler-core/slang-artifact-diagnostic-util.cpp +++ b/source/compiler-core/slang-artifact-diagnostic-util.cpp @@ -6,29 +6,6 @@ namespace Slang { -/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! CharSliceAllocator !!!!!!!!!!!!!!!!!!!!!!!!!!! */ - -TerminatedCharSlice CharSliceAllocator::allocate(const char* in) -{ - const size_t length = ::strlen(in); - auto dst = m_arena.allocateString(in, length); - return TerminatedCharSlice(dst, length); -} - -TerminatedCharSlice CharSliceAllocator::allocate(const UnownedStringSlice& slice) -{ - const auto length = slice.getLength(); - auto dst = m_arena.allocateString(slice.begin(), length); - return TerminatedCharSlice(dst, length); -} - -TerminatedCharSlice CharSliceAllocator::allocate(const Slice& slice) -{ - const auto count = slice.count; - auto dst = m_arena.allocateString(slice.begin(), count); - return TerminatedCharSlice(dst, count); -} - /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ArtifactDiagnosticsUtil !!!!!!!!!!!!!!!!!!!!!!!!!!! */ /* static */UnownedStringSlice ArtifactDiagnosticUtil::getSeverityText(Severity severity) @@ -42,7 +19,7 @@ TerminatedCharSlice CharSliceAllocator::allocate(const Slice& slice) } } -/* static */SlangResult ArtifactDiagnosticUtil::splitPathLocation(CharSliceAllocator& allocator, const UnownedStringSlice& pathLocation, ArtifactDiagnostic& outDiagnostic) +/* static */SlangResult ArtifactDiagnosticUtil::splitPathLocation(SliceAllocator& allocator, const UnownedStringSlice& pathLocation, ArtifactDiagnostic& outDiagnostic) { const Index lineStartIndex = pathLocation.lastIndexOf('('); if (lineStartIndex >= 0) @@ -100,7 +77,7 @@ TerminatedCharSlice CharSliceAllocator::allocate(const Slice& slice) return SLANG_OK; } -/* static */SlangResult ArtifactDiagnosticUtil::parseColonDelimitedDiagnostics(CharSliceAllocator& allocator, const UnownedStringSlice& inText, Int pathIndex, LineParser lineParser, IArtifactDiagnostics* diagnostics) +/* static */SlangResult ArtifactDiagnosticUtil::parseColonDelimitedDiagnostics(SliceAllocator& allocator, const UnownedStringSlice& inText, Int pathIndex, LineParser lineParser, IArtifactDiagnostics* diagnostics) { List splitLine; @@ -150,7 +127,7 @@ TerminatedCharSlice CharSliceAllocator::allocate(const Slice& slice) String text(in); diagnostic.severity = ArtifactDiagnostic::Severity::Info; - diagnostic.text = CharSliceCaster::asTerminatedCharSlice(text); + diagnostic.text = SliceCaster::asTerminatedCharSlice(text); diagnostics->add(diagnostic); } -- cgit v1.2.3