[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