GCC 8 added a -Wclass-memaccess that is enabled in -Wall that warns when
making direct memory modifications to non-trivial objects. The objects
that are modified here are only "non-trivial" in non-interesting ways
(e.g., removal of copy constructor) and can be safely modified as is
being done.
This simply explicitly casts the pointers before calling memset to
indicate that they should be treated as raw memory.
* external/com_google_protobuf/src/google/protobuf/stubs/strutil.cc:1122:9: runtime error: negation of -9223372036854775808 cannot be represented in type 'google::protobuf::int64' (aka 'long'); cast to an unsigned type to negate this value to itself
* Bad external/com_google_protobuf/src/google/protobuf/text_format.cc:1320:14: runtime error: null pointer passed as argument 1, which is declared to never be null
/usr/include/string.h:62:62: note: nonnull attribute specified here
Signed-off-by: Harvey Tuch <htuch@google.com>
This actually has always been using the first branch because
`__cpluscplus` is not a real definition (contrast with the real spelling
of `__cplusplus`).
We need to mark messages as final soon, but before we do that we need to
provide a temporary opt-out mechanism to accommodate existing code that
inherits from generated messages. For 3.7.1 let's stop marking messages
final but in 3.8 we can reintroduce "final" with an opt-out option.
The bazel-bin/ and bazel-genfiles/ directories are going to be merged
soon. That change was causing some test failures on Windows, and I
believe it is because the logic for locating test data files was getting
confused and mistakenly looking for them under bazel-bin/. This commit
updates that logic to look for a more specific file (descriptor.cc)
which does not appear under any Bazel-related directories.
It sounds like the more official solution is to use the Bazel runfiles
library (i.e. //tools/cpp/runfiles). However, I decided not to do that
because we currently still support multiple build systems, and if we
used a separate solution for Bazel then I suspect we would need even
more #ifdefs in the code to handle the different systems.
* add check for reserved keywords in extensions
* add all reserved keywords
* use string without std::
* add test and update name in lite version
* test updates
* Fix macros in header of generated code
* Define PROTOBUF_MIN_PROTOC_VERSION in port_def.inc
* Remove duplicated GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION from common.h
* Send error if the error has been defined
* Undef the new macro
* Add conformance test for nested listvalue
* Fix upb for parsing repeated Value/ListValue
* Add failed repeated ListValue conformance test into php failure list
* Some fixes to make the code work in google3.
* Removed plugin.h.
* Some more fixes to be namespace-independent.
* More fixes for namespace independence.
* A few final fixes.
* Another fix (hide ToUpper from Copybara).
* Fix for charp_unittest.
This change introduces a CriticalSectionLock class as a lightweight replacement for std::mutex on Windows platforms. std::mutex does not work on Windows XP SP2 with the latest VC++ libraries, because it utilizes the Concurrency Runtime that uses ::GetLogicalProcessorInformation which is only supported on Windows XP SP3 and above.
* Revert "Revert "Fix Ruby module name generation when the ruby_package option is used (#5735)""
This reverts commit bb211e851e.
* add new files to Makefile.am