[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