The local function definition does not shadow the global macro
definition, so the following fails.
(defmacro foo () die)
(defun test ()
(flet ((foo () 1))
The problem is in search_macro() which cannot easily differentiate the
shadowing case from the absent case.
Since this is only used in two places and the code is trivial I have
inlined the C code by hand, adding the extra test which allows it to
You may wish to restructure the code.