about summary refs log tree commit diff stats
path: root/020run.cc
diff options
context:
space:
mode:
Diffstat (limited to '020run.cc')
-rw-r--r--020run.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/020run.cc b/020run.cc
index 746bc9cd..de957dbb 100644
--- a/020run.cc
+++ b/020run.cc
@@ -329,6 +329,16 @@ int size_of(const reagent& r) {
 }
 int size_of(const type_tree* type) {
   if (!type) return 0;
+  if (type->atom) {
+    if (type->value == -1) return 1;  // error value, but we'll raise it elsewhere
+    if (type->value == 0) return 1;
+    // End size_of(type) Atom Special-cases
+  }
+  else {
+    assert(type->left->atom);
+    if (type->left->name == "address") return 1;
+    // End size_of(type) Non-atom Special-cases
+  }
   // End size_of(type) Special-cases
   return 1;
 }