[ubsan] Fix UBSan warnings in Maybe<bool> specialization

The default constructor of MaybeBase<> does not initialize the
m_value field, but the move-constructor reads it, so when moving
a default-constructed instance, the bool-typed field being read
can contain a value that's neither 0 nor 1, which is undefined
behavior. This patch fixes that by always initializing the field.
For consistency, the same fix is applied to the int and double
specializations.

The UBSan warnings can be observed when building V8 with
cflags += [ "-fsanitize=undefined" ] and running its "inspector"
tests.

Bug: v8:3770
Change-Id: I20d164434c6f3ee5cb55dd96058f7293bb5133f3
1 file changed
tree: d4a2941e7db31443eba0f4353eda92156b90d8fa
  1. base/
  2. encoding/
  3. lib/
  4. templates/
  5. testing/
  6. third_party/
  7. .clang-format
  8. .gitignore
  9. .gn
  10. BUILD.gn
  11. BUILDCONFIG.gn
  12. check_protocol_compatibility.py
  13. CheckProtocolCompatibility.py
  14. code_generator.py
  15. codereview.settings
  16. concatenate_protocols.py
  17. convert_protocol_to_json.py
  18. DEPS
  19. inspector_protocol.gni
  20. inspector_protocol.gypi
  21. LICENSE
  22. OWNERS
  23. pdl.py
  24. README.md
  25. sample_config.json
  26. sample_expected_errors.json
  27. WATCHLISTS
README.md

Chromium inspector (devtools) protocol

This package contains code generators and templates for the Chromium inspector protocol.

The canonical location of this package is at https://chromium.googlesource.com/deps/inspector_protocol/

In the Chromium tree, it's rolled into https://cs.chromium.org/chromium/src/third_party/inspector_protocol/

In the V8 tree, it's rolled into https://cs.chromium.org/chromium/src/v8/third_party/inspector_protocol/

See also Contributing to Chrome Devtools Protocol.

We‘re working on enabling standalone builds for parts of this package for testing and development, please feel free to ignore this for now. But, if you’re familiar with Chromium's development process and have the depot_tools installed, you may use these commands to fetch the package (and dependencies) and build and run the tests:

fetch inspector_protocol
cd src
gn gen out/Release
ninja -C out/Release json_parser_test
out/Release/json_parser_test