# \[PATCH 02/11\] UAPI: keys: Fix use of C++ keywords as structural members \[ver \#2\]

- From: David Howells \<dhowells@redhat.com\>
- Date: 2018-09-06 09:18:40 
- List: linux-api
- Page: https://ratatoskr.run/linux-api/2018/09/5373378
- Thread: https://ratatoskr.run/linux-api/2018/09/143352/t.md

```text
The keyctl_dh_params struct uses a C++ keyword as structural members.  Fix
this by inserting an anonymous union that provides an alternative name and
then hide the reserved name in C++.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Mat Martineau <redacted>
cc: <redacted>
---

 include/uapi/linux/keyctl.h |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/include/uapi/linux/keyctl.h b/include/uapi/linux/keyctl.h
index 910cc4334b21..170f015d1f25 100644
--- a/include/uapi/linux/keyctl.h
+++ b/include/uapi/linux/keyctl.h
@@ -65,7 +65,12 @@
 
 /* keyctl structures */
 struct keyctl_dh_params {
-	__s32 dh_private;
+	union {
+#ifndef __cplusplus
+		__s32 private;
+#endif
+		__s32 dh_private;
+	};
 	__s32 prime;
 	__s32 base;
 };
```
