diff --git a/Documentation/conf.py b/Documentation/conf.py
index 2f1e63fa17136d340af2e2f99dc03eef986bfd81..94867ea8b69d7507ad40ed1b4c77bc6c2912491a 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -149,3 +149,32 @@ except ImportError as e:
 def setup(app):
     app.add_config_value("has_hawkmoth", has_hawkmoth, "")
     app.add_directive("color-example", ColorExample)
+    fix_issue_8945()
+
+
+def fix_issue_8945():
+    c_domain = __import__("sphinx.domains.c").domains.c
+
+    for kw in [
+        "char",
+        "float",
+        "int",
+        "long",
+        "short",
+        "void",
+        "_Bool",
+        "bool",
+        "_Complex",
+        "complex",
+    ]:
+        c_domain._keywords.remove(kw)
+
+    def parse_xref_object(self):
+        name = self._parse_nested_name()
+        self.skip_ws()
+        self.skip_string("()")
+        # Removing this line as a hacky workaround:
+        # self.assert_end()
+        return name
+
+    c_domain.DefinitionParser.parse_xref_object = parse_xref_object