Adam, yes, forgot providing my setup, here it is:

$ g++ --version
g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ uname -a
Linux demo-host 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 
x86_64 x86_64 x86_64 GNU/Linux

*And generated code around the problematic line*:
262 inline ::std::string* DemoMessage::mutable_first() {
263   if (!has_first()) {
264     clear_msg_data();
265     set_has_first();
266     msg_data_.first_.UnsafeSetDefault(&::google::protobuf::internal::
GetEmptyStringAlreadyInited());
267   }

I have also attached the generated files from my system for your reference.

Thanks again!

Regards,
Changchun

On Monday, November 14, 2016 at 12:50:56 PM UTC-5, Adam Cozzette wrote:
>
> Thanks, Changchun. I have just a few more questions to try to debug the 
> problem:
> - What version of g++ are you using? (g++ --version should tell you)
> - What architecture are you building for?
> - Could you send the generated code around line 266 in demo.pb.h just so 
> that it's clear what lines the compiler is warning about?
>
> On Mon, Nov 14, 2016 at 7:55 AM, <[email protected] <javascript:>> 
> wrote:
>
>> Adam, Thanks for your reply.
>>
>> Here I attached a simple .proto file to demonstrate this warning message:
>>
>> $ protobuf-3.1/bin/protoc --cpp_out=. demo.proto 
>>  
>> $ /usr/bin/g++ -Iprotobuf-3.1/include -c -Wall -O2 -Wno-long-long demo.pb
>> .cc -o demo.pb.o
>> In member function 'virtual bool 
>> demo::DemoMessage::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*)'
>> :
>> cc1plus: warning: dereferencing pointer 'prephitmp.1630' does break
>>  strict-aliasing rules
>> demo.pb.h:266: note: initialized from here
>> cc1plus: note: initialized from here
>>
>> Please let me know if anything else you need to debug further.
>>
>> Thanks,
>> Changchun
>>
>> On Friday, November 11, 2016 at 4:45:03 PM UTC-5, Adam Cozzette wrote:
>>>
>>> What version of g++ are you using? Also, do you have a way of 
>>> determining what actual line of code the compiler is warning about there?
>>>
>>> I tried building with -Wstrict-aliasing=2 at commit df8390790a and saw a 
>>> few warnings like this:
>>>
>>> ./google/protobuf/generated_message_util.h:94:66: warning: dereferencing 
>>> type-punned pointer might break strict-aliasing rules [-Wstrict-aliasing]
>>>    const T& get() const { return reinterpret_cast<const T&>(union_); }
>>>
>>> But that doesn't look like it's quite the same warning as what you are 
>>> seeing.
>>>
>>> On Fri, Nov 11, 2016 at 12:39 PM, <[email protected]> wrote:
>>>
>>>> I have below option in my .proto file:
>>>>
>>>> *option cc_enable_arenas = true;*
>>>>
>>>> But g++ for Linux gives below warning:
>>>>
>>>> *cc1plus: warning: dereferencing pointer 'prephitmp.4925' does break 
>>>> strict-aliasing rules*
>>>>
>>>> Will this cause issue and how to solve it?
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Protocol Buffers" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at https://groups.google.com/group/protobuf.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Protocol Buffers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/protobuf.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Attachment: demo.tar.bz2
Description: Binary data

Reply via email to