Control stack exhaustion during compile of code with type error

Bug #1748007 reported by Paul F. Dietz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
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}>)
[...]

Revision history for this message
Stas Boukarev (stassats) wrote :

In a5df756473dea525340882bd2b21dbcbba4851c2.

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.