diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
index e41408b..369be29 100644
--- a/gcc/jit/jit-playback.cc
+++ b/gcc/jit/jit-playback.cc
@@ -542,7 +542,8 @@
 playback::context::
 new_param (location *loc,
 	   type *type,
-	   const char *name)
+	   const char *name,
+	   bool is_tree_addressable)
 {
   gcc_assert (type);
   gcc_assert (name);
@@ -551,6 +552,8 @@
   if (loc)
     set_tree_location (inner, loc);
 
+  if (is_tree_addressable) TREE_ADDRESSABLE(inner) = 1;
+
   return new param (this, inner);
 }
 
diff --git a/gcc/jit/jit-playback.h b/gcc/jit/jit-playback.h
index 6f29713..3b55d65 100644
--- a/gcc/jit/jit-playback.h
+++ b/gcc/jit/jit-playback.h
@@ -116,7 +116,8 @@
   param *
   new_param (location *loc,
 	     type *type,
-	     const char *name);
+	     const char *name,
+	     bool is_tree_addressable);
 
   function *
   new_function (location *loc,
diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc
index 0966893..041015e 100644
--- a/gcc/jit/jit-recording.cc
+++ b/gcc/jit/jit-recording.cc
@@ -4444,7 +4444,8 @@
 {
   set_playback_obj (r->new_param (playback_location (r, m_loc),
 				  m_type->playback_type (),
-				  m_name->c_str ()));
+				  m_name->c_str (),
+				  m_tree_addressable));
 }
 
 /* Implementation of recording::rvalue::access_as_rvalue for params.
@@ -4458,6 +4459,12 @@
 			   r.get_identifier (this));
 }
 
+void
+recording::param::set_tree_addressable ()
+{
+  m_tree_addressable = true;
+}
+
 /* Implementation of recording::lvalue::access_as_lvalue for params.
    Instances of param need to be wrapped in a gcc_jit_param_as_lvalue
    upcast call.  */
diff --git a/gcc/jit/jit-recording.h b/gcc/jit/jit-recording.h
index 8f2e2a8..439ef16 100644
--- a/gcc/jit/jit-recording.h
+++ b/gcc/jit/jit-recording.h
@@ -1533,7 +1533,8 @@
 	 type *type,
 	 string *name)
     : lvalue (ctxt, loc, type),
-    m_name (name) {}
+    m_name (name),
+    m_tree_addressable (false) {}
 
   lvalue *
   as_lvalue () { return this; }
@@ -1558,6 +1559,8 @@
     m_name = m_ctxt->new_string (new_name);
   }
 
+  void set_tree_addressable();
+
 private:
   string * make_debug_string () final override { return m_name; }
   void write_reproducer (reproducer &r) final override;
@@ -1568,6 +1571,7 @@
 
 private:
   string *m_name;
+  bool m_tree_addressable;
 };
 
 class function : public memento
diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc
index 1919331..61fadef 100644
--- a/gcc/jit/libgccjit.cc
+++ b/gcc/jit/libgccjit.cc
@@ -4445,6 +4445,13 @@
   type->set_tree_addressable();
 }
 
+void
+gcc_jit_param_set_tree_addressable(gcc_jit_param *param)
+{
+  RETURN_IF_FAIL (param, NULL, NULL, "NULL param");
+  param->set_tree_addressable();
+}
+
 /* Public entrypoint.  See description in libgccjit.h.
 
    After error-checking, the real work is done by the
diff --git a/gcc/jit/libgccjit.h b/gcc/jit/libgccjit.h
index e85b4bd..677c7ab 100644
--- a/gcc/jit/libgccjit.h
+++ b/gcc/jit/libgccjit.h
@@ -2323,6 +2323,9 @@
    gcc_jit_type_set_tree_addressable(gcc_jit_type *type);
 
 extern void
+gcc_jit_param_set_tree_addressable(gcc_jit_param *param);
+
+extern void
 gcc_jit_field_set_location (gcc_jit_field *field,
 			    gcc_jit_location *loc);
 extern void
diff --git a/gcc/jit/libgccjit.map b/gcc/jit/libgccjit.map
index 50dbcac..234d09d 100644
--- a/gcc/jit/libgccjit.map
+++ b/gcc/jit/libgccjit.map
@@ -393,3 +393,8 @@
   global:
     gcc_jit_is_lto_supported;
 } LIBGCCJIT_ABI_45;
+
+LIBGCCJIT_ABI_47 {
+  global:
+    gcc_jit_param_set_tree_addressable;
+} LIBGCCJIT_ABI_46;
