fix __builtin___clear_cache overrider fallout
authorAlexandre Oliva <oliva@adacore.com>
Thu, 3 Dec 2020 19:20:28 +0000 (16:20 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Thu, 3 Dec 2020 19:20:28 +0000 (16:20 -0300)
commit442b6fb7c09a39577261de90413cc4db366f1c5f
tree72fca0cbff303ab54fb255d15194067e0643adb2
parent44ac1ea0e2244343b798ff1ccc7048029cb9fa02
fix __builtin___clear_cache overrider fallout

Machines that had CLEAR_CACHE_INSN and that would thus issue calls to
__clear_cache with the default call expander, would fail on languages
that did not set up the __clear_cache builtin.  This patch arranges
for all languages to set up this builtin.

Machines or multilibs that had ptr_mode != Pmode, such as aarch64 with
-mabi=ilp32, would fail the RTL mode test of the arguments passed to
__clear_cache, because we'd insist on ptr_mode.  This patch arranges
for Pmode to be accepted as well.

for  gcc/ChangeLog

* tree.c (build_common_builtin_nodes): Declare
__builtin___clear_cache for all languages.
* builtins.c (maybe_emit_call_builtin___clear_cache): Accept
Pmode arguments.
gcc/builtins.c
gcc/tree.c