From 6500c6e4024ea5560e514baf7909ee74ac56d4ee Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Thu, 14 Feb 2013 04:11:07 +0100
Subject: [PATCH] 2.28.10: fix issue with deferred warnings for setf foo
 functions in CCL 1.9.

Issue found by Bill StClair.
---
 asdf.asd          |  2 +-
 header.lisp       |  2 +-
 lisp-build.lisp   | 15 +++++++++++++--
 upgrade.lisp      |  2 +-
 version.lisp-expr |  2 +-
 5 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/asdf.asd b/asdf.asd
index 198d145f..2c120991 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -74,7 +74,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.28.9" ;; to be automatically updated by make bump-version
+  :version "2.28.10" ;; to be automatically updated by make bump-version
   :depends-on ()
   #+asdf3 :encoding #+asdf3 :utf-8
   ;; For most purposes, asdf itself specially counts as a builtin system.
diff --git a/header.lisp b/header.lisp
index 9434d3d3..7aec6d6f 100644
--- a/header.lisp
+++ b/header.lisp
@@ -1,5 +1,5 @@
 ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
-;;; This is ASDF 2.28.9: Another System Definition Facility.
+;;; This is ASDF 2.28.10: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
diff --git a/lisp-build.lisp b/lisp-build.lisp
index 627e5b9b..6618a67c 100644
--- a/lisp-build.lisp
+++ b/lisp-build.lisp
@@ -211,19 +211,30 @@ Note that ASDF ALWAYS raises an error if it fails to create an output file when
         (destructuring-bind (&key filename start-pos end-pos source) source-note
           (ccl::make-source-note :filename filename :start-pos start-pos :end-pos end-pos
                                  :source (unreify-source-note source)))))
+    (defun reify-function-name (function-name)
+      (reify-simple-sexp
+       (if-let (setfed (gethash function-name ccl::%setf-function-name-inverses%))
+         `(setf ,setfed)
+         function-name)))
+    (defun unreify-function-name (function-name)
+      (let ((name (unreify-simple-sexp function-name)))
+        (if (and (consp name) (eq (first name) 'setf))
+            (let ((setfed (second name)))
+              (gethash setfed ccl::%setf-function-names%)
+              name))))
     (defun reify-deferred-warning (deferred-warning)
       (with-accessors ((warning-type ccl::compiler-warning-warning-type)
                        (args ccl::compiler-warning-args)
                        (source-note ccl:compiler-warning-source-note)
                        (function-name ccl:compiler-warning-function-name)) deferred-warning
-        (list :warning-type warning-type :function-name (reify-simple-sexp function-name)
+        (list :warning-type warning-type :function-name (reify-function-name function-name)
               :source-note (reify-source-note source-note) :args (reify-simple-sexp args))))
     (defun unreify-deferred-warning (reified-deferred-warning)
       (destructuring-bind (&key warning-type function-name source-note args)
           reified-deferred-warning
         (make-condition (or (cdr (ccl::assq warning-type ccl::*compiler-whining-conditions*))
                             'ccl::compiler-warning)
-                        :function-name (unreify-simple-sexp function-name)
+                        :function-name (unreify-function-name function-name)
                         :source-note (unreify-source-note source-note)
                         :warning-type warning-type
                         :args (unreify-simple-sexp args)))))
diff --git a/upgrade.lisp b/upgrade.lisp
index 5fc3b9d6..36bc0f0e 100644
--- a/upgrade.lisp
+++ b/upgrade.lisp
@@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO
          ;; "3.4.5.67" would be a development version in the official upstream of 3.4.5.
          ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
          ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
-         (asdf-version "2.28.9")
+         (asdf-version "2.28.10")
          (existing-version (asdf-version)))
     (setf *asdf-version* asdf-version)
     (when (and existing-version (not (equal asdf-version existing-version)))
diff --git a/version.lisp-expr b/version.lisp-expr
index ade6f928..69a1e9e7 100644
--- a/version.lisp-expr
+++ b/version.lisp-expr
@@ -1 +1 @@
-"2.28.9"
+"2.28.10"
-- 
GitLab