fixed error handling for native C modules
diff --git a/src/packages/xdc/rov/Program.xs b/src/packages/xdc/rov/Program.xs
index 8ef6cfd..af441cd 100644
--- a/src/packages/xdc/rov/Program.xs
+++ b/src/packages/xdc/rov/Program.xs
@@ -369,6 +369,25 @@
 
         /* Add the view to the module's viewMap */
         modDesc.viewMap[tabName] = dataArr;
+
+        /*
+         * Check if there were any errors reported on any fields.
+         * Add any errors to the status table.
+         */
+        for (var i = 0; i < dataArr.length; i++) {
+            var view = dataArr[i];
+            for (var j = 0; j < view.elements.length; j++) {
+                for (var p in view.elements[j]) {
+                    if (view.elements[j].$status[p]) {
+                        /* Record status in the status table for reference */
+                        addStatusEntry(modName, tabName, view.label, p,
+                                       view.elements[j].$status[p]);
+
+                        error = true;
+                    }
+                }
+            }
+        }
     }
     /*
      * Otherwise, if the module does have instances, call the view function
@@ -510,9 +529,21 @@
     /* Add the view to the module's viewMap */
     modDesc.viewMap[tabName] = modDataView;
 
+    var error = false;
+
     /* TODO - check for any errors and throw exception */
+    for (var i = 0; i < modDataView.elements.length; i++) {
+        var view = modDataView.elements[i];
+        for (var p in view) {
+            if (view.$status[p]) {
+                /* Record status in the status table for reference */
+                addStatusEntry(modName, tabName, "N/A", p, view.$status[p]);
+                error = true;
+            }
+        }
+    }
     /*
-    if (error) {
+    if (throwScanErrors && error && !tabName.match("Scan for")) {
         throw (new Error("ROV detected errors in scan of '" + tabName +
                          "' tab for module " + modName + "."));
     }