diff --git a/gcc/jit/docs/cp/intro/tutorial02.rst b/gcc/jit/docs/cp/intro/tutorial02.rst
index 2064f8e4dd9..55675cc7398 100644
--- a/gcc/jit/docs/cp/intro/tutorial02.rst
+++ b/gcc/jit/docs/cp/intro/tutorial02.rst
@@ -121,7 +121,7 @@ in this case just one:
   params.push_back (param_i);
 
 Now we can create the function, using
-:c:func:`gccjit::context::new_function`:
+:cpp:func:`gccjit::context::new_function`:
 
 .. code-block:: c++
 
diff --git a/gcc/jit/docs/cp/topics/contexts.rst b/gcc/jit/docs/cp/topics/contexts.rst
index e5bccfb807d..f60f2102b3e 100644
--- a/gcc/jit/docs/cp/topics/contexts.rst
+++ b/gcc/jit/docs/cp/topics/contexts.rst
@@ -141,7 +141,7 @@ Debugging
    If "update_locations" is true, then also set up :class:`gccjit::location`
    information throughout the context, pointing at the dump file as if it
    were a source file.  This may be of use in conjunction with
-   :c:macro:`GCCJIT::BOOL_OPTION_DEBUGINFO` to allow stepping through the
+   :c:macro:`GCC_JIT_BOOL_OPTION_DEBUGINFO` to allow stepping through the
    code in a debugger.
 
 .. function:: void\
diff --git a/gcc/jit/docs/cp/topics/functions.rst b/gcc/jit/docs/cp/topics/functions.rst
index 0e266abc70c..4e325ac3fef 100644
--- a/gcc/jit/docs/cp/topics/functions.rst
+++ b/gcc/jit/docs/cp/topics/functions.rst
@@ -243,6 +243,29 @@ Statements
 
       return;
 
+.. class:: gccjit::case_
+
+   A `gccjit::case_` represents a case within a switch statement, and
+   is created within a particular :class:`gccjit::context` using
+   :func:`gccjit::context::new_case`.  It is a subclass of
+   :class:`gccjit::object`.
+
+   Each case expresses a multivalued range of integer values.  You
+   can express single-valued cases by passing in the same value for
+   both `min_value` and `max_value`.
+
+.. function:: gccjit::case_ *\
+               gccjit::context::new_case (gccjit::rvalue min_value,\
+                                          gccjit::rvalue max_value,\
+                                          gccjit::block dest_block)
+
+    Create a new gccjit::case for use in a switch statement.
+    `min_value` and `max_value` must be constants of an integer type,
+    which must match that of the expression of the switch statement.
+
+    `dest_block` must be within the same function as the switch
+    statement.
+
 .. function:: void\
               gccjit::block::end_with_switch (gccjit::rvalue expr,\
                                               gccjit::block default_block,\
@@ -292,29 +315,6 @@ Statements
 
       #ifdef LIBGCCJIT_HAVE_SWITCH_STATEMENTS
 
-   .. class:: gccjit::case_
-
-   A `gccjit::case_` represents a case within a switch statement, and
-   is created within a particular :class:`gccjit::context` using
-   :func:`gccjit::context::new_case`.  It is a subclass of
-   :class:`gccjit::object`.
-
-   Each case expresses a multivalued range of integer values.  You
-   can express single-valued cases by passing in the same value for
-   both `min_value` and `max_value`.
-
-   .. function:: gccjit::case_ *\
-                 gccjit::context::new_case (gccjit::rvalue min_value,\
-                                            gccjit::rvalue max_value,\
-                                            gccjit::block dest_block)
-
-      Create a new gccjit::case for use in a switch statement.
-      `min_value` and `max_value` must be constants of an integer type,
-      which must match that of the expression of the switch statement.
-
-      `dest_block` must be within the same function as the switch
-      statement.
-
    Here's an example of creating a switch statement:
 
      .. literalinclude:: ../../../../testsuite/jit.dg/test-switch.cc
diff --git a/gcc/jit/docs/cp/topics/types.rst b/gcc/jit/docs/cp/topics/types.rst
index c695ceb3098..5d50a39b9d0 100644
--- a/gcc/jit/docs/cp/topics/types.rst
+++ b/gcc/jit/docs/cp/topics/types.rst
@@ -65,7 +65,7 @@ Standard types
 
    Access the integer type of the given size.
 
-.. function:: gccjit::type \
+.. function:: template<typename T> gccjit::type \
               gccjit::context::get_int_type <T> ()
 
    Access the given integer type.  For example, you could map the
diff --git a/gcc/jit/docs/examples/tut04-toyvm/toyvm.c b/gcc/jit/docs/examples/tut04-toyvm/toyvm.c
index 8334b975163..c2333f0de89 100644
--- a/gcc/jit/docs/examples/tut04-toyvm/toyvm.c
+++ b/gcc/jit/docs/examples/tut04-toyvm/toyvm.c
@@ -764,6 +764,7 @@ toyvm_function_compile (toyvm_function *fn)
   toyvm_result->cf_code =
     (toyvm_compiled_code)gcc_jit_result_get_code (jit_result,
 						  funcname);
+  /* (this leaks "jit_result" and "funcname") */
 
   free (funcname);
 
diff --git a/gcc/jit/docs/intro/tutorial04.rst b/gcc/jit/docs/intro/tutorial04.rst
index e1c47a0d2d5..89098876530 100644
--- a/gcc/jit/docs/intro/tutorial04.rst
+++ b/gcc/jit/docs/intro/tutorial04.rst
@@ -308,7 +308,7 @@ We can now compile it, and extract machine code from the result:
 
    .. literalinclude:: ../examples/tut04-toyvm/toyvm.c
     :start-after: /* We've now finished populating the context.  Compile it.  */
-    :end-before: /* (this leaks "result" and "funcname") */
+    :end-before: /* (this leaks "jit_result" and "funcname") */
     :language: c
 
 We can now run the result:
