From b86e5c9fec9d9ea0f9c70d9b20456680607399b3 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Mon, 28 Oct 2019 17:24:07 -0700 Subject: [PATCH] Clang can also use C call cache Previously this was restricted to only gcc because of the GCC_VERSION_SINCE check (which explicitly excludes clang). GCC 3.3.0 is quite old so I feel relatively safe assuming that all reasonable versions of clang support this. --- internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal.h b/internal.h index 53091e25f8..c296a99b6e 100644 --- a/internal.h +++ b/internal.h @@ -2388,7 +2388,7 @@ struct rb_call_data { struct rb_call_info ci; }; VALUE rb_funcallv_with_cc(struct rb_call_data*, VALUE, ID, int, const VALUE*) -#if GCC_VERSION_SINCE(3, 3, 0) && defined(__OPTIMIZE__) +#if (defined(__clang__) || GCC_VERSION_SINCE(3, 3, 0)) && defined(__OPTIMIZE__) __attribute__((__visibility__("default"), __nonnull__(1))) # define rb_funcallv(recv, mid, argc, argv) \ __extension__({ \