Control stack exhaustion during compile of code with type error

Bug #1748007 reported by Paul F. Dietz on 2018-02-07
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Undecided
Unassigned

Bug Description

(compile
 nil
 '(lambda (f g n)
   (funcall
    f
    (funcall g (* 2 n))
    (let ((p (make-array n :element-type 'double-float)))
      (dotimes (i n)
        (setf (aref p i)
              (ignore-errors i) ;; this is type incorrect, since i is not a DOUBLE-FLOAT
              ))))))

==>

Control stack exhausted (no more space for function call frames).
This is probably due to heavily nested or infinitely recursive function
calls, or a tail call that SBCL cannot or has not optimized away.

PROCEED WITH CAUTION.
   [Condition of type SB-KERNEL::CONTROL-STACK-EXHAUSTED]

Restarts:
 0: [ABORT] Exit debugger, returning to top level.

Backtrace:
  0: (SB-KERNEL::CONTROL-STACK-EXHAUSTED-ERROR)
  1: ("foreign function: call_into_lisp")
  2: ("foreign function: post_signal_tramp")
  3: ((LABELS SB-C::UNLINK :IN SB-C::LTN-ANALYZE-CAST) 0)
  4: ((LABELS SB-C::UNLINK :IN SB-C::LTN-ANALYZE-CAST) #<SB-C::LVAR 1 {1004C1D693}>)
  5: ((LABELS SB-C::UNLINK :IN SB-C::LTN-ANALYZE-CAST) #<SB-C::LVAR 1 {1004C1D693}>)
  6: ((LABELS SB-C::UNLINK :IN SB-C::LTN-ANALYZE-CAST) #<SB-C::LVAR 1 {1004C1D693}>)
[...]

Stas Boukarev (stassats) wrote :

In a5df756473dea525340882bd2b21dbcbba4851c2.

Changed in sbcl:
status: New → Fix Committed
Stas Boukarev (stassats) on 2018-02-28
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers