We previously hit this for NAN, but it appears the latest version of MSVC used in windows github runners has the same issue for INFINITY. The same strategy can be applied here.
This will be backported to fix broken release branches.
PiperOrigin-RevId: 700042372
The test wrappers were another way to document nonconformant behaviour between
different python backends. We can achieve the same by removing the wrapper
script and adding an if-condition in the test itself based on
api_implementation.Type(). Since we already do that for nonconformance between
pure Python vs. C++ backends, this change makes it easier to look for UPB
nonconformance instead of going through another layer of indirection.
PiperOrigin-RevId: 699321395
After using UPB I noticed that field accessors were not getting inlined properly using Clang. The source appears to be the UPB_FORCEINLINE macro falling back to just being `static` when underneath clang despite clang having full support of the required attributes.
Closes#17433
COPYBARA_INTEGRATE_REVIEW=https://github.com/protocolbuffers/protobuf/pull/17433 from Vadmeme:main 57204e78cd
PiperOrigin-RevId: 699195477
Before we were trying to work around the fact that we don't know the default depth limit. The logic is simpler and more robust if we take the default into account.
PiperOrigin-RevId: 698856552
Unversioned libraries / libraries without due ABI indicators are not allowed in certain Linux distributions because it precludes the concurrent presence of multiple versions.
If you have both /usr/lib/libprotobuf-lite.so.28.3.0 and /usr/lib/libprotobuf-lite.so.29.0.0, both of them want libutf8_validity.so, but if the ABI is different between utf8_range 28 and utf8_range 29, that's a problem.
Closes#19009
COPYBARA_INTEGRATE_REVIEW=https://github.com/protocolbuffers/protobuf/pull/19009 from jengelh:master 1a5f8682be
PiperOrigin-RevId: 698855702
The data is not currently used. This change is what we need to hook it up from Rust. In a future change we will start using the data to simplify the interface.
No expected performance change. The data inserted via static typing is constant evaluated, and fits in the existing padding (in 64-bit builds).
Also, fix Rust bindings to take float/double into account now that the enum lists them.
PiperOrigin-RevId: 698780360
[bug] tutorialpb/addressbook.pb.go:317:40: predeclared any requires go1.18 or later (-lang was set to go1.14; check go.mod)
Closes#19293
COPYBARA_INTEGRATE_REVIEW=https://github.com/protocolbuffers/protobuf/pull/19293 from Kaikaikaifang:patch-2 386a337031
PiperOrigin-RevId: 698606584
Prior to this CL, the fuzz tests only checked that the code does not crash, but it was not checking any correctness properties. This CL adds correctness checking, verifying that we can round trip through the wire format without losing or corrupting data.
This highlighted a minor bug in the encoder where the depth limit check was off by one (too strict). This CL makes the encoder more accepting when checking the depth limit.
PiperOrigin-RevId: 698527429
fix the bug:
```shell
‘std::string_view’ is only available from C++17 onwards
```
The error occurs because the code is being compiled using the C++14 standard, which does not include the std::string_view type introduced in C++17. The Abseil library (absl), used by Protocol Buffers, includes absl/strings/string_view.h, which uses std::string_view. This causes the compilation to fail in environments configured with C++14 or earlier.
In the provided build system, the file add_person.cc is being compiled using the -std=c++14 flag, which is incompatible with code depending on features from C++17 (e.g., std::string_view).
Closes#19292
COPYBARA_INTEGRATE_REVIEW=https://github.com/protocolbuffers/protobuf/pull/19292 from Kaikaikaifang:patch-1 ee276ffd0b
PiperOrigin-RevId: 698223950
Struct has a default bool function, and empty Struct returns False for bool().
Should compare with None instead of bool() when check if Struct is able to be
created.
PiperOrigin-RevId: 698205106