Fix bug: Use same algorithm to generate export var list.
diff --git a/lib/ExecutionEngine/Compiler.cpp b/lib/ExecutionEngine/Compiler.cpp
index b89c0ce..9fa6d4d 100644
--- a/lib/ExecutionEngine/Compiler.cpp
+++ b/lib/ExecutionEngine/Compiler.cpp
@@ -608,19 +608,22 @@
 
     for (int i = 0, e = ExportVarMetadata->getNumOperands(); i != e; i++) {
       llvm::MDNode *ExportVar = ExportVarMetadata->getOperand(i);
-      if (ExportVar == NULL || ExportVar->getNumOperands() <= 1) {
-        continue;
+      if (ExportVar != NULL && ExportVar->getNumOperands() > 1) {
+        llvm::Value *ExportVarNameMDS = ExportVar->getOperand(0);
+        if (ExportVarNameMDS->getValueID() == llvm::Value::MDStringVal) {
+          llvm::StringRef ExportVarName =
+            static_cast<llvm::MDString*>(ExportVarNameMDS)->getString();
+
+          varList.push_back(
+            rsloaderGetSymbolAddress(mRSExecutable,
+                                     ExportVarName.str().c_str()));
+          LOGD("MC/ Exported Var: %s @ %p\n", ExportVarName.str().c_str(),
+               varList.back());
+          continue;
+        }
       }
 
-      llvm::Value *ExportVarNameMDS = ExportVar->getOperand(0);
-      if (ExportVarNameMDS->getValueID() == llvm::Value::MDStringVal) {
-        llvm::StringRef ExportVarName =
-          static_cast<llvm::MDString*>(ExportVarNameMDS)->getString();
-
-        varList.push_back(
-          rsloaderGetSymbolAddress(mRSExecutable,
-                                   ExportVarName.str().c_str()));
-      }
+      varList.push_back(NULL);
     }
   }