From 6d36cc21b69d952967a4df6653954f572a101796 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 3 Jun 2020 08:59:23 -0400 Subject: [PATCH] jit: implement BT_CONST_VOLATILE_PTR [PR 95306] gcc/jit/ChangeLog: PR jit/95306 * jit-builtins.c (builtins_manager::make_primitive_type): Implement BT_CONST_VOLATILE_PTR. gcc/testsuite/ChangeLog: PR jit/95306 * jit.dg/test-pr95306-builtin-types.c (create_code): Add test of getting __atomic_load. --- gcc/jit/jit-builtins.c | 4 +++- gcc/testsuite/jit.dg/test-pr95306-builtin-types.c | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/jit/jit-builtins.c b/gcc/jit/jit-builtins.c index 4842ff3ea96..56a79b4e249 100644 --- a/gcc/jit/jit-builtins.c +++ b/gcc/jit/jit-builtins.c @@ -513,7 +513,9 @@ builtins_manager::make_primitive_type (enum jit_builtin_type type_id) case BT_VOLATILE_PTR: return (m_ctxt->get_type (GCC_JIT_TYPE_VOID)->get_volatile () ->get_pointer ()); - // case BT_CONST_VOLATILE_PTR: + case BT_CONST_VOLATILE_PTR: + return (m_ctxt->get_type (GCC_JIT_TYPE_VOID)->get_const () + ->get_volatile ()->get_pointer ()); // case BT_PTRMODE: case BT_INT_PTR: return m_ctxt->get_type (GCC_JIT_TYPE_INT)->get_pointer (); diff --git a/gcc/testsuite/jit.dg/test-pr95306-builtin-types.c b/gcc/testsuite/jit.dg/test-pr95306-builtin-types.c index 6c3b087ab98..960163ed7d4 100644 --- a/gcc/testsuite/jit.dg/test-pr95306-builtin-types.c +++ b/gcc/testsuite/jit.dg/test-pr95306-builtin-types.c @@ -8,6 +8,7 @@ create_code (gcc_jit_context *ctxt, void *user_data) #define CHECK_BUILTIN(NAME) \ CHECK_NON_NULL (gcc_jit_context_get_builtin_function (ctxt, NAME)); + CHECK_BUILTIN ("__atomic_load"); CHECK_BUILTIN ("__builtin_memcpy"); CHECK_BUILTIN ("__builtin_sadd_overflow"); -- 2.30.2