On Wed, May 20, 2009 at 12:35 AM, <cosmin.cremare...@gmail.com> wrote:

> "./google/protobuf/stubs/once.h", line 114: Warning (Anachronism):
> Formal argument 2 of type extern "C" void(*)() in call to pthread_once
> (_once*, extern "C" void(*)()) is being passed void(*)().

This warning seems to be saying that pointers to functions with extern "C"
are not compatible with pointers to normal functions.  If this is the case
then that's a serious problem and I don't know what to do about it.  But I
think it's more likely that this is just bogus.

> "./google/protobuf/descriptor.h", line 324: Warning: Identifier
> expected instead of "}".
> "./google/protobuf/descriptor.h", line 343: Warning: Identifier
> expected instead of "}".
> "./google/protobuf/descriptor.h", line 354: Warning: Identifier
> expected instead of "}".
> "./google/protobuf/wire_format.h", line 177: Warning: Identifier
> expected instead of "}".

These are just complaining that an enum had a trailing comma, like:
  enum {A, B, C, };

This is valid C++ so I'd say the warning is bogus.

> "./google/protobuf/repeated_field.cc", line 52: Error:
> google::protobuf::RepeatedPtrField<std::string>::Clear() already had a
> body defined.

This error is incorrect.  This looks like a case of poor template support.
 There was a body defined for a general RepeatedPtrField<T>::Clear(), but
repeated_field.h also explicitly specializes for string on line 563 without
defining a method body -- the body is in repeated_field.cc.

Perhaps the hack used to work around problems with HP C++/Tru64 should also
apply to Sun Studio?

If you can make it work, send me a patch.

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 
For more options, visit this group at 

Reply via email to