From 35281dedb5583d8abf27021d10ddeb15139aabc0 Mon Sep 17 00:00:00 2001 From: Stefan F <32997632+stefan301@users.noreply.github.com> Date: Fri, 1 Apr 2022 22:35:57 +0200 Subject: [PATCH] Fix for [C++] flatc generates invalid Code in the default constructor for structs, when --cpp-field-case-style is used #7209 (#7211) * Typo in flatc options (warning-as-errors instead of warnings-as-errors) * VerifySizePrefixed (reflection::Schema) and GetAnySizePrefixedRoot added * some review comments * more review comments * Fix for https://github.com/google/flatbuffers/issues/7209 * Fixes [C++] flatc generates invalid Code for union field accessors, when --cpp-field-case-style is used #7210 --- src/idl_gen_cpp.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 9545737e3..cf6522fac 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -2273,7 +2273,7 @@ class CppGenerator : public BaseGenerator { // @TODO: Mby make this decisions more universal? How? code_.SetValue("U_GET_TYPE", - EscapeKeyword(field.name + UnionTypeFieldSuffix())); + EscapeKeyword(Name(field) + UnionTypeFieldSuffix())); code_.SetValue("U_ELEMENT_TYPE", WrapInNameSpace(u->defined_namespace, GetEnumValUse(*u, ev))); code_.SetValue("U_FIELD_TYPE", "const " + full_struct_name + " *"); @@ -3466,7 +3466,7 @@ class CppGenerator : public BaseGenerator { for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const auto field = *it; - const auto field_name = field->name + "_"; + const auto field_name = Name(*field) + "_"; if (first_in_init_list) { first_in_init_list = false;