failed AVER: (EQL (SB-C::BLOCK-COMPONENT BLOCK) SB-C:COMPONENT)

Bug #1738264 reported by Paul F. Dietz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Undecided
Unassigned

Bug Description

Failed AVER in code with invalid function calls. This is lower priority because it's invalid, but the invalid calls should (in SBCL practice) produce warnings rather than this result.

(defun f42 ()
  (declare (optimize (safety 3)))
  (flet ((%f (&optional x) 2))
    (%f)
    ;; Two of the %f calls are erroneous, with an extra argument
    (flet ((%f6 (&key (k (%f (%f -1 (%f -2 -3))))) 0))
      5)))

===>

failed AVER:
    (EQL (SB-C::BLOCK-COMPONENT BLOCK) SB-C:COMPONENT)
[...]
Backtrace:
  0: (SB-INT:BUG "~@<failed AVER: ~2I~_~S~:>" (EQL (SB-C::BLOCK-COMPONENT BLOCK) SB-C:COMPONENT))
  1: (SB-IMPL::%FAILED-AVER (EQL (SB-C::BLOCK-COMPONENT BLOCK) SB-C:COMPONENT))
  2: (SB-C::COMPILE-COMPONENT #<SB-C:COMPONENT :NAME (FLET %F :IN F42) :REANALYZE T {1005336513}>)
[...]

Revision history for this message
Paul F. Dietz (paul-f-dietz) wrote :

Lisp is allowed to signal an error at compile time, however in this case (too many arguments) the error is specified to be of type PROGRAM-ERROR, and SB-INT:BUG is not a subclass of PROGRAM-ERROR.

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

In 3c3c4aca05ca0e09557b9a1ecf8bff2b77a6592d

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.