|
@@ -24,6 +24,7 @@
|
|
|
#include "llvm/IR/Instructions.h"
|
|
|
#include "llvm/IR/Constants.h"
|
|
|
#include "llvm/IR/IRBuilder.h"
|
|
|
+#include "dxc/Support/Global.h"
|
|
|
|
|
|
using namespace llvm;
|
|
|
using namespace hlsl;
|
|
@@ -128,17 +129,15 @@ void PrintDiagnosticHandler(const llvm::DiagnosticInfo &DI, void *Context) {
|
|
|
}
|
|
|
|
|
|
StringRef DemangleFunctionName(StringRef name) {
|
|
|
- size_t nameEnd = name.find_first_of("@");
|
|
|
- if (nameEnd == StringRef::npos) {
|
|
|
+ if (!name.startswith("\01?")) {
|
|
|
// Name don't mangled.
|
|
|
return name;
|
|
|
}
|
|
|
|
|
|
- size_t nameBegin = name.find_first_of("\01?");
|
|
|
- if (nameBegin != StringRef::npos)
|
|
|
- return name.substr(2, nameEnd - 2);
|
|
|
- else
|
|
|
- return name.substr(0, nameEnd);
|
|
|
+ size_t nameEnd = name.find_first_of("@");
|
|
|
+ DXASSERT(nameEnd != StringRef::npos, "else Name don't mangled but has \01?");
|
|
|
+
|
|
|
+ return name.substr(2, nameEnd - 2);
|
|
|
}
|
|
|
|
|
|
std::unique_ptr<llvm::Module> LoadModuleFromBitcode(llvm::MemoryBuffer *MB,
|