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

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

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.

Stas Boukarev (stassats) wrote :

In 3c3c4aca05ca0e09557b9a1ecf8bff2b77a6592d

Changed in sbcl:
status: New → Fix Committed
Stas Boukarev (stassats) on 2017-12-29
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