diff --git a/gen/src/write.rs b/gen/src/write.rs
index 3498ef9..dfa0502 100644
--- a/gen/src/write.rs
+++ b/gen/src/write.rs
@@ -105,7 +105,6 @@
     }
 
     if !out.header {
-        out.begin_block(Block::ExternC);
         for api in apis {
             match api {
                 Api::CxxFunction(efn) => write_cxx_function_shim(out, efn),
@@ -113,7 +112,6 @@
                 _ => {}
             }
         }
-        out.end_block(Block::ExternC);
     }
 
     for api in apis {
@@ -317,6 +315,7 @@
 
 fn write_cxx_function_shim(out: &mut OutFile, efn: &ExternFn) {
     out.next_section();
+    out.begin_block(Block::ExternC);
     if let Some(annotation) = &out.opt.cxx_impl_annotations {
         write!(out, "{} ", annotation);
     }
@@ -498,6 +497,7 @@
             write_function_pointer_trampoline(out, efn, var, f);
         }
     }
+    out.end_block(Block::ExternC);
 }
 
 fn write_function_pointer_trampoline(
@@ -516,9 +516,11 @@
 }
 
 fn write_rust_function_decl(out: &mut OutFile, efn: &ExternFn) {
+    out.begin_block(Block::ExternC);
     let link_name = mangle::extern_fn(efn, out.types);
     let indirect_call = false;
     write_rust_function_decl_impl(out, &link_name, efn, indirect_call);
+    out.end_block(Block::ExternC);
 }
 
 fn write_rust_function_decl_impl(
