diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index a50d28acc..268c436eb 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -1213,7 +1213,8 @@ class CppGenerator : public BaseGenerator { " auto ptr = reinterpret_cast(obj);"; if (ev.union_type.base_type == BASE_TYPE_STRUCT) { if (ev.union_type.struct_def->fixed) { - code_ += " return true;"; + code_ += " return verifier.Verify<{{TYPE}}>(static_cast(obj), 0);"; } else { code_ += getptr; code_ += " return verifier.VerifyTable(ptr);"; diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index 9da819a33..757a9584f 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -547,13 +547,13 @@ inline bool VerifyCharacter(flatbuffers::Verifier &verifier, const void *obj, Ch return verifier.VerifyTable(ptr); } case Character_Rapunzel: { - return true; + return verifier.Verify(static_cast(obj), 0); } case Character_Belle: { - return true; + return verifier.Verify(static_cast(obj), 0); } case Character_BookFan: { - return true; + return verifier.Verify(static_cast(obj), 0); } case Character_Other: { auto ptr = reinterpret_cast(obj);