Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to master as r11-877-g6d36cc21b69d952967a4df6653954f572a101796.

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.26.2

Reply via email to