Merge remote-tracking branch 'origin/xdccore-J-dr' into master_ggentree
diff --git a/src/packages/xdc/rov/Model.xs b/src/packages/xdc/rov/Model.xs
index 63f9091..eef5525 100644
--- a/src/packages/xdc/rov/Model.xs
+++ b/src/packages/xdc/rov/Model.xs
@@ -427,6 +427,7 @@
switch (elfTarget.FP) {
case 3:
targ.FP = "fpv3";
+ break;
case 4:
targ.FP = "fpv3-sp-d16";
break;
@@ -441,6 +442,12 @@
break;
}
}
+ if (elfTarget.shortEnums == 1) {
+ targ.model.shortEnums = true;
+ }
+ else if (elfTarget.shortEnums == 2 || elfTarget.shortEnums == 3) {
+ targ.model.shortEnums = false;
+ }
}
var stdTypes = recap.stdTypes[elfTarget.machine];
if (stdTypes == null) {
@@ -857,6 +864,18 @@
else if (File.exists(fPath + "syscfg/" + sysconfigFile)) {
locatedFile = fPath + "syscfg/" + sysconfigFile;
}
+ else if (File.exists(fPath + "/../../" + sysconfigFile)) {
+ locatedFile = fPath + "/../../" + sysconfigFile;
+ }
+ else if (File.exists(fPath + "/../../syscfg/" + sysconfigFile)) {
+ locatedFile = fPath + "/../../syscfg/" + sysconfigFile;
+ }
+ else if (File.exists(fPath + "/../" + sysconfigFile)) {
+ locatedFile = fPath + "/../" + sysconfigFile;
+ }
+ else if (File.exists(fPath + "/../syscfg/" + sysconfigFile)) {
+ locatedFile = fPath + "/../syscfg/" + sysconfigFile;
+ }
if (locatedFile != "") {
return (String(File.getCanonicalPath(locatedFile)));
}
diff --git a/src/packages/xdc/rov/Program.xs b/src/packages/xdc/rov/Program.xs
index 225e593..42be7b6 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 + "."));
}