In QtCreator (and under weird configurations with gcc), this used to fail with the error messages like: "error: member of anonymous union redeclares '___'". This patch gives each member a unique name.
@@ -8,25 +8,25 @@
#include <AK/Types.h>
-#define RREGISTER(num) \
- union { \
- u64 r##num; \
- struct { \
- u32 _; \
- u32 r##num##d; \
- u16 __; \
- u16 r##num##w; \
- u8 ___; \
- u8 r##num##b; \
- }; \
+#define RREGISTER(num) \
+ union { \
+ u64 r##num; \
+ struct { \
+ u32 _unused##num; \
+ u32 r##num##d; \
+ u16 __unused##num; \
+ u16 r##num##w; \
+ u8 ___unused##num; \
+ u8 r##num##b; \
+ }; \
}
#define GPREGISTER(letter) \
@@ -34,12 +34,12 @@
u64 r##letter##x; \
struct \
{ \
+ u32 _unused##letter; \
union { \
u32 e##letter##x; \
+ u16 __unused##letter; \
u16 letter##x; \
struct { \
@@ -52,27 +52,27 @@
}; \
-#define SPREGISTER(name) \
- u64 r##name; \
- struct \
- { \
- u32 e##name; \
- u16 name; \
- u8 name##l; \
+#define SPREGISTER(name) \
+ u64 r##name; \
+ struct \
+ { \
+ u32 _unused##name; \
+ u32 e##name; \
+ u16 __unused##name; \
+ u16 name; \
+ u8 ___unused##name; \
+ u8 name##l; \
struct [[gnu::packed]] PtraceRegisters {