title: The find-lisp-object-file-name return wrong value
body: <p>I'm using Emacs 26.1, and recently I found the <code>find-lisp-object-file-name</code> always return <code>nil</code> when I call it in following ways:</p>
  
  <pre><code>(find-lisp-object-file-name 'call-process nil)
  ;;=&gt; nil
  
  (find-lisp-object-file-name 'call-process 'defun)
  ;;=&gt; nil
  </code></pre>
  
  <p>However, when I use the <code>describe-function</code> to show information about <code>call-process</code>, it shows the <code>call-process</code> is from "C source code".  It looks like the function <code>find-lisp-object-file-name</code> is not reliable.  </p>
  
  <p>More examples:</p>
  
  <pre><code>(find-lisp-object-file-name 'cond nil)
  ;;=&gt; nil *WRONG* 
  
  (find-lisp-object-file-name 'cdr nil)
  ;;=&gt; nil  *WRONG*
  
  (find-lisp-object-file-name 'user-full-name nil)
  ;;=&gt; "src/editfns.c"   *CORRECT*
  </code></pre>
  
  <p>The question: how can I <strong>always</strong> get the correct file name information of a symbol?</p>