OSDN Git Service

* rtl-traverse.scm (/rtx-canon): Issue better error message for
authordevans <devans>
Mon, 2 Nov 2009 05:58:40 +0000 (05:58 +0000)
committerdevans <devans>
Mon, 2 Nov 2009 05:58:40 +0000 (05:58 +0000)
invalid rtx function names.

cgen/ChangeLog
cgen/rtl-traverse.scm

index f2f407a..fd5b18a 100644 (file)
@@ -1,3 +1,8 @@
+2009-11-01  Doug Evans  <dje@sebabeach.org>
+
+       * rtl-traverse.scm (/rtx-canon): Issue better error message for
+       invalid rtx function names.
+
 2009-10-28  Doug Evans  <dje@sebabeach.org>
 
        * cos.scm (object-assign!): New function.
index 958d4fb..f2741f1 100644 (file)
   (let ((result
         (if (pair? expr) ;; pair? -> cheap non-null-list?
 
-            (let ((rtx-obj (rtx-lookup (car expr))))
-              (if rtx-obj
-                  (/rtx-canon-expr rtx-obj mode (car expr) (cdr expr)
-                                   parent-expr op-num cstate env depth)
-                  (let ((rtx-obj (/rtx-macro-lookup (car expr))))
-                    (if rtx-obj
-                        (/rtx-canon (/rtx-macro-expand expr rtx-evaluator)
-                                    expected mode parent-expr op-num cstate env (+ depth 1))
-                        (/rtx-canon-error cstate "unknown rtx function"
-                                          expr parent-expr op-num)))))
+            (begin
+              (if (not (symbol? (car expr)))
+                  (/rtx-canon-error cstate "invalid rtx function name"
+                                    expr parent-expr op-num))
+              (let ((rtx-obj (rtx-lookup (car expr))))
+                (if rtx-obj
+                    (/rtx-canon-expr rtx-obj mode (car expr) (cdr expr)
+                                     parent-expr op-num cstate env depth)
+                    (let ((rtx-obj (/rtx-macro-lookup (car expr))))
+                      (if rtx-obj
+                          (/rtx-canon (/rtx-macro-expand expr rtx-evaluator)
+                                      expected mode parent-expr op-num cstate env (+ depth 1))
+                          (/rtx-canon-error cstate "unknown rtx function"
+                                            expr parent-expr op-num))))))
 
             ;; EXPR is not a list.
             ;; See if it's an operand shortcut.