[llvm-commits] [poolalloc] r133914 - /poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.cpp
Arushi Aggarwal
aggarwa4 at illinois.edu
Mon Jun 27 10:11:55 PDT 2011
Author: aggarwa4
Date: Mon Jun 27 12:11:55 2011
New Revision: 133914
URL: http://llvm.org/viewvc/llvm-project?rev=133914&view=rev
Log:
1. Metadata can be NULL in checkType, for say select Inst,
for values that do not need a check. Ignore the check in such
a case.
2. Do not allow reading from middle of an object. We must first
track integer/float types for implementing this.
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=133914&r1=133913&r2=133914&view=diff
==============================================================================
--- poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.cpp (original)
+++ poolalloc/trunk/runtime/DynamicTypeChecks/TypeRuntime.cpp Mon Jun 27 12:11:55 2011
@@ -53,7 +53,6 @@
extern char* typeNames[];
extern "C" {
- void trackInitInst(void *ptr, uint64_t size, uint32_t tag);
void shadowInit();
void trackArgvType(int argc, char **argv) ;
void trackEnvpType(char **envp) ;
@@ -226,10 +225,16 @@
*/
void
checkType(TypeTagTy typeNumber, uint64_t size, TypeTagTy *metadata, void *ptr, uint32_t tag) {
+ if(metadata == NULL)
+ return;
/* Check if this an initialized but untyped memory.*/
- if (typeNumber != metadata[0] && metadata[0] != 0xFE) {
+ if (typeNumber != metadata[0]) {
if (metadata[0] != 0xFF) {
- printf("Type mismatch(%u): %p expecting %s, found %s!\n", tag, ptr, typeNames[typeNumber], typeNames[metadata[0]]);
+ if(metadata[0] == 0xFE) {
+ printf("Type alignment mismatch(%u): %p expecting %s, found MOb!\n", tag, ptr, typeNames[typeNumber]);
+ } else {
+ printf("Type mismatch(%u): %p expecting %s, found %s!\n", tag, ptr, typeNames[typeNumber], typeNames[metadata[0]]);
+ }
return;
} else {
/* If so, set type to the type being read.
More information about the llvm-commits
mailing list