diff --git a/compiler/knownfun.lisp b/compiler/knownfun.lisp
index df58457a6cea4373e225ad63c190f9e59c5cbb1e..3fdcbd63f59101c8b3c76a255f521b2cd06df7c8 100644
--- a/compiler/knownfun.lisp
+++ b/compiler/knownfun.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/knownfun.lisp,v 1.12 1991/10/08 15:49:28 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/knownfun.lisp,v 1.13 1991/11/12 16:11:22 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -225,6 +225,19 @@
     (when cont (continuation-type cont))))
 
 
+;;; RESULT-TYPE-FLOAT-CONTAGION  --  Interface
+;;;
+;;;    Derive the result type according to the float contagion rules, but
+;;; always return a float.  This is used for irrational functions that preserve
+;;; realness of their arguments.
+;;;
+(defun result-type-float-contagion (call)
+  (declare (type combination call))
+  (reduce #'numeric-contagion (combination-args call)
+	  :key #'continuation-type
+	  :initial-value (specifier-type 'single-float)))
+
+
 ;;; SEQUENCE-RESULT-NTH-ARG  --  Internal
 ;;;
 ;;;    Return a closure usable as a derive-type method for accessing the N'th