Comment 7 for bug 1956852

Revision history for this message
alexis rivera (riveraah) wrote :

Going back to the compilation logs of ECL 21.2.1. If I am reading the log correctly, the error is in the file src/compiler/generic/vm-fndb.lisp on one of the mod function calls. The function is being called with incorrect inputs. There are a small number of calls to the mod function, any suggestions on how to narrow the list? Or am I way off in my intepretation of the logs?

1.
(defknown layout-eq ((or instance function) t (mod 16)) boolean (flushable))

2.
(defknown allocate-vector (#+ubsan boolean
                           word index
                           ;; The number of words is later converted
                           ;; to bytes, make sure it fits.
                           (and index
                                (mod #.(- (expt 2
                                                (- sb-vm:n-word-bits
                                                   sb-vm:word-shift
                                                   ;; all the allocation routines expect a signed word
                                                   1))
                                          ;; The size is double-word aligned, which is done by adding
                                          ;; (1- (/ sb-vm:n-word-bits 2)) and then masking.
                                          ;; Make sure addition doesn't overflow.
                                          3))))
    (simple-array * (*))
    (flushable movable))

3.
(defknown make-array-header ((unsigned-byte 8) (mod #.array-rank-limit)) array
  (flushable movable))

4.
(defknown (%add-with-carry %subtract-with-borrow)
          (bignum-element-type bignum-element-type (mod 2))
  (values bignum-element-type (mod 2))
  (foldable flushable movable always-translatable))

5.
(defknown (%ashl %ashr %digit-logical-shift-right)
          (bignum-element-type (mod #.sb-vm:n-word-bits)) bignum-element-type
  (foldable flushable movable always-translatable))