浏览代码

Refine DemangleFunctionName.

Xiang Li 7 年之前
父节点
当前提交
aed4f7a7b0
共有 1 个文件被更改,包括 6 次插入7 次删除
  1. 6 7
      lib/HLSL/DxilUtil.cpp

+ 6 - 7
lib/HLSL/DxilUtil.cpp

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