From d1c2fc3a49ce633873df191c8d9251cb8419fce5 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 16 Feb 2023 12:52:20 +0000 Subject: [PATCH] Correctly print the type for pointer-to-function * We implicitly treat function types as just function types, llvm makes them into pointer-to-function on load. --- renderdoc/driver/shaders/dxil/dxil_disassemble.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp index 772a325b8..f1e9a86b8 100644 --- a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp @@ -1505,10 +1505,19 @@ rdcstr Type::toString() const } case Vector: return StringFormat::Fmt("<%u x %s>", elemCount, inner->toString().c_str()); case Pointer: + { + if(inner->type == Type::Function) + { + if(addrSpace == Type::PointerAddrSpace::Default) + return inner->toString(); + else + return StringFormat::Fmt("%s addrspace(%d)", inner->toString().c_str(), addrSpace); + } if(addrSpace == Type::PointerAddrSpace::Default) return StringFormat::Fmt("%s*", inner->toString().c_str()); else return StringFormat::Fmt("%s addrspace(%d)*", inner->toString().c_str(), addrSpace); + } case Array: return StringFormat::Fmt("[%u x %s]", elemCount, inner->toString().c_str()); case Function: return declFunction(rdcstr(), {}, NULL) + "*"; case Struct: