[llvm-commits] [poolalloc] r133974 - /poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.cpp

Arushi Aggarwal aggarwa4 at illinois.edu
Mon Jun 27 17:19:33 PDT 2011


Author: aggarwa4
Date: Mon Jun 27 19:19:33 2011
New Revision: 133974

URL: http://llvm.org/viewvc/llvm-project?rev=133974&view=rev
Log:
For the cases of SelectInst/PHINode, where in some
cases metadata might be NULL(if value came from SSA variable),
set type, to ttype of SSA variable

Modified:
    poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.cpp

Modified: poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.cpp?rev=133974&r1=133973&r2=133974&view=diff
==============================================================================
--- poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.cpp (original)
+++ poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.cpp Mon Jun 27 19:19:33 2011
@@ -69,7 +69,7 @@
   void trackInitInst(void *ptr, uint64_t size, uint32_t tag) ;
   void trackUnInitInst(void *ptr, uint64_t size, uint32_t tag) ;
   void copyTypeInfo(void *dstptr, void *srcptr, uint64_t size, uint32_t tag) ;
-  void setTypeInfo(void *dstptr, TypeTagTy *metadata, uint64_t size, uint32_t tag) ;
+  void setTypeInfo(void *dstptr, TypeTagTy *metadata, uint64_t size, TypeTagTy type, uint32_t tag) ;
   void setVAInfo(void *va_list, uint64_t totalCount, TypeTagTy *metadata_ptr, uint32_t tag) ;
   void copyVAInfo(void *va_list_dst, void *va_list_src, uint32_t tag) ;
   void trackctype(void *ptr, uint32_t tag) ;
@@ -225,8 +225,10 @@
  */
 void 
 checkType(TypeTagTy typeNumber, uint64_t size, TypeTagTy *metadata, void *ptr, uint32_t tag) {
-  if(metadata == NULL)
+  if(metadata == NULL) {
+    assert(ptr == NULL);
     return;
+  }
   /* Check if this an initialized but untyped memory.*/
   if (typeNumber != metadata[0]) {
     if (metadata[0] != 0xFF) {
@@ -296,7 +298,11 @@
 /**
  * Copy size bytes of metadata from metadata to dest ptr
  */
-void setTypeInfo(void *dstptr, TypeTagTy *metadata, uint64_t size, uint32_t tag) {
+void setTypeInfo(void *dstptr, TypeTagTy *metadata, uint64_t size, TypeTagTy type, uint32_t tag) {
+  if(metadata == NULL) {
+    trackStoreInst(dstptr, type, size, tag);
+    return;
+  }
   uintptr_t d = maskAddress(dstptr);
   memcpy(&shadow_begin[d], metadata, size);
 #if DEBUG





More information about the llvm-commits mailing list