Check that a function starts with llvm. before using GET_FUNCTION_RECOGNIZER.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 22 May 2013 14:57:42 +0000 (14:57 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 22 May 2013 14:57:42 +0000 (14:57 +0000)
Fixes a use of uninitialized memory found by asan and valgind.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182480 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp
lib/Target/R600/AMDILIntrinsicInfo.cpp

index 8d262a01e706759bb6469c24357bc97eb50e9970..0d3f7d8cfe943c3d76e7ad7c3a151ea0520d982d 100644 (file)
@@ -58,9 +58,8 @@ std::string MBlazeIntrinsicInfo::getName(unsigned IntrID, Type **Tys,
 
 unsigned MBlazeIntrinsicInfo::
 lookupName(const char *Name, unsigned Len) const {
-  if (Len < 5 || Name[4] != '.' || Name[0] != 'l' || Name[1] != 'l'
-      || Name[2] != 'v' || Name[3] != 'm')
-    return 0;  // All intrinsics start with 'llvm.'
+  if (!StringRef(Name, Len).startswith("llvm."))
+    return 0; // All intrinsics start with 'llvm.'
 
 #define GET_FUNCTION_RECOGNIZER
 #include "MBlazeGenIntrinsics.inc"
index 4ddb057d80a7900a7b332217c3b08613ac38508a..b92e528ff714453e3a08774b919c4f9e7fc549a2 100644 (file)
@@ -50,6 +50,9 @@ AMDGPUIntrinsicInfo::getName(unsigned int IntrID, Type **Tys,
 
 unsigned int
 AMDGPUIntrinsicInfo::lookupName(const char *Name, unsigned int Len) const  {
+  if (!StringRef(Name, Len).startswith("llvm."))
+    return 0; // All intrinsics start with 'llvm.'
+
 #define GET_FUNCTION_RECOGNIZER
 #include "AMDGPUGenIntrinsics.inc"
 #undef GET_FUNCTION_RECOGNIZER