From 09f19672a079fc87dd07f49edcd0000b09161d67 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sun, 23 Apr 2023 07:55:55 -0700 Subject: [PATCH] freedreno/registers: C++ struct casting Using C style `(struct foo){ ..args..}` at least confuses eclipse, so for C++ code use `{ ..args.. }` instead. Signed-off-by: Rob Clark Part-of: --- src/freedreno/registers/gen_header.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/freedreno/registers/gen_header.py b/src/freedreno/registers/gen_header.py index 4a933a4e585..4e11b8d3f6f 100644 --- a/src/freedreno/registers/gen_header.py +++ b/src/freedreno/registers/gen_header.py @@ -221,10 +221,10 @@ class Bitset(object): skip = "" if reg.array: - print("#define %s(__i, ...) pack_%s(__i, (struct %s) { __VA_ARGS__ })%s\n" % + print("#define %s(__i, ...) pack_%s(__i, __struct_cast(%s) { __VA_ARGS__ })%s\n" % (prefix, prefix, prefix, skip)) else: - print("#define %s(...) pack_%s((struct %s) { __VA_ARGS__ })%s\n" % + print("#define %s(...) pack_%s(__struct_cast(%s) { __VA_ARGS__ })%s\n" % (prefix, prefix, prefix, skip)) @@ -649,6 +649,12 @@ def main(): print("#include ") print() + print("#ifdef __cplusplus"); + print("#define __struct_cast(X)") + print("#else") + print("#define __struct_cast(X) (struct X)") + print("#endif") + try: p.parse(rnn_path, xml_file) except Error as e: