BTW, this was also reported awhile ago as issue 86:
http://code.google.com/p/protobuf/issues/detail?id=86

On Thu, Jun 25, 2009 at 12:55 PM, Kenton Varda <ken...@google.com> wrote:

> The problem is that GCC emits two or three copies of each constructor.  In
> order to keep generated code size down, we moved the constructor code into a
> separate method which could then be shared by the multiple copies that GCC
> emits.
> http://gcc.gnu.org/bugs.html#nonbugs_cxx
>
> There is nothing "harmful" about this -- all fields are still being
> initialized properly.  It's just happening somewhere other than the
> constructor.
>
> I recommend disabling the warning.  Perhaps you can disable it just for
> .pb.cc files?
>
> On Thu, Jun 25, 2009 at 12:11 PM, dan.schmidt.valle <
> dan.schmidt.va...@gmail.com> wrote:
>
>>
>> Hi there,
>>
>> I'm developing an app in C++ and I use PB for lots of things. I'm also
>> in an environment that requires me to make sure the code passes very
>> strict warning levels. I found out when I started using them that PB
>> didn't include the _unknown_fields_ or any of the repeated field
>> containers in the member initialisation list. This resulted in me
>> having warnings all over the place (of the **should be initialized in
>> the member initialization list** sort), so I amended the
>> cpp_message.cc method
>>
>> void MessageGenerator::GenerateInitializerList(io::Printer* printer)
>>
>> to include the following line:       printer->Print("_unknown_fields_
>> (),\n");
>>
>> and all the cpp_*_field.cc files to include initialisation for the
>> repeated files with:
>>
>> void RepeatedEnumFieldGenerator::GenerateInitializer(io::Printer*
>> printer) const {
>>  printer->Print(variables_, ",\n$name$_()");
>> }
>>
>> This was enough up to version 2.0.3. I now see that version 2.1.0 has
>> removed the initialisation of members from the constructor altogether.
>> I was wondering what the rationale for that had been, because I've
>> read that not doing that initialisation can be very harmful.
>>
>> Thanks a lot.
>>
>> Dan
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to