grpc 1.67.0 → 1.68.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +52 -42
- data/include/grpc/compression.h +1 -2
- data/include/grpc/credentials.h +1 -2
- data/include/grpc/event_engine/endpoint_config.h +2 -2
- data/include/grpc/event_engine/event_engine.h +6 -6
- data/include/grpc/event_engine/extensible.h +2 -2
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +4 -4
- data/include/grpc/event_engine/memory_allocator.h +3 -4
- data/include/grpc/event_engine/memory_request.h +1 -2
- data/include/grpc/event_engine/slice.h +3 -4
- data/include/grpc/event_engine/slice_buffer.h +6 -7
- data/include/grpc/grpc.h +1 -2
- data/include/grpc/grpc_audit_logging.h +3 -3
- data/include/grpc/grpc_crl_provider.h +4 -4
- data/include/grpc/grpc_posix.h +1 -2
- data/include/grpc/grpc_security.h +1 -2
- data/include/grpc/impl/call.h +2 -2
- data/include/grpc/impl/grpc_types.h +1 -2
- data/include/grpc/impl/slice_type.h +1 -2
- data/include/grpc/passive_listener.h +2 -2
- data/include/grpc/support/alloc.h +1 -2
- data/include/grpc/support/json.h +1 -2
- data/include/grpc/support/log.h +1 -2
- data/include/grpc/support/metrics.h +7 -3
- data/include/grpc/support/port_platform.h +6 -1
- data/include/grpc/support/sync_posix.h +1 -2
- data/include/grpc/support/time.h +1 -2
- data/src/core/channelz/channel_trace.cc +5 -6
- data/src/core/channelz/channel_trace.h +5 -7
- data/src/core/channelz/channelz.cc +5 -6
- data/src/core/channelz/channelz.h +8 -10
- data/src/core/channelz/channelz_registry.cc +6 -7
- data/src/core/channelz/channelz_registry.h +4 -5
- data/src/core/client_channel/backup_poller.cc +20 -10
- data/src/core/client_channel/client_channel.cc +21 -17
- data/src/core/client_channel/client_channel.h +4 -2
- data/src/core/client_channel/client_channel_factory.cc +2 -2
- data/src/core/client_channel/client_channel_factory.h +1 -2
- data/src/core/client_channel/client_channel_filter.cc +24 -21
- data/src/core/client_channel/client_channel_filter.h +11 -11
- data/src/core/client_channel/client_channel_internal.h +2 -3
- data/src/core/client_channel/client_channel_plugin.cc +1 -3
- data/src/core/client_channel/client_channel_service_config.cc +2 -3
- data/src/core/client_channel/client_channel_service_config.h +3 -5
- data/src/core/client_channel/config_selector.h +4 -7
- data/src/core/client_channel/connector.h +3 -3
- data/src/core/client_channel/direct_channel.cc +1 -1
- data/src/core/client_channel/dynamic_filters.cc +10 -8
- data/src/core/client_channel/dynamic_filters.h +8 -7
- data/src/core/client_channel/global_subchannel_pool.cc +2 -2
- data/src/core/client_channel/global_subchannel_pool.h +2 -3
- data/src/core/client_channel/lb_metadata.h +2 -3
- data/src/core/client_channel/load_balanced_call_destination.cc +1 -2
- data/src/core/client_channel/load_balanced_call_destination.h +0 -1
- data/src/core/client_channel/local_subchannel_pool.cc +2 -3
- data/src/core/client_channel/local_subchannel_pool.h +1 -1
- data/src/core/client_channel/retry_filter.cc +5 -7
- data/src/core/client_channel/retry_filter.h +4 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +9 -11
- data/src/core/client_channel/retry_filter_legacy_call_data.h +9 -12
- data/src/core/client_channel/retry_service_config.cc +5 -7
- data/src/core/client_channel/retry_service_config.h +2 -4
- data/src/core/client_channel/retry_throttle.cc +3 -4
- data/src/core/client_channel/retry_throttle.h +4 -7
- data/src/core/client_channel/subchannel.cc +11 -14
- data/src/core/client_channel/subchannel.h +17 -16
- data/src/core/client_channel/subchannel_interface_internal.h +1 -1
- data/src/core/client_channel/subchannel_pool_interface.cc +1 -3
- data/src/core/client_channel/subchannel_pool_interface.h +2 -3
- data/src/core/client_channel/subchannel_stream_client.cc +6 -9
- data/src/core/client_channel/subchannel_stream_client.h +8 -10
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +8 -8
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +0 -1
- data/src/core/ext/filters/census/grpc_context.cc +1 -2
- data/src/core/ext/filters/channel_idle/idle_filter_state.cc +1 -2
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +0 -1
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +14 -16
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +6 -8
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +9 -6
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -3
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +2 -3
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -6
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +54 -16
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +28 -13
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +2 -3
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +1 -2
- data/src/core/ext/filters/http/client/http_client_filter.cc +12 -7
- data/src/core/ext/filters/http/client/http_client_filter.h +0 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +6 -5
- data/src/core/ext/filters/http/client_authority_filter.h +0 -1
- data/src/core/ext/filters/http/http_filters_plugin.cc +0 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +22 -8
- data/src/core/ext/filters/http/message_compress/compression_filter.h +1 -4
- data/src/core/ext/filters/http/server/http_server_filter.cc +11 -6
- data/src/core/ext/filters/http/server/http_server_filter.h +0 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +12 -6
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -3
- data/src/core/ext/filters/rbac/rbac_filter.cc +5 -5
- data/src/core/ext/filters/rbac/rbac_filter.h +0 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +14 -8
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +10 -5
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +2 -4
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +2 -3
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +2 -4
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -2
- data/src/core/ext/transport/chttp2/alpn/alpn.h +1 -2
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +13 -15
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +4 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +150 -89
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -3
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -3
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -2
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +53 -0
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +72 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +66 -88
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +5 -6
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -2
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +2 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -4
- data/src/core/ext/transport/chttp2/transport/frame.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/frame_data.h +2 -4
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +3 -4
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -2
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +3 -5
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +1 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +3 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +1 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +2 -4
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +12 -99
- data/src/core/ext/transport/chttp2/transport/parsing.cc +22 -9
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +3 -3
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +3 -5
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +2 -4
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/stream_lists.h +65 -0
- data/src/core/ext/transport/chttp2/transport/varint.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/varint.h +1 -2
- data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/write_size_policy.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +11 -11
- data/src/core/ext/transport/inproc/inproc_transport.cc +5 -6
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +11 -13
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +32 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +21 -14
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +7 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +33 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +21 -15
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +6 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +36 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +24 -17
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +7 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +134 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +86 -65
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +21 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +7 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +7 -3
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +14 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +10 -6
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +16 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +14 -10
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +7 -1
- data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +2 -1
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +58 -1
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +55 -37
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +18 -1
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +180 -1
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +112 -87
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +25 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +28 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +19 -14
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +182 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +127 -100
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +27 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +6 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +7 -4
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +53 -1
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +29 -26
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +93 -1
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +66 -49
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +17 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +41 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +31 -21
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +10 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +6 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +7 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +106 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +87 -56
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +31 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +43 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +31 -22
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +9 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +7 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +7 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +68 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +52 -36
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +16 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +89 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +50 -39
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +11 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +9 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +7 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +96 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +74 -56
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +18 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +7 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +9 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +8 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +7 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +7 -3
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +13 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +10 -6
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +6 -1
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +7 -4
- data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +32 -1
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +19 -13
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +6 -1
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +45 -1
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +34 -25
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +9 -1
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +41 -1
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +24 -16
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +8 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +80 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +48 -36
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +12 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +63 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +40 -31
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +9 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +24 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +16 -13
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +8 -1
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +6 -1
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +7 -4
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +30 -1
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +28 -18
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +10 -1
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +48 -1
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +34 -22
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +12 -1
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +93 -1
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +58 -45
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +13 -1
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +49 -1
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +21 -16
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +432 -1
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +261 -201
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +60 -1
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +11 -1
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +11 -6
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +66 -1
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +50 -36
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +14 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +6 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +6 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +8 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +8 -5
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +13 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +9 -6
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +8 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +10 -6
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +3 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +2 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +10 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +11 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +99 -1
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +63 -45
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +18 -1
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +14 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +16 -9
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +7 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +21 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +16 -11
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +14 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +15 -9
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +6 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +12 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +12 -8
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +18 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +12 -8
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +6 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +178 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +113 -90
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +23 -1
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +14 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +11 -8
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +18 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +20 -13
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +7 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +12 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +10 -7
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +106 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +52 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +3 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.h +2 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +56 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +37 -27
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +10 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +14 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +15 -10
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +74 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +46 -37
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +9 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +9 -1
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +39 -1
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +28 -22
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +6 -1
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +83 -1
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +53 -37
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +16 -1
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +11 -1
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +10 -6
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +42 -1
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +27 -20
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +7 -1
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +11 -1
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +12 -6
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +6 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +8 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +7 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +9 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +8 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +9 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +7 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +4 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +8 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +12 -7
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +5 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +11 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +10 -6
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +9 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +8 -4
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +19 -1
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +17 -11
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +6 -1
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +15 -1
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +17 -8
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +9 -1
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +14 -1
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +16 -9
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +7 -1
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +6 -1
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +9 -4
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +3 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.h +2 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +5 -1
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +6 -1
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +6 -1
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +8 -4
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +3 -1
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.h +2 -1
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +6 -1
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +7 -4
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/google/api/annotations.upb.h +2 -1
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +2 -1
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +84 -1
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +56 -41
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +15 -1
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +82 -1
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +59 -41
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +18 -1
- data/src/core/ext/upb-gen/google/api/http.upb.h +14 -1
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +11 -6
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/google/api/httpbody.upb.h +7 -1
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/google/protobuf/any.upb.h +2 -1
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +198 -1
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +153 -118
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +35 -1
- data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +2 -1
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +2 -1
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +23 -1
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +16 -10
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +6 -1
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +2 -1
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +2 -1
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +12 -1
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +11 -1
- data/src/core/ext/upb-gen/google/rpc/status.upb.h +7 -1
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +8 -1
- data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +11 -5
- data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +6 -1
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +10 -1
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +8 -4
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +60 -1
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +43 -29
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +14 -1
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +6 -1
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +8 -4
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +2 -1
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +5 -1
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +26 -1
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +26 -15
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +11 -1
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +8 -1
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +8 -3
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +54 -1
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +29 -18
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +11 -1
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +2 -1
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +17 -7
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +2 -1
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +2 -1
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +2 -1
- data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +2 -1
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +2 -1
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/validate/validate.upb.h +84 -1
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +109 -80
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +25 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +2 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +17 -7
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +2 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +2 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +2 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +2 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +17 -8
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +6 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +2 -1
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +2 -1
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +4 -1
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +8 -1
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +10 -6
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +8 -1
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +7 -3
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +4 -1
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +6 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +7 -4
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +11 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +10 -6
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +4 -1
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +20 -1
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +11 -5
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +6 -1
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +4 -1
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +4 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +9 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +2 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +4 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +3 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +14 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +10 -6
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +60 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +45 -33
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +12 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +38 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +24 -16
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +8 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +4 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +7 -3
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +9 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +9 -5
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +10 -1
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +11 -7
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +4 -1
- data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +2 -1
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +6 -1
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +5 -1
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +4 -1
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +6 -3
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +3 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.h +33 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +8 -7
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +2 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +2 -1
- data/src/core/filter/blackboard.cc +33 -0
- data/src/core/filter/blackboard.h +70 -0
- data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc +4 -5
- data/src/core/handshaker/handshaker.cc +8 -11
- data/src/core/handshaker/handshaker.h +8 -10
- data/src/core/handshaker/handshaker_registry.cc +1 -2
- data/src/core/handshaker/handshaker_registry.h +2 -2
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +7 -10
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +7 -9
- data/src/core/handshaker/http_connect/http_proxy_mapper.h +2 -3
- data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +57 -0
- data/src/core/handshaker/http_connect/xds_http_proxy_mapper.h +46 -0
- data/src/core/handshaker/proxy_mapper.h +2 -3
- data/src/core/handshaker/proxy_mapper_registry.cc +2 -2
- data/src/core/handshaker/proxy_mapper_registry.h +2 -3
- data/src/core/handshaker/security/secure_endpoint.cc +12 -14
- data/src/core/handshaker/security/secure_endpoint.h +2 -3
- data/src/core/handshaker/security/security_handshaker.cc +14 -20
- data/src/core/handshaker/security/security_handshaker.h +2 -3
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +9 -10
- data/src/core/lib/address_utils/parse_address.cc +3 -4
- data/src/core/lib/address_utils/parse_address.h +2 -4
- data/src/core/lib/address_utils/sockaddr_utils.cc +4 -6
- data/src/core/lib/address_utils/sockaddr_utils.h +1 -3
- data/src/core/lib/channel/call_finalization.h +2 -2
- data/src/core/lib/channel/channel_args.cc +4 -6
- data/src/core/lib/channel/channel_args.h +10 -12
- data/src/core/lib/channel/channel_args_preconditioning.cc +2 -2
- data/src/core/lib/channel/channel_args_preconditioning.h +3 -3
- data/src/core/lib/channel/channel_stack.cc +5 -4
- data/src/core/lib/channel/channel_stack.h +17 -17
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +3 -4
- data/src/core/lib/channel/channel_stack_builder_impl.cc +5 -7
- data/src/core/lib/channel/channel_stack_builder_impl.h +15 -3
- data/src/core/lib/channel/connected_channel.cc +8 -10
- data/src/core/lib/channel/promise_based_filter.cc +32 -23
- data/src/core/lib/channel/promise_based_filter.h +43 -14
- data/src/core/lib/channel/status_util.cc +1 -3
- data/src/core/lib/channel/status_util.h +3 -3
- data/src/core/lib/compression/compression.cc +3 -5
- data/src/core/lib/compression/compression_internal.cc +5 -7
- data/src/core/lib/compression/compression_internal.h +3 -5
- data/src/core/lib/compression/message_compress.cc +3 -6
- data/src/core/lib/config/config_vars.cc +2 -3
- data/src/core/lib/config/config_vars.h +1 -2
- data/src/core/lib/config/config_vars_non_generated.cc +2 -2
- data/src/core/lib/config/core_configuration.cc +2 -2
- data/src/core/lib/config/core_configuration.h +2 -3
- data/src/core/lib/config/load_config.cc +2 -4
- data/src/core/lib/config/load_config.h +1 -2
- data/src/core/lib/debug/trace.cc +4 -5
- data/src/core/lib/debug/trace_flags.cc +1 -2
- data/src/core/lib/debug/trace_impl.h +2 -2
- data/src/core/lib/event_engine/ares_resolver.cc +10 -12
- data/src/core/lib/event_engine/ares_resolver.h +7 -10
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +2 -4
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -1
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +1 -2
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +4 -6
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +2 -3
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +3 -5
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +3 -4
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +2 -3
- data/src/core/lib/event_engine/common_closures.h +3 -3
- data/src/core/lib/event_engine/default_event_engine.cc +6 -7
- data/src/core/lib/event_engine/default_event_engine.h +3 -3
- data/src/core/lib/event_engine/default_event_engine_factory.cc +2 -2
- data/src/core/lib/event_engine/default_event_engine_factory.h +2 -2
- data/src/core/lib/event_engine/event_engine.cc +2 -2
- data/src/core/lib/event_engine/extensions/can_track_errors.h +2 -2
- data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +1 -2
- data/src/core/lib/event_engine/extensions/supports_fd.h +20 -3
- data/src/core/lib/event_engine/extensions/tcp_trace.h +0 -1
- data/src/core/lib/event_engine/forkable.cc +2 -2
- data/src/core/lib/event_engine/forkable.h +2 -2
- data/src/core/lib/event_engine/grpc_polled_fd.h +3 -4
- data/src/core/lib/event_engine/handle_containers.h +2 -3
- data/src/core/lib/event_engine/memory_allocator_factory.h +3 -4
- data/src/core/lib/event_engine/poller.h +2 -2
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +9 -11
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +4 -5
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +13 -16
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +4 -5
- data/src/core/lib/event_engine/posix_engine/event_poller.h +3 -4
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -4
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -2
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +4 -6
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +2 -3
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +1 -2
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +5 -6
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -3
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +2 -3
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +2 -3
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +14 -16
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +8 -9
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +43 -27
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +16 -14
- data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +3 -3
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -8
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +12 -11
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +4 -6
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +1 -2
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +8 -11
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +7 -8
- data/src/core/lib/event_engine/posix_engine/timer.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/timer.h +5 -7
- data/src/core/lib/event_engine/posix_engine/timer_heap.cc +1 -2
- data/src/core/lib/event_engine/posix_engine/timer_heap.h +2 -2
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +3 -4
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +5 -7
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +4 -6
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +3 -5
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +5 -6
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -3
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +4 -5
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -3
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +2 -2
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -3
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +2 -2
- data/src/core/lib/event_engine/query_extensions.h +2 -2
- data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +3 -5
- data/src/core/lib/event_engine/resolved_address.cc +5 -4
- data/src/core/lib/event_engine/slice.cc +3 -5
- data/src/core/lib/event_engine/slice_buffer.cc +1 -2
- data/src/core/lib/event_engine/tcp_socket_utils.cc +3 -4
- data/src/core/lib/event_engine/tcp_socket_utils.h +3 -3
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +2 -4
- data/src/core/lib/event_engine/thread_pool/thread_count.h +5 -6
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +2 -4
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +2 -3
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +8 -10
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +7 -9
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +5 -5
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +5 -5
- data/src/core/lib/event_engine/time_util.cc +2 -2
- data/src/core/lib/event_engine/time_util.h +1 -2
- data/src/core/lib/event_engine/utils.cc +19 -5
- data/src/core/lib/event_engine/utils.h +10 -4
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -7
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -6
- data/src/core/lib/event_engine/windows/iocp.cc +4 -5
- data/src/core/lib/event_engine/windows/iocp.h +1 -2
- data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +4 -6
- data/src/core/lib/event_engine/windows/win_socket.cc +4 -5
- data/src/core/lib/event_engine/windows/win_socket.h +4 -5
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +5 -6
- data/src/core/lib/event_engine/windows/windows_engine.cc +10 -11
- data/src/core/lib/event_engine/windows/windows_engine.h +7 -8
- data/src/core/lib/event_engine/windows/windows_listener.cc +2 -3
- data/src/core/lib/event_engine/windows/windows_listener.h +4 -5
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +3 -3
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +3 -5
- data/src/core/lib/event_engine/work_queue/work_queue.h +2 -3
- data/src/core/lib/experiments/config.cc +8 -11
- data/src/core/lib/experiments/config.h +1 -2
- data/src/core/lib/experiments/experiments.cc +65 -26
- data/src/core/lib/experiments/experiments.h +28 -13
- data/src/core/lib/iomgr/buffer_list.cc +3 -4
- data/src/core/lib/iomgr/buffer_list.h +2 -3
- data/src/core/lib/iomgr/call_combiner.cc +2 -4
- data/src/core/lib/iomgr/call_combiner.h +5 -7
- data/src/core/lib/iomgr/cfstream_handle.cc +2 -4
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.cc +2 -2
- data/src/core/lib/iomgr/closure.h +6 -8
- data/src/core/lib/iomgr/combiner.cc +4 -6
- data/src/core/lib/iomgr/combiner.h +1 -2
- data/src/core/lib/iomgr/endpoint.h +1 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -4
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -4
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -2
- data/src/core/lib/iomgr/error.cc +6 -8
- data/src/core/lib/iomgr/error.h +6 -8
- data/src/core/lib/iomgr/error_cfstream.cc +1 -3
- data/src/core/lib/iomgr/ev_apple.cc +2 -3
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +5 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -5
- data/src/core/lib/iomgr/ev_posix.cc +3 -5
- data/src/core/lib/iomgr/ev_posix.h +1 -2
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +3 -4
- data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +10 -11
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +2 -2
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +2 -3
- data/src/core/lib/iomgr/exec_ctx.cc +4 -5
- data/src/core/lib/iomgr/exec_ctx.h +6 -8
- data/src/core/lib/iomgr/executor.cc +6 -8
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/fork_posix.cc +5 -7
- data/src/core/lib/iomgr/fork_windows.cc +2 -2
- data/src/core/lib/iomgr/internal_errqueue.cc +2 -3
- data/src/core/lib/iomgr/iocp_windows.cc +4 -6
- data/src/core/lib/iomgr/iomgr.cc +6 -8
- data/src/core/lib/iomgr/iomgr.h +1 -2
- data/src/core/lib/iomgr/iomgr_internal.cc +1 -2
- data/src/core/lib/iomgr/iomgr_internal.h +1 -2
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -2
- data/src/core/lib/iomgr/lockfree_event.cc +3 -4
- data/src/core/lib/iomgr/polling_entity.cc +3 -4
- data/src/core/lib/iomgr/pollset_set_windows.cc +1 -2
- data/src/core/lib/iomgr/pollset_windows.cc +2 -2
- data/src/core/lib/iomgr/port.h +2 -2
- data/src/core/lib/iomgr/resolve_address.cc +3 -4
- data/src/core/lib/iomgr/resolve_address.h +4 -6
- data/src/core/lib/iomgr/resolve_address_impl.h +1 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +6 -7
- data/src/core/lib/iomgr/resolve_address_posix.h +2 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -10
- data/src/core/lib/iomgr/resolve_address_windows.h +2 -2
- data/src/core/lib/iomgr/resolved_address.h +1 -2
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +3 -5
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.h +1 -2
- data/src/core/lib/iomgr/socket_utils.h +1 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +5 -7
- data/src/core/lib/iomgr/socket_utils_linux.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.cc +4 -6
- data/src/core/lib/iomgr/socket_utils_windows.cc +1 -1
- data/src/core/lib/iomgr/socket_windows.cc +3 -5
- data/src/core/lib/iomgr/socket_windows.h +1 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
- data/src/core/lib/iomgr/tcp_client_posix.cc +3 -5
- data/src/core/lib/iomgr/tcp_client_windows.cc +3 -5
- data/src/core/lib/iomgr/tcp_posix.cc +13 -16
- data/src/core/lib/iomgr/tcp_server.h +2 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +9 -11
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +2 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +3 -5
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +2 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +8 -10
- data/src/core/lib/iomgr/tcp_windows.cc +4 -6
- data/src/core/lib/iomgr/timer.h +2 -2
- data/src/core/lib/iomgr/timer_generic.cc +8 -10
- data/src/core/lib/iomgr/timer_heap.cc +1 -2
- data/src/core/lib/iomgr/timer_manager.cc +4 -6
- data/src/core/lib/iomgr/timer_manager.h +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -4
- data/src/core/lib/iomgr/unix_sockets_posix.h +3 -4
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +0 -2
- data/src/core/lib/iomgr/vsock.cc +2 -4
- data/src/core/lib/iomgr/vsock.h +3 -4
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +2 -2
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -3
- data/src/core/lib/promise/activity.cc +2 -4
- data/src/core/lib/promise/activity.h +9 -11
- data/src/core/lib/promise/all_ok.h +3 -4
- data/src/core/lib/promise/arena_promise.h +2 -4
- data/src/core/lib/promise/cancel_callback.h +4 -4
- data/src/core/lib/promise/context.h +7 -8
- data/src/core/lib/promise/detail/basic_seq.h +1 -1
- data/src/core/lib/promise/detail/join_state.h +4 -5
- data/src/core/lib/promise/detail/promise_factory.h +6 -7
- data/src/core/lib/promise/detail/promise_like.h +3 -4
- data/src/core/lib/promise/detail/seq_state.h +3 -5
- data/src/core/lib/promise/detail/status.h +5 -5
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +2 -3
- data/src/core/lib/promise/for_each.h +9 -10
- data/src/core/lib/promise/if.h +9 -9
- data/src/core/lib/promise/interceptor_list.h +3 -5
- data/src/core/lib/promise/latch.h +1 -3
- data/src/core/lib/promise/loop.h +4 -5
- data/src/core/lib/promise/map.h +4 -5
- data/src/core/lib/promise/observable.h +3 -4
- data/src/core/lib/promise/party.cc +24 -16
- data/src/core/lib/promise/party.h +10 -10
- data/src/core/lib/promise/pipe.h +3 -5
- data/src/core/lib/promise/poll.h +6 -7
- data/src/core/lib/promise/prioritized_race.h +2 -2
- data/src/core/lib/promise/promise.h +5 -6
- data/src/core/lib/promise/race.h +4 -4
- data/src/core/lib/promise/seq.h +11 -10
- data/src/core/lib/promise/sleep.cc +3 -3
- data/src/core/lib/promise/sleep.h +4 -5
- data/src/core/lib/promise/status_flag.h +2 -3
- data/src/core/lib/promise/try_join.h +5 -5
- data/src/core/lib/promise/try_seq.h +10 -10
- data/src/core/lib/resource_quota/api.cc +4 -6
- data/src/core/lib/resource_quota/api.h +1 -2
- data/src/core/lib/resource_quota/arena.cc +3 -4
- data/src/core/lib/resource_quota/arena.h +4 -5
- data/src/core/lib/resource_quota/connection_quota.cc +2 -2
- data/src/core/lib/resource_quota/connection_quota.h +5 -6
- data/src/core/lib/resource_quota/memory_quota.cc +4 -6
- data/src/core/lib/resource_quota/memory_quota.h +16 -12
- data/src/core/lib/resource_quota/periodic_update.cc +3 -3
- data/src/core/lib/resource_quota/periodic_update.h +2 -4
- data/src/core/lib/resource_quota/resource_quota.h +7 -8
- data/src/core/lib/resource_quota/thread_quota.cc +2 -2
- data/src/core/lib/resource_quota/thread_quota.h +5 -6
- data/src/core/lib/security/authorization/audit_logging.cc +5 -6
- data/src/core/lib/security/authorization/audit_logging.h +5 -6
- data/src/core/lib/security/authorization/authorization_engine.h +3 -3
- data/src/core/lib/security/authorization/authorization_policy_provider.h +3 -4
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +4 -6
- data/src/core/lib/security/authorization/evaluate_args.h +3 -4
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +2 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +2 -3
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -3
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +2 -3
- data/src/core/lib/security/authorization/matchers.cc +2 -4
- data/src/core/lib/security/authorization/matchers.h +2 -4
- data/src/core/lib/security/authorization/rbac_policy.cc +2 -2
- data/src/core/lib/security/authorization/rbac_policy.h +3 -5
- data/src/core/lib/security/authorization/stdout_logger.cc +4 -4
- data/src/core/lib/security/authorization/stdout_logger.h +4 -4
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +6 -7
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -2
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +2 -3
- data/src/core/lib/security/context/security_context.cc +6 -8
- data/src/core/lib/security/context/security_context.h +8 -10
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +5 -5
- data/src/core/lib/security/credentials/alts/alts_credentials.h +8 -4
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +2 -3
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +1 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +1 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +3 -4
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +1 -2
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +2 -2
- data/src/core/lib/security/credentials/call_creds_util.cc +6 -5
- data/src/core/lib/security/credentials/call_creds_util.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry.h +5 -6
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +9 -10
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +3 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +8 -9
- data/src/core/lib/security/credentials/credentials.cc +1 -4
- data/src/core/lib/security/credentials/credentials.h +11 -12
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +10 -12
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +7 -6
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +4 -5
- data/src/core/lib/security/credentials/external/aws_request_signer.h +3 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.h +5 -7
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +6 -7
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -5
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -10
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +8 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -4
- data/src/core/lib/security/credentials/fake/fake_credentials.h +5 -6
- data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +5 -6
- data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.h +7 -7
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -4
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +17 -20
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +7 -5
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.h +5 -6
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +11 -14
- data/src/core/lib/security/credentials/jwt/json_token.h +1 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -10
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +7 -9
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +18 -21
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
- data/src/core/lib/security/credentials/local/local_credentials.cc +2 -2
- data/src/core/lib/security/credentials/local/local_credentials.h +2 -2
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +14 -16
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +12 -13
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +3 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +9 -11
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +4 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +4 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +3 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +4 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +1 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +79 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +13 -11
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +4 -6
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +8 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +8 -10
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +6 -7
- data/src/core/lib/security/credentials/tls/tls_credentials.h +5 -3
- data/src/core/lib/security/credentials/tls/tls_utils.cc +1 -2
- data/src/core/lib/security/credentials/tls/tls_utils.h +3 -3
- data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.h +8 -9
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +2 -3
- data/src/core/lib/security/credentials/xds/xds_credentials.h +7 -9
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +9 -11
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +1 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -11
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +1 -1
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +4 -6
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +5 -6
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +4 -6
- data/src/core/lib/security/security_connector/load_system_roots_windows.cc +3 -4
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +17 -13
- data/src/core/lib/security/security_connector/local/local_security_connector.h +1 -1
- data/src/core/lib/security/security_connector/security_connector.cc +2 -4
- data/src/core/lib/security/security_connector/security_connector.h +7 -8
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +6 -8
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +2 -3
- data/src/core/lib/security/security_connector/ssl_utils.cc +11 -13
- data/src/core/lib/security/security_connector/ssl_utils.h +6 -8
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +8 -10
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +7 -8
- data/src/core/lib/security/transport/auth_filters.h +2 -3
- data/src/core/lib/security/transport/client_auth_filter.cc +8 -10
- data/src/core/lib/security/transport/server_auth_filter.cc +10 -11
- data/src/core/lib/security/util/json_util.cc +4 -5
- data/src/core/lib/slice/percent_encoding.cc +2 -4
- data/src/core/lib/slice/slice.cc +4 -6
- data/src/core/lib/slice/slice.h +5 -7
- data/src/core/lib/slice/slice_buffer.cc +4 -6
- data/src/core/lib/slice/slice_buffer.h +3 -4
- data/src/core/lib/slice/slice_internal.h +3 -5
- data/src/core/lib/slice/slice_refcount.h +2 -3
- data/src/core/lib/slice/slice_string_helpers.h +1 -2
- data/src/core/lib/surface/byte_buffer.cc +1 -2
- data/src/core/lib/surface/byte_buffer_reader.cc +3 -5
- data/src/core/lib/surface/call.cc +22 -24
- data/src/core/lib/surface/call.h +6 -8
- data/src/core/lib/surface/call_log_batch.cc +3 -5
- data/src/core/lib/surface/call_test_only.h +1 -2
- data/src/core/lib/surface/call_utils.cc +16 -59
- data/src/core/lib/surface/call_utils.h +53 -19
- data/src/core/lib/surface/channel.cc +1 -2
- data/src/core/lib/surface/channel.h +11 -12
- data/src/core/lib/surface/channel_create.cc +1 -2
- data/src/core/lib/surface/channel_create.h +2 -3
- data/src/core/lib/surface/channel_init.cc +4 -6
- data/src/core/lib/surface/channel_init.h +3 -5
- data/src/core/lib/surface/client_call.cc +17 -19
- data/src/core/lib/surface/client_call.h +18 -18
- data/src/core/lib/surface/completion_queue.cc +11 -13
- data/src/core/lib/surface/completion_queue.h +3 -4
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/event_string.cc +2 -2
- data/src/core/lib/surface/event_string.h +2 -2
- data/src/core/lib/surface/filter_stack_call.cc +18 -20
- data/src/core/lib/surface/filter_stack_call.h +15 -17
- data/src/core/lib/surface/init.cc +24 -6
- data/src/core/lib/surface/init.h +5 -0
- data/src/core/lib/surface/lame_client.cc +9 -10
- data/src/core/lib/surface/lame_client.h +4 -5
- data/src/core/lib/surface/legacy_channel.cc +10 -11
- data/src/core/lib/surface/legacy_channel.h +6 -7
- data/src/core/lib/surface/metadata_array.cc +1 -2
- data/src/core/lib/surface/server_call.cc +11 -13
- data/src/core/lib/surface/server_call.h +19 -19
- data/src/core/lib/surface/validate_metadata.cc +3 -4
- data/src/core/lib/surface/validate_metadata.h +2 -4
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +1 -2
- data/src/core/lib/transport/bdp_estimator.h +3 -5
- data/src/core/lib/transport/call_arena_allocator.cc +2 -2
- data/src/core/lib/transport/call_arena_allocator.h +2 -3
- data/src/core/lib/transport/call_destination.h +1 -1
- data/src/core/lib/transport/call_filters.cc +5 -117
- data/src/core/lib/transport/call_filters.h +400 -33
- data/src/core/lib/transport/call_final_info.cc +2 -2
- data/src/core/lib/transport/call_final_info.h +2 -2
- data/src/core/lib/transport/call_spine.cc +1 -2
- data/src/core/lib/transport/call_spine.h +29 -12
- data/src/core/lib/transport/call_state.h +145 -41
- data/src/core/lib/transport/connectivity_state.cc +3 -4
- data/src/core/lib/transport/connectivity_state.h +5 -6
- data/src/core/lib/transport/error_utils.cc +3 -4
- data/src/core/lib/transport/error_utils.h +4 -5
- data/src/core/lib/transport/interception_chain.cc +3 -3
- data/src/core/lib/transport/interception_chain.h +16 -7
- data/src/core/lib/transport/message.cc +2 -2
- data/src/core/lib/transport/message.h +5 -0
- data/src/core/lib/transport/metadata_batch.cc +1 -3
- data/src/core/lib/transport/metadata_batch.h +8 -10
- data/src/core/lib/transport/metadata_compression_traits.h +1 -2
- data/src/core/lib/transport/parsed_metadata.h +3 -5
- data/src/core/lib/transport/simple_slice_based_metadata.h +1 -2
- data/src/core/lib/transport/status_conversion.h +1 -1
- data/src/core/lib/transport/timeout_encoding.cc +3 -3
- data/src/core/lib/transport/timeout_encoding.h +2 -4
- data/src/core/lib/transport/transport.cc +4 -6
- data/src/core/lib/transport/transport.h +7 -9
- data/src/core/lib/transport/transport_op_string.cc +4 -5
- data/src/core/load_balancing/address_filtering.cc +2 -4
- data/src/core/load_balancing/address_filtering.h +4 -5
- data/src/core/load_balancing/backend_metric_data.h +2 -2
- data/src/core/load_balancing/backend_metric_parser.cc +1 -2
- data/src/core/load_balancing/backend_metric_parser.h +1 -3
- data/src/core/load_balancing/child_policy_handler.cc +4 -5
- data/src/core/load_balancing/child_policy_handler.h +4 -5
- data/src/core/load_balancing/delegating_helper.h +6 -7
- data/src/core/load_balancing/endpoint_list.cc +6 -8
- data/src/core/load_balancing/endpoint_list.h +6 -8
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +10 -4
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -2
- data/src/core/load_balancing/grpclb/grpclb.cc +19 -21
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -2
- data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +2 -3
- data/src/core/load_balancing/grpclb/grpclb_client_stats.h +5 -7
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +4 -6
- data/src/core/load_balancing/grpclb/load_balancer_api.h +4 -6
- data/src/core/load_balancing/health_check_client.cc +20 -20
- data/src/core/load_balancing/health_check_client.h +3 -3
- data/src/core/load_balancing/health_check_client_internal.h +8 -9
- data/src/core/load_balancing/lb_policy.h +12 -14
- data/src/core/load_balancing/lb_policy_factory.h +4 -5
- data/src/core/load_balancing/lb_policy_registry.cc +3 -4
- data/src/core/load_balancing/lb_policy_registry.h +4 -5
- data/src/core/load_balancing/oob_backend_metric.cc +14 -16
- data/src/core/load_balancing/oob_backend_metric.h +3 -3
- data/src/core/load_balancing/oob_backend_metric_internal.h +8 -9
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +29 -24
- data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -5
- data/src/core/load_balancing/pick_first/pick_first.cc +17 -17
- data/src/core/load_balancing/priority/priority.cc +11 -13
- data/src/core/load_balancing/ring_hash/ring_hash.cc +12 -14
- data/src/core/load_balancing/ring_hash/ring_hash.h +3 -4
- data/src/core/load_balancing/rls/rls.cc +26 -28
- data/src/core/load_balancing/round_robin/round_robin.cc +8 -14
- data/src/core/load_balancing/subchannel_interface.h +13 -6
- data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +2 -2
- data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h +1 -2
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +14 -18
- data/src/core/load_balancing/weighted_target/weighted_target.cc +10 -12
- data/src/core/load_balancing/xds/cds.cc +22 -19
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +41 -44
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +9 -11
- data/src/core/load_balancing/xds/xds_override_host.cc +11 -13
- data/src/core/load_balancing/xds/xds_override_host.h +3 -4
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -11
- data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -6
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +11 -14
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +1 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +4 -6
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -4
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +7 -10
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +15 -19
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +3 -6
- data/src/core/resolver/dns/dns_resolver_plugin.cc +3 -4
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +9 -11
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +3 -4
- data/src/core/resolver/dns/event_engine/service_config_helper.cc +3 -5
- data/src/core/resolver/dns/event_engine/service_config_helper.h +2 -2
- data/src/core/resolver/dns/native/dns_resolver.cc +9 -10
- data/src/core/resolver/endpoint_addresses.cc +1 -3
- data/src/core/resolver/endpoint_addresses.h +2 -3
- data/src/core/resolver/fake/fake_resolver.cc +6 -7
- data/src/core/resolver/fake/fake_resolver.h +7 -8
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +10 -11
- data/src/core/resolver/polling_resolver.cc +6 -8
- data/src/core/resolver/polling_resolver.h +7 -8
- data/src/core/resolver/resolver.h +4 -5
- data/src/core/resolver/resolver_factory.h +4 -5
- data/src/core/resolver/resolver_registry.cc +2 -2
- data/src/core/resolver/resolver_registry.h +4 -5
- data/src/core/resolver/sockaddr/sockaddr_resolver.cc +4 -5
- data/src/core/resolver/xds/xds_config.cc +1 -2
- data/src/core/resolver/xds/xds_config.h +1 -2
- data/src/core/resolver/xds/xds_dependency_manager.cc +1 -4
- data/src/core/resolver/xds/xds_dependency_manager.h +1 -2
- data/src/core/resolver/xds/xds_resolver.cc +14 -16
- data/src/core/resolver/xds/xds_resolver_attributes.h +2 -3
- data/src/core/server/server.cc +95 -73
- data/src/core/server/server.h +13 -15
- data/src/core/server/server_call_tracer_filter.cc +10 -3
- data/src/core/server/server_config_selector.h +5 -6
- data/src/core/server/server_config_selector_filter.cc +8 -6
- data/src/core/server/xds_channel_stack_modifier.cc +2 -2
- data/src/core/server/xds_channel_stack_modifier.h +5 -6
- data/src/core/server/xds_server_config_fetcher.cc +22 -23
- data/src/core/service_config/service_config.h +3 -5
- data/src/core/service_config/service_config_call_data.h +5 -6
- data/src/core/service_config/service_config_channel_arg_filter.cc +7 -5
- data/src/core/service_config/service_config_impl.cc +3 -5
- data/src/core/service_config/service_config_impl.h +4 -6
- data/src/core/service_config/service_config_parser.cc +1 -2
- data/src/core/service_config/service_config_parser.h +2 -4
- data/src/core/telemetry/call_tracer.cc +2 -3
- data/src/core/telemetry/call_tracer.h +4 -5
- data/src/core/telemetry/histogram_view.h +1 -2
- data/src/core/telemetry/metrics.cc +3 -4
- data/src/core/telemetry/metrics.h +6 -7
- data/src/core/telemetry/stats.cc +1 -2
- data/src/core/telemetry/stats.h +2 -4
- data/src/core/telemetry/stats_data.cc +20 -2
- data/src/core/telemetry/stats_data.h +21 -4
- data/src/core/telemetry/tcp_tracer.h +1 -2
- data/src/core/tsi/alts/crypt/aes_gcm.cc +5 -8
- data/src/core/tsi/alts/crypt/gsec.cc +2 -3
- data/src/core/tsi/alts/crypt/gsec.h +3 -4
- data/src/core/tsi/alts/frame_protector/alts_counter.cc +1 -2
- data/src/core/tsi/alts/frame_protector/alts_counter.h +2 -3
- data/src/core/tsi/alts/frame_protector/alts_crypter.cc +1 -2
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +2 -3
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +4 -5
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +1 -2
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +4 -6
- data/src/core/tsi/alts/frame_protector/frame_handler.h +1 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +11 -12
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +2 -3
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +19 -17
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -3
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -2
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +3 -5
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +1 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +2 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +1 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +3 -5
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +3 -4
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +1 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -4
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +1 -2
- data/src/core/tsi/fake_transport_security.cc +4 -7
- data/src/core/tsi/local_transport_security.cc +4 -6
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +4 -5
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +8 -10
- data/src/core/tsi/ssl/session_cache/ssl_session.h +4 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +7 -8
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -4
- data/src/core/tsi/ssl_transport_security.cc +18 -13
- data/src/core/tsi/ssl_transport_security.h +4 -6
- data/src/core/tsi/ssl_transport_security_utils.cc +1 -3
- data/src/core/tsi/ssl_transport_security_utils.h +2 -4
- data/src/core/tsi/ssl_types.h +1 -2
- data/src/core/tsi/transport_security.cc +2 -3
- data/src/core/tsi/transport_security.h +1 -2
- data/src/core/tsi/transport_security_interface.h +1 -2
- data/src/core/util/alloc.cc +2 -5
- data/src/core/util/atm.cc +1 -2
- data/src/core/{lib/gprpp → util}/atomic_utils.h +5 -5
- data/src/core/{lib/avl → util}/avl.h +6 -7
- data/src/core/{lib/backoff → util}/backoff.cc +3 -1
- data/src/core/{lib/backoff → util}/backoff.h +4 -5
- data/src/core/{lib/gprpp → util}/bitset.h +4 -5
- data/src/core/{lib/gprpp → util}/chunked_vector.h +6 -7
- data/src/core/{lib/gprpp → util}/construct_destruct.h +8 -7
- data/src/core/{lib/gprpp → util}/cpp_impl_of.h +3 -3
- data/src/core/{lib/gprpp → util}/crash.cc +2 -3
- data/src/core/{lib/gprpp → util}/crash.h +5 -6
- data/src/core/{lib/gprpp → util}/debug_location.h +5 -5
- data/src/core/{lib/gprpp → util}/directory_reader.h +5 -5
- data/src/core/{lib/gprpp → util}/down_cast.h +7 -7
- data/src/core/{lib/gprpp → util}/dual_ref_counted.h +10 -11
- data/src/core/{lib/gprpp → util}/dump_args.cc +1 -1
- data/src/core/{lib/gprpp → util}/dump_args.h +12 -7
- data/src/core/{lib/gprpp → util}/env.h +5 -5
- data/src/core/{lib/debug → util}/event_log.cc +3 -3
- data/src/core/{lib/debug → util}/event_log.h +6 -8
- data/src/core/{lib/gprpp → util}/examine_stack.cc +1 -1
- data/src/core/{lib/gprpp → util}/examine_stack.h +5 -5
- data/src/core/{lib/gprpp → util}/fork.cc +4 -4
- data/src/core/{lib/gprpp → util}/fork.h +5 -5
- data/src/core/util/gcp_metadata_query.cc +8 -11
- data/src/core/util/gcp_metadata_query.h +2 -3
- data/src/core/{lib/iomgr → util}/gethostname.h +3 -3
- data/src/core/{lib/iomgr → util}/gethostname_fallback.cc +1 -1
- data/src/core/{lib/iomgr → util}/gethostname_host_name_max.cc +2 -3
- data/src/core/{lib/iomgr → util}/gethostname_sysconf.cc +2 -3
- data/src/core/{lib/gprpp → util}/glob.h +3 -3
- data/src/core/util/gpr_time.cc +268 -0
- data/src/core/{lib/iomgr → util}/grpc_if_nametoindex.h +4 -5
- data/src/core/{lib/iomgr → util}/grpc_if_nametoindex_posix.cc +2 -3
- data/src/core/{lib/iomgr → util}/grpc_if_nametoindex_unsupported.cc +2 -3
- data/src/core/{lib/gprpp → util}/host_port.cc +2 -3
- data/src/core/{lib/gprpp → util}/host_port.h +5 -5
- data/src/core/util/http_client/format_request.cc +2 -5
- data/src/core/util/http_client/format_request.h +1 -2
- data/src/core/util/http_client/httpcli.cc +5 -8
- data/src/core/util/http_client/httpcli.h +8 -11
- data/src/core/util/http_client/httpcli_security_connector.cc +9 -12
- data/src/core/util/http_client/httpcli_ssl_credentials.h +2 -3
- data/src/core/util/http_client/parser.cc +2 -4
- data/src/core/util/http_client/parser.h +1 -3
- data/src/core/{lib/gprpp → util}/if_list.h +3 -3
- data/src/core/util/iphone/cpu.cc +1 -2
- data/src/core/util/json/json.h +1 -2
- data/src/core/util/json/json_channel_args.h +0 -1
- data/src/core/util/json/json_object_loader.cc +3 -4
- data/src/core/util/json/json_object_loader.h +4 -5
- data/src/core/util/json/json_reader.cc +2 -5
- data/src/core/util/json/json_reader.h +0 -1
- data/src/core/util/json/json_util.cc +4 -4
- data/src/core/util/json/json_util.h +1 -2
- data/src/core/util/json/json_writer.cc +0 -2
- data/src/core/util/latent_see.cc +17 -8
- data/src/core/util/latent_see.h +22 -4
- data/src/core/util/linux/cpu.cc +4 -6
- data/src/core/{lib/gprpp → util}/linux/env.cc +3 -3
- data/src/core/{lib/gprpp → util}/load_file.cc +4 -5
- data/src/core/{lib/gprpp → util}/load_file.h +5 -6
- data/src/core/util/log.cc +9 -12
- data/src/core/util/lru_cache.h +27 -9
- data/src/core/{lib/gprpp → util}/manual_constructor.h +5 -6
- data/src/core/{lib/gprpp → util}/match.h +6 -7
- data/src/core/{lib/matchers → util}/matchers.cc +10 -3
- data/src/core/{lib/matchers → util}/matchers.h +9 -5
- data/src/core/{lib/gprpp → util}/memory.h +6 -6
- data/src/core/{lib/gprpp → util}/mpscq.cc +1 -1
- data/src/core/{lib/gprpp → util}/mpscq.h +6 -7
- data/src/core/util/msys/tmpfile.cc +3 -4
- data/src/core/{lib/gprpp → util}/no_destruct.h +6 -6
- data/src/core/{lib/gprpp → util}/notification.h +6 -7
- data/src/core/{lib/gprpp → util}/orphanable.h +9 -9
- data/src/core/{lib/gprpp → util}/overload.h +5 -5
- data/src/core/{lib/gprpp → util}/packed_table.h +5 -5
- data/src/core/{lib/gprpp → util}/per_cpu.cc +1 -1
- data/src/core/{lib/gprpp → util}/per_cpu.h +5 -6
- data/src/core/util/posix/cpu.cc +3 -5
- data/src/core/{lib/gprpp → util}/posix/directory_reader.cc +4 -4
- data/src/core/{lib/gprpp → util}/posix/env.cc +1 -1
- data/src/core/{lib/gprpp → util}/posix/stat.cc +4 -5
- data/src/core/util/posix/string.cc +2 -3
- data/src/core/util/posix/sync.cc +3 -5
- data/src/core/{lib/gprpp → util}/posix/thd.cc +8 -11
- data/src/core/util/posix/time.cc +4 -5
- data/src/core/util/posix/tmpfile.cc +4 -6
- data/src/core/{lib/backoff → util}/random_early_detection.cc +3 -3
- data/src/core/{lib/backoff → util}/random_early_detection.h +4 -5
- data/src/core/{lib/gprpp → util}/ref_counted.h +9 -10
- data/src/core/{lib/gprpp → util}/ref_counted_ptr.h +6 -8
- data/src/core/{lib/gprpp → util}/ref_counted_string.cc +3 -4
- data/src/core/{lib/gprpp → util}/ref_counted_string.h +6 -8
- data/src/core/{lib/gprpp → util}/single_set_ptr.h +5 -5
- data/src/core/{lib/gprpp → util}/sorted_pack.h +6 -6
- data/src/core/util/spinlock.h +1 -2
- data/src/core/{lib/gprpp → util}/stat.h +4 -5
- data/src/core/{lib/gprpp → util}/status_helper.cc +4 -6
- data/src/core/{lib/gprpp → util}/status_helper.h +5 -7
- data/src/core/{lib/gprpp → util}/strerror.cc +2 -3
- data/src/core/{lib/gprpp → util}/strerror.h +5 -5
- data/src/core/util/string.cc +4 -7
- data/src/core/util/string.h +1 -3
- data/src/core/util/sync.cc +3 -5
- data/src/core/{lib/gprpp → util}/sync.h +7 -7
- data/src/core/util/sync_abseil.cc +5 -7
- data/src/core/{lib/gprpp → util}/table.h +5 -7
- data/src/core/{lib/gprpp → util}/tchar.cc +1 -1
- data/src/core/{lib/gprpp → util}/tchar.h +3 -3
- data/src/core/{lib/gprpp → util}/thd.h +5 -6
- data/src/core/util/time.cc +174 -204
- data/src/core/{lib/gprpp → util}/time.h +14 -8
- data/src/core/{lib/gprpp → util}/time_averaged_stats.cc +1 -1
- data/src/core/{lib/gprpp → util}/time_averaged_stats.h +3 -3
- data/src/core/util/time_precise.cc +3 -4
- data/src/core/util/time_precise.h +0 -1
- data/src/core/{lib/gprpp → util}/time_util.cc +3 -4
- data/src/core/{lib/gprpp → util}/time_util.h +5 -5
- data/src/core/util/tmpfile.h +0 -1
- data/src/core/{lib/gprpp → util}/type_list.h +3 -3
- data/src/core/{lib/gprpp → util}/unique_type_name.h +5 -6
- data/src/core/{lib/uri/uri_parser.cc → util/uri.cc} +2 -3
- data/src/core/{lib/uri/uri_parser.h → util/uri.h} +5 -5
- data/src/core/{lib/gprpp → util}/uuid_v4.cc +3 -3
- data/src/core/{lib/gprpp → util}/uuid_v4.h +4 -5
- data/src/core/{lib/gprpp → util}/validation_errors.cc +2 -3
- data/src/core/{lib/gprpp → util}/validation_errors.h +4 -5
- data/src/core/util/windows/cpu.cc +1 -1
- data/src/core/{lib/gprpp → util}/windows/directory_reader.cc +1 -1
- data/src/core/{lib/gprpp → util}/windows/env.cc +2 -2
- data/src/core/{lib/gprpp → util}/windows/stat.cc +3 -4
- data/src/core/util/windows/string.cc +2 -3
- data/src/core/util/windows/string_util.cc +5 -7
- data/src/core/util/windows/sync.cc +2 -3
- data/src/core/{lib/gprpp → util}/windows/thd.cc +6 -8
- data/src/core/util/windows/time.cc +2 -4
- data/src/core/util/windows/tmpfile.cc +4 -5
- data/src/core/{lib/gprpp → util}/work_serializer.cc +7 -12
- data/src/core/{lib/gprpp → util}/work_serializer.h +8 -9
- data/src/core/{lib/gprpp → util}/xxhash_inline.h +3 -3
- data/src/core/xds/grpc/certificate_provider_store.cc +2 -3
- data/src/core/xds/grpc/certificate_provider_store.h +8 -9
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -4
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +6 -7
- data/src/core/xds/grpc/xds_audit_logger_registry.cc +4 -5
- data/src/core/xds/grpc/xds_audit_logger_registry.h +3 -4
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +4 -5
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +4 -4
- data/src/core/xds/grpc/xds_certificate_provider.cc +2 -3
- data/src/core/xds/grpc/xds_certificate_provider.h +8 -9
- data/src/core/xds/grpc/xds_client_grpc.cc +63 -39
- data/src/core/xds/grpc/xds_client_grpc.h +14 -8
- data/src/core/xds/grpc/xds_cluster.cc +9 -4
- data/src/core/xds/grpc/xds_cluster.h +30 -4
- data/src/core/xds/grpc/xds_cluster_parser.cc +105 -25
- data/src/core/xds/grpc/xds_cluster_parser.h +6 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +5 -7
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +5 -6
- data/src/core/xds/grpc/xds_common_types.cc +1 -2
- data/src/core/xds/grpc/xds_common_types.h +2 -3
- data/src/core/xds/grpc/xds_common_types_parser.cc +45 -9
- data/src/core/xds/grpc/xds_common_types_parser.h +8 -3
- data/src/core/xds/grpc/xds_endpoint.h +7 -5
- data/src/core/xds/grpc/xds_endpoint_parser.cc +45 -40
- data/src/core/xds/grpc/xds_endpoint_parser.h +1 -2
- data/src/core/xds/grpc/xds_health_status.h +0 -1
- data/src/core/xds/grpc/xds_http_fault_filter.cc +5 -7
- data/src/core/xds/grpc/xds_http_fault_filter.h +4 -5
- data/src/core/xds/grpc/xds_http_filter.h +2 -3
- data/src/core/xds/grpc/xds_http_filter_registry.cc +2 -3
- data/src/core/xds/grpc/xds_http_filter_registry.h +2 -3
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +3 -4
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +2 -3
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +42 -39
- data/src/core/xds/grpc/xds_http_rbac_filter.h +4 -5
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +5 -6
- data/src/core/xds/grpc/xds_http_stateful_session_filter.h +4 -5
- data/src/core/xds/grpc/xds_lb_policy_registry.cc +4 -6
- data/src/core/xds/grpc/xds_lb_policy_registry.h +3 -4
- data/src/core/xds/grpc/xds_listener.cc +1 -2
- data/src/core/xds/grpc/xds_listener.h +1 -2
- data/src/core/xds/grpc/xds_listener_parser.cc +5 -8
- data/src/core/xds/grpc/xds_listener_parser.h +1 -2
- data/src/core/xds/grpc/xds_metadata.h +26 -3
- data/src/core/xds/grpc/xds_metadata_parser.cc +51 -10
- data/src/core/xds/grpc/xds_metadata_parser.h +1 -2
- data/src/core/xds/grpc/xds_route_config.cc +2 -3
- data/src/core/xds/grpc/xds_route_config.h +2 -3
- data/src/core/xds/grpc/xds_route_config_parser.cc +10 -12
- data/src/core/xds/grpc/xds_route_config_parser.h +4 -7
- data/src/core/xds/grpc/xds_routing.cc +2 -4
- data/src/core/xds/grpc/xds_routing.h +1 -3
- data/src/core/xds/grpc/xds_server_grpc.cc +0 -1
- data/src/core/xds/grpc/xds_server_grpc.h +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +94 -49
- data/src/core/xds/grpc/xds_transport_grpc.h +33 -22
- data/src/core/xds/xds_client/lrs_client.cc +1292 -0
- data/src/core/xds/xds_client/lrs_client.h +394 -0
- data/src/core/xds/xds_client/xds_api.cc +31 -245
- data/src/core/xds/xds_client/xds_api.h +13 -36
- data/src/core/xds/xds_client/xds_backend_metric_propagation.cc +63 -0
- data/src/core/xds/xds_client/xds_backend_metric_propagation.h +59 -0
- data/src/core/xds/xds_client/xds_bootstrap.cc +2 -3
- data/src/core/xds/xds_client/xds_bootstrap.h +2 -2
- data/src/core/xds/xds_client/xds_client.cc +57 -595
- data/src/core/xds/xds_client/xds_client.h +33 -86
- data/src/core/xds/xds_client/xds_locality.h +102 -0
- data/src/core/xds/xds_client/xds_metrics.h +2 -2
- data/src/core/xds/xds_client/xds_resource_type.h +4 -5
- data/src/core/xds/xds_client/xds_resource_type_impl.h +3 -4
- data/src/core/xds/xds_client/xds_transport.h +29 -14
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -3
- data/src/ruby/ext/grpc/rb_call.c +5 -5
- data/src/ruby/ext/grpc/rb_call_credentials.c +5 -6
- data/src/ruby/ext/grpc/rb_channel.c +6 -7
- data/src/ruby/ext/grpc/rb_channel_args.c +3 -3
- data/src/ruby/ext/grpc/rb_channel_credentials.c +5 -6
- data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -2
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -4
- data/src/ruby/ext/grpc/rb_compression_options.c +6 -7
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -5
- data/src/ruby/ext/grpc/rb_grpc.c +3 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -2
- data/src/ruby/ext/grpc/rb_server.c +6 -6
- data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +1 -2
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +5 -6
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +1 -2
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +4 -4
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +1 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +20 -20
- data/third_party/abseil-cpp/absl/algorithm/container.h +57 -18
- data/third_party/abseil-cpp/absl/base/attributes.h +84 -0
- data/third_party/abseil-cpp/absl/base/config.h +32 -51
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +0 -16
- data/third_party/abseil-cpp/absl/base/internal/nullability_impl.h +3 -1
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +13 -3
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -12
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +48 -0
- data/third_party/abseil-cpp/absl/base/no_destructor.h +35 -40
- data/third_party/abseil-cpp/absl/base/nullability.h +33 -7
- data/third_party/abseil-cpp/absl/base/optimization.h +11 -0
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/prefetch.h +1 -1
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +68 -12
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +60 -6
- data/third_party/abseil-cpp/absl/container/hash_container_defaults.h +45 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +13 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +20 -11
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +15 -16
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +34 -1
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +68 -1
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +50 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +22 -7
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +26 -8
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +39 -35
- data/third_party/abseil-cpp/absl/container/internal/layout.h +190 -74
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +8 -6
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +334 -71
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1299 -458
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +19 -17
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +4 -3
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +2 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +12 -8
- data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +1 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +11 -7
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +18 -17
- data/third_party/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +126 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +258 -0
- data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +55 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1057 -86
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +3 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +925 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +42 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +43 -16
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +8 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +10 -7
- data/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +70 -0
- data/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +47 -0
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +11 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +2 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +117 -30
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +192 -30
- data/third_party/abseil-cpp/absl/flags/reflection.cc +10 -0
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +13 -3
- data/third_party/abseil-cpp/absl/functional/bind_front.h +3 -2
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +7 -7
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +9 -9
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -1
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +13 -3
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +60 -28
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +4 -0
- data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +3 -3
- data/third_party/abseil-cpp/absl/log/globals.h +28 -15
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +20 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +63 -21
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +2 -2
- data/third_party/abseil-cpp/absl/log/internal/log_impl.h +23 -23
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +104 -47
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +23 -4
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -10
- data/third_party/abseil-cpp/absl/log/internal/strip.h +36 -0
- data/third_party/abseil-cpp/absl/log/log.h +5 -1
- data/third_party/abseil-cpp/absl/log/log_sink.h +11 -4
- data/third_party/abseil-cpp/absl/log/vlog_is_on.h +3 -3
- data/third_party/abseil-cpp/absl/meta/type_traits.h +138 -42
- data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -3
- data/third_party/abseil-cpp/absl/numeric/int128.h +35 -5
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +14 -0
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +18 -0
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +6 -2
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +8 -8
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +9 -7
- data/third_party/abseil-cpp/absl/random/distributions.h +11 -11
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +2 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +61 -2
- data/third_party/abseil-cpp/absl/status/status.cc +0 -4
- data/third_party/abseil-cpp/absl/status/status.h +4 -4
- data/third_party/abseil-cpp/absl/status/statusor.h +108 -142
- data/third_party/abseil-cpp/absl/strings/ascii.cc +32 -71
- data/third_party/abseil-cpp/absl/strings/cord.cc +20 -15
- data/third_party/abseil-cpp/absl/strings/cord.h +68 -7
- data/third_party/abseil-cpp/absl/strings/escaping.cc +96 -21
- data/third_party/abseil-cpp/absl/strings/escaping.h +25 -8
- data/third_party/abseil-cpp/absl/strings/has_absl_stringify.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +10 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +29 -9
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +19 -13
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +23 -13
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +24 -24
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +12 -7
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +9 -4
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +5 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +23 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +5 -1
- data/third_party/abseil-cpp/absl/strings/numbers.cc +107 -333
- data/third_party/abseil-cpp/absl/strings/numbers.h +12 -151
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +49 -142
- data/third_party/abseil-cpp/absl/strings/str_cat.h +70 -85
- data/third_party/abseil-cpp/absl/strings/str_format.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_join.h +19 -5
- data/third_party/abseil-cpp/absl/strings/str_split.h +2 -2
- data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
- data/third_party/abseil-cpp/absl/strings/substitute.cc +4 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +5 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +5 -4
- data/third_party/abseil-cpp/absl/time/civil_time.h +2 -2
- data/third_party/abseil-cpp/absl/time/clock.cc +15 -1
- data/third_party/abseil-cpp/absl/time/duration.cc +58 -53
- data/third_party/abseil-cpp/absl/time/format.cc +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +0 -29
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +3 -3
- data/third_party/abseil-cpp/absl/time/time.h +73 -29
- data/third_party/abseil-cpp/absl/types/compare.h +505 -0
- data/third_party/abseil-cpp/absl/types/internal/optional.h +2 -2
- data/third_party/abseil-cpp/absl/types/internal/variant.h +55 -67
- data/third_party/abseil-cpp/absl/types/optional.h +15 -18
- data/third_party/abseil-cpp/absl/types/span.h +3 -2
- data/third_party/abseil-cpp/absl/types/variant.h +19 -24
- data/third_party/abseil-cpp/absl/utility/utility.h +3 -41
- data/third_party/upb/upb/json/decode.c +20 -3
- data/third_party/upb/upb/json/encode.c +2 -2
- data/third_party/upb/upb/lex/round_trip.c +10 -0
- data/third_party/upb/upb/mem/arena.c +12 -1
- data/third_party/upb/upb/mem/arena.h +9 -0
- data/third_party/upb/upb/mem/arena.hpp +5 -1
- data/third_party/upb/upb/message/accessors.c +2 -4
- data/third_party/upb/upb/message/accessors.h +172 -381
- data/third_party/upb/upb/message/copy.c +11 -7
- data/third_party/upb/upb/message/internal/accessors.h +571 -26
- data/third_party/upb/upb/message/internal/extension.c +1 -0
- data/third_party/upb/upb/message/internal/message.c +10 -11
- data/third_party/upb/upb/message/internal/message.h +8 -7
- data/third_party/upb/upb/message/merge.c +38 -0
- data/third_party/upb/upb/message/merge.h +26 -0
- data/third_party/upb/upb/message/message.h +6 -10
- data/third_party/upb/upb/message/value.h +26 -0
- data/third_party/upb/upb/mini_descriptor/decode.c +7 -2
- data/third_party/upb/upb/mini_descriptor/link.c +7 -3
- data/third_party/upb/upb/mini_table/extension_registry.c +18 -0
- data/third_party/upb/upb/mini_table/extension_registry.h +17 -0
- data/third_party/upb/upb/mini_table/internal/extension.h +9 -0
- data/third_party/upb/upb/mini_table/internal/message.c +21 -1
- data/third_party/upb/upb/mini_table/internal/message.h +40 -20
- data/third_party/upb/upb/mini_table/internal/sub.h +5 -0
- data/third_party/upb/upb/mini_table/message.h +11 -1
- data/third_party/upb/upb/port/def.inc +75 -4
- data/third_party/upb/upb/port/undef.inc +4 -0
- data/third_party/upb/upb/reflection/def.hpp +8 -0
- data/third_party/upb/upb/reflection/field_def.c +8 -5
- data/third_party/upb/upb/reflection/field_def.h +1 -0
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message.c +8 -3
- data/third_party/upb/upb/reflection/message.h +2 -2
- data/third_party/upb/upb/text/encode.c +51 -387
- data/third_party/upb/upb/text/encode.h +1 -11
- data/third_party/upb/upb/text/internal/encode.c +180 -0
- data/third_party/upb/upb/text/internal/encode.h +240 -0
- data/third_party/upb/upb/text/options.h +22 -0
- data/third_party/upb/upb/wire/decode.c +71 -39
- data/third_party/upb/upb/wire/decode.h +3 -0
- data/third_party/upb/upb/wire/encode.c +41 -18
- data/third_party/upb/upb/wire/encode.h +3 -0
- data/third_party/upb/upb/wire/internal/decode_fast.c +3 -0
- metadata +129 -102
- data/src/core/lib/gprpp/time.cc +0 -241
- data/src/core/resolver/binder/binder_resolver.cc +0 -153
- data/src/core/xds/xds_client/xds_client_stats.cc +0 -164
- data/src/core/xds/xds_client/xds_client_stats.h +0 -258
- data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +0 -44
- /data/src/core/{lib/gprpp → util}/glob.cc +0 -0
@@ -14,18 +14,19 @@
|
|
14
14
|
|
15
15
|
// For reference check out:
|
16
16
|
// https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling
|
17
|
-
//
|
18
|
-
// Note that we only have partial C++11 support yet.
|
19
17
|
|
20
18
|
#include "absl/debugging/internal/demangle.h"
|
21
19
|
|
20
|
+
#include <cstddef>
|
22
21
|
#include <cstdint>
|
23
22
|
#include <cstdio>
|
24
23
|
#include <cstdlib>
|
24
|
+
#include <cstring>
|
25
25
|
#include <limits>
|
26
26
|
#include <string>
|
27
27
|
|
28
28
|
#include "absl/base/config.h"
|
29
|
+
#include "absl/debugging/internal/demangle_rust.h"
|
29
30
|
|
30
31
|
#if ABSL_INTERNAL_HAS_CXA_DEMANGLE
|
31
32
|
#include <cxxabi.h>
|
@@ -44,14 +45,16 @@ typedef struct {
|
|
44
45
|
|
45
46
|
// List of operators from Itanium C++ ABI.
|
46
47
|
static const AbbrevPair kOperatorList[] = {
|
47
|
-
// New has special syntax
|
48
|
+
// New has special syntax.
|
48
49
|
{"nw", "new", 0},
|
49
50
|
{"na", "new[]", 0},
|
50
51
|
|
51
|
-
//
|
52
|
+
// Special-cased elsewhere to support the optional gs prefix.
|
52
53
|
{"dl", "delete", 1},
|
53
54
|
{"da", "delete[]", 1},
|
54
55
|
|
56
|
+
{"aw", "co_await", 1},
|
57
|
+
|
55
58
|
{"ps", "+", 1}, // "positive"
|
56
59
|
{"ng", "-", 1}, // "negative"
|
57
60
|
{"ad", "&", 1}, // "address-of"
|
@@ -79,6 +82,7 @@ static const AbbrevPair kOperatorList[] = {
|
|
79
82
|
{"rs", ">>", 2},
|
80
83
|
{"lS", "<<=", 2},
|
81
84
|
{"rS", ">>=", 2},
|
85
|
+
{"ss", "<=>", 2},
|
82
86
|
{"eq", "==", 2},
|
83
87
|
{"ne", "!=", 2},
|
84
88
|
{"lt", "<", 2},
|
@@ -98,6 +102,7 @@ static const AbbrevPair kOperatorList[] = {
|
|
98
102
|
{"qu", "?", 3},
|
99
103
|
{"st", "sizeof", 0}, // Special syntax
|
100
104
|
{"sz", "sizeof", 1}, // Not a real operator name, but used in expressions.
|
105
|
+
{"sZ", "sizeof...", 0}, // Special syntax
|
101
106
|
{nullptr, nullptr, 0},
|
102
107
|
};
|
103
108
|
|
@@ -187,9 +192,50 @@ typedef struct {
|
|
187
192
|
int recursion_depth; // For stack exhaustion prevention.
|
188
193
|
int steps; // Cap how much work we'll do, regardless of depth.
|
189
194
|
ParseState parse_state; // Backtrackable state copied for most frames.
|
195
|
+
|
196
|
+
// Conditionally compiled support for marking the position of the first
|
197
|
+
// construct Demangle couldn't parse. This preprocessor symbol is intended
|
198
|
+
// for use by Abseil demangler maintainers only; its behavior is not part of
|
199
|
+
// Abseil's public interface.
|
200
|
+
#ifdef ABSL_INTERNAL_DEMANGLE_RECORDS_HIGH_WATER_MARK
|
201
|
+
int high_water_mark; // Input position where parsing failed.
|
202
|
+
bool too_complex; // True if any guard.IsTooComplex() call returned true.
|
203
|
+
#endif
|
190
204
|
} State;
|
191
205
|
|
192
206
|
namespace {
|
207
|
+
|
208
|
+
#ifdef ABSL_INTERNAL_DEMANGLE_RECORDS_HIGH_WATER_MARK
|
209
|
+
void UpdateHighWaterMark(State *state) {
|
210
|
+
if (state->high_water_mark < state->parse_state.mangled_idx) {
|
211
|
+
state->high_water_mark = state->parse_state.mangled_idx;
|
212
|
+
}
|
213
|
+
}
|
214
|
+
|
215
|
+
void ReportHighWaterMark(State *state) {
|
216
|
+
// Write out the mangled name with the trouble point marked, provided that the
|
217
|
+
// output buffer is large enough and the mangled name did not hit a complexity
|
218
|
+
// limit (in which case the high water mark wouldn't point out an unparsable
|
219
|
+
// construct, only the point where a budget ran out).
|
220
|
+
const size_t input_length = std::strlen(state->mangled_begin);
|
221
|
+
if (input_length + 6 > static_cast<size_t>(state->out_end_idx) ||
|
222
|
+
state->too_complex) {
|
223
|
+
if (state->out_end_idx > 0) state->out[0] = '\0';
|
224
|
+
return;
|
225
|
+
}
|
226
|
+
const size_t high_water_mark = static_cast<size_t>(state->high_water_mark);
|
227
|
+
std::memcpy(state->out, state->mangled_begin, high_water_mark);
|
228
|
+
std::memcpy(state->out + high_water_mark, "--!--", 5);
|
229
|
+
std::memcpy(state->out + high_water_mark + 5,
|
230
|
+
state->mangled_begin + high_water_mark,
|
231
|
+
input_length - high_water_mark);
|
232
|
+
state->out[input_length + 5] = '\0';
|
233
|
+
}
|
234
|
+
#else
|
235
|
+
void UpdateHighWaterMark(State *) {}
|
236
|
+
void ReportHighWaterMark(State *) {}
|
237
|
+
#endif
|
238
|
+
|
193
239
|
// Prevent deep recursion / stack exhaustion.
|
194
240
|
// Also prevent unbounded handling of complex inputs.
|
195
241
|
class ComplexityGuard {
|
@@ -201,7 +247,7 @@ class ComplexityGuard {
|
|
201
247
|
~ComplexityGuard() { --state_->recursion_depth; }
|
202
248
|
|
203
249
|
// 256 levels of recursion seems like a reasonable upper limit on depth.
|
204
|
-
// 128 is not enough to
|
250
|
+
// 128 is not enough to demangle synthetic tests from demangle_unittest.txt:
|
205
251
|
// "_ZaaZZZZ..." and "_ZaaZcvZcvZ..."
|
206
252
|
static constexpr int kRecursionDepthLimit = 256;
|
207
253
|
|
@@ -222,8 +268,14 @@ class ComplexityGuard {
|
|
222
268
|
static constexpr int kParseStepsLimit = 1 << 17;
|
223
269
|
|
224
270
|
bool IsTooComplex() const {
|
225
|
-
|
226
|
-
|
271
|
+
if (state_->recursion_depth > kRecursionDepthLimit ||
|
272
|
+
state_->steps > kParseStepsLimit) {
|
273
|
+
#ifdef ABSL_INTERNAL_DEMANGLE_RECORDS_HIGH_WATER_MARK
|
274
|
+
state_->too_complex = true;
|
275
|
+
#endif
|
276
|
+
return true;
|
277
|
+
}
|
278
|
+
return false;
|
227
279
|
}
|
228
280
|
|
229
281
|
private:
|
@@ -270,6 +322,10 @@ static void InitState(State* state,
|
|
270
322
|
state->out_end_idx = static_cast<int>(out_size);
|
271
323
|
state->recursion_depth = 0;
|
272
324
|
state->steps = 0;
|
325
|
+
#ifdef ABSL_INTERNAL_DEMANGLE_RECORDS_HIGH_WATER_MARK
|
326
|
+
state->high_water_mark = 0;
|
327
|
+
state->too_complex = false;
|
328
|
+
#endif
|
273
329
|
|
274
330
|
state->parse_state.mangled_idx = 0;
|
275
331
|
state->parse_state.out_cur_idx = 0;
|
@@ -291,13 +347,14 @@ static bool ParseOneCharToken(State *state, const char one_char_token) {
|
|
291
347
|
if (guard.IsTooComplex()) return false;
|
292
348
|
if (RemainingInput(state)[0] == one_char_token) {
|
293
349
|
++state->parse_state.mangled_idx;
|
350
|
+
UpdateHighWaterMark(state);
|
294
351
|
return true;
|
295
352
|
}
|
296
353
|
return false;
|
297
354
|
}
|
298
355
|
|
299
|
-
// Returns true and advances "
|
300
|
-
// at "
|
356
|
+
// Returns true and advances "mangled_idx" if we find "two_char_token"
|
357
|
+
// at "mangled_idx" position. It is assumed that "two_char_token" does
|
301
358
|
// not contain '\0'.
|
302
359
|
static bool ParseTwoCharToken(State *state, const char *two_char_token) {
|
303
360
|
ComplexityGuard guard(state);
|
@@ -305,11 +362,45 @@ static bool ParseTwoCharToken(State *state, const char *two_char_token) {
|
|
305
362
|
if (RemainingInput(state)[0] == two_char_token[0] &&
|
306
363
|
RemainingInput(state)[1] == two_char_token[1]) {
|
307
364
|
state->parse_state.mangled_idx += 2;
|
365
|
+
UpdateHighWaterMark(state);
|
308
366
|
return true;
|
309
367
|
}
|
310
368
|
return false;
|
311
369
|
}
|
312
370
|
|
371
|
+
// Returns true and advances "mangled_idx" if we find "three_char_token"
|
372
|
+
// at "mangled_idx" position. It is assumed that "three_char_token" does
|
373
|
+
// not contain '\0'.
|
374
|
+
static bool ParseThreeCharToken(State *state, const char *three_char_token) {
|
375
|
+
ComplexityGuard guard(state);
|
376
|
+
if (guard.IsTooComplex()) return false;
|
377
|
+
if (RemainingInput(state)[0] == three_char_token[0] &&
|
378
|
+
RemainingInput(state)[1] == three_char_token[1] &&
|
379
|
+
RemainingInput(state)[2] == three_char_token[2]) {
|
380
|
+
state->parse_state.mangled_idx += 3;
|
381
|
+
UpdateHighWaterMark(state);
|
382
|
+
return true;
|
383
|
+
}
|
384
|
+
return false;
|
385
|
+
}
|
386
|
+
|
387
|
+
// Returns true and advances "mangled_idx" if we find a copy of the
|
388
|
+
// NUL-terminated string "long_token" at "mangled_idx" position.
|
389
|
+
static bool ParseLongToken(State *state, const char *long_token) {
|
390
|
+
ComplexityGuard guard(state);
|
391
|
+
if (guard.IsTooComplex()) return false;
|
392
|
+
int i = 0;
|
393
|
+
for (; long_token[i] != '\0'; ++i) {
|
394
|
+
// Note that we cannot run off the end of the NUL-terminated input here.
|
395
|
+
// Inside the loop body, long_token[i] is known to be different from NUL.
|
396
|
+
// So if we read the NUL on the end of the input here, we return at once.
|
397
|
+
if (RemainingInput(state)[i] != long_token[i]) return false;
|
398
|
+
}
|
399
|
+
state->parse_state.mangled_idx += i;
|
400
|
+
UpdateHighWaterMark(state);
|
401
|
+
return true;
|
402
|
+
}
|
403
|
+
|
313
404
|
// Returns true and advances "mangled_cur" if we find any character in
|
314
405
|
// "char_class" at "mangled_cur" position.
|
315
406
|
static bool ParseCharClass(State *state, const char *char_class) {
|
@@ -322,6 +413,7 @@ static bool ParseCharClass(State *state, const char *char_class) {
|
|
322
413
|
for (; *p != '\0'; ++p) {
|
323
414
|
if (RemainingInput(state)[0] == *p) {
|
324
415
|
++state->parse_state.mangled_idx;
|
416
|
+
UpdateHighWaterMark(state);
|
325
417
|
return true;
|
326
418
|
}
|
327
419
|
}
|
@@ -554,6 +646,7 @@ static bool ParseFloatNumber(State *state);
|
|
554
646
|
static bool ParseSeqId(State *state);
|
555
647
|
static bool ParseIdentifier(State *state, size_t length);
|
556
648
|
static bool ParseOperatorName(State *state, int *arity);
|
649
|
+
static bool ParseConversionOperatorType(State *state);
|
557
650
|
static bool ParseSpecialName(State *state);
|
558
651
|
static bool ParseCallOffset(State *state);
|
559
652
|
static bool ParseNVOffset(State *state);
|
@@ -563,21 +656,33 @@ static bool ParseCtorDtorName(State *state);
|
|
563
656
|
static bool ParseDecltype(State *state);
|
564
657
|
static bool ParseType(State *state);
|
565
658
|
static bool ParseCVQualifiers(State *state);
|
659
|
+
static bool ParseExtendedQualifier(State *state);
|
566
660
|
static bool ParseBuiltinType(State *state);
|
661
|
+
static bool ParseVendorExtendedType(State *state);
|
567
662
|
static bool ParseFunctionType(State *state);
|
568
663
|
static bool ParseBareFunctionType(State *state);
|
664
|
+
static bool ParseOverloadAttribute(State *state);
|
569
665
|
static bool ParseClassEnumType(State *state);
|
570
666
|
static bool ParseArrayType(State *state);
|
571
667
|
static bool ParsePointerToMemberType(State *state);
|
572
668
|
static bool ParseTemplateParam(State *state);
|
669
|
+
static bool ParseTemplateParamDecl(State *state);
|
573
670
|
static bool ParseTemplateTemplateParam(State *state);
|
574
671
|
static bool ParseTemplateArgs(State *state);
|
575
672
|
static bool ParseTemplateArg(State *state);
|
576
673
|
static bool ParseBaseUnresolvedName(State *state);
|
577
674
|
static bool ParseUnresolvedName(State *state);
|
675
|
+
static bool ParseUnresolvedQualifierLevel(State *state);
|
676
|
+
static bool ParseUnionSelector(State* state);
|
677
|
+
static bool ParseFunctionParam(State* state);
|
678
|
+
static bool ParseBracedExpression(State *state);
|
578
679
|
static bool ParseExpression(State *state);
|
680
|
+
static bool ParseInitializer(State *state);
|
579
681
|
static bool ParseExprPrimary(State *state);
|
580
|
-
static bool
|
682
|
+
static bool ParseExprCastValueAndTrailingE(State *state);
|
683
|
+
static bool ParseQRequiresClauseExpr(State *state);
|
684
|
+
static bool ParseRequirement(State *state);
|
685
|
+
static bool ParseTypeConstraint(State *state);
|
581
686
|
static bool ParseLocalName(State *state);
|
582
687
|
static bool ParseLocalNameSuffix(State *state);
|
583
688
|
static bool ParseDiscriminator(State *state);
|
@@ -622,22 +727,34 @@ static bool ParseMangledName(State *state) {
|
|
622
727
|
}
|
623
728
|
|
624
729
|
// <encoding> ::= <(function) name> <bare-function-type>
|
730
|
+
// [`Q` <requires-clause expr>]
|
625
731
|
// ::= <(data) name>
|
626
732
|
// ::= <special-name>
|
733
|
+
//
|
734
|
+
// NOTE: Based on http://shortn/_Hoq9qG83rx
|
627
735
|
static bool ParseEncoding(State *state) {
|
628
736
|
ComplexityGuard guard(state);
|
629
737
|
if (guard.IsTooComplex()) return false;
|
630
|
-
//
|
631
|
-
//
|
738
|
+
// Since the first two productions both start with <name>, attempt
|
739
|
+
// to parse it only once to avoid exponential blowup of backtracking.
|
632
740
|
//
|
633
|
-
//
|
634
|
-
//
|
635
|
-
|
741
|
+
// We're careful about exponential blowup because <encoding> recursively
|
742
|
+
// appears in other productions downstream of its first two productions,
|
743
|
+
// which means that every call to `ParseName` would possibly indirectly
|
744
|
+
// result in two calls to `ParseName` etc.
|
745
|
+
if (ParseName(state)) {
|
746
|
+
if (!ParseBareFunctionType(state)) {
|
747
|
+
return true; // <(data) name>
|
748
|
+
}
|
749
|
+
|
750
|
+
// Parsed: <(function) name> <bare-function-type>
|
751
|
+
// Pending: [`Q` <requires-clause expr>]
|
752
|
+
ParseQRequiresClauseExpr(state); // restores state on failure
|
636
753
|
return true;
|
637
754
|
}
|
638
755
|
|
639
756
|
if (ParseSpecialName(state)) {
|
640
|
-
return true;
|
757
|
+
return true; // <special-name>
|
641
758
|
}
|
642
759
|
return false;
|
643
760
|
}
|
@@ -723,19 +840,26 @@ static bool ParseNestedName(State *state) {
|
|
723
840
|
// <prefix> ::= <prefix> <unqualified-name>
|
724
841
|
// ::= <template-prefix> <template-args>
|
725
842
|
// ::= <template-param>
|
843
|
+
// ::= <decltype>
|
726
844
|
// ::= <substitution>
|
727
845
|
// ::= # empty
|
728
846
|
// <template-prefix> ::= <prefix> <(template) unqualified-name>
|
729
847
|
// ::= <template-param>
|
730
848
|
// ::= <substitution>
|
849
|
+
// ::= <vendor-extended-type>
|
731
850
|
static bool ParsePrefix(State *state) {
|
732
851
|
ComplexityGuard guard(state);
|
733
852
|
if (guard.IsTooComplex()) return false;
|
734
853
|
bool has_something = false;
|
735
854
|
while (true) {
|
736
855
|
MaybeAppendSeparator(state);
|
737
|
-
if (ParseTemplateParam(state) ||
|
856
|
+
if (ParseTemplateParam(state) || ParseDecltype(state) ||
|
738
857
|
ParseSubstitution(state, /*accept_std=*/true) ||
|
858
|
+
// Although the official grammar does not mention it, nested-names
|
859
|
+
// shaped like Nu14__some_builtinIiE6memberE occur in practice, and it
|
860
|
+
// is not clear what else a compiler is supposed to do when a
|
861
|
+
// vendor-extended type has named members.
|
862
|
+
ParseVendorExtendedType(state) ||
|
739
863
|
ParseUnscopedName(state) ||
|
740
864
|
(ParseOneCharToken(state, 'M') && ParseUnnamedTypeName(state))) {
|
741
865
|
has_something = true;
|
@@ -757,8 +881,14 @@ static bool ParsePrefix(State *state) {
|
|
757
881
|
// ::= <source-name> [<abi-tags>]
|
758
882
|
// ::= <local-source-name> [<abi-tags>]
|
759
883
|
// ::= <unnamed-type-name> [<abi-tags>]
|
884
|
+
// ::= DC <source-name>+ E # C++17 structured binding
|
885
|
+
// ::= F <source-name> # C++20 constrained friend
|
886
|
+
// ::= F <operator-name> # C++20 constrained friend
|
760
887
|
//
|
761
888
|
// <local-source-name> is a GCC extension; see below.
|
889
|
+
//
|
890
|
+
// For the F notation for constrained friends, see
|
891
|
+
// https://github.com/itanium-cxx-abi/cxx-abi/issues/24#issuecomment-1491130332.
|
762
892
|
static bool ParseUnqualifiedName(State *state) {
|
763
893
|
ComplexityGuard guard(state);
|
764
894
|
if (guard.IsTooComplex()) return false;
|
@@ -767,6 +897,23 @@ static bool ParseUnqualifiedName(State *state) {
|
|
767
897
|
ParseUnnamedTypeName(state)) {
|
768
898
|
return ParseAbiTags(state);
|
769
899
|
}
|
900
|
+
|
901
|
+
// DC <source-name>+ E
|
902
|
+
ParseState copy = state->parse_state;
|
903
|
+
if (ParseTwoCharToken(state, "DC") && OneOrMore(ParseSourceName, state) &&
|
904
|
+
ParseOneCharToken(state, 'E')) {
|
905
|
+
return true;
|
906
|
+
}
|
907
|
+
state->parse_state = copy;
|
908
|
+
|
909
|
+
// F <source-name>
|
910
|
+
// F <operator-name>
|
911
|
+
if (ParseOneCharToken(state, 'F') && MaybeAppend(state, "friend ") &&
|
912
|
+
(ParseSourceName(state) || ParseOperatorName(state, nullptr))) {
|
913
|
+
return true;
|
914
|
+
}
|
915
|
+
state->parse_state = copy;
|
916
|
+
|
770
917
|
return false;
|
771
918
|
}
|
772
919
|
|
@@ -824,7 +971,11 @@ static bool ParseLocalSourceName(State *state) {
|
|
824
971
|
// <unnamed-type-name> ::= Ut [<(nonnegative) number>] _
|
825
972
|
// ::= <closure-type-name>
|
826
973
|
// <closure-type-name> ::= Ul <lambda-sig> E [<(nonnegative) number>] _
|
827
|
-
// <lambda-sig> ::= <(parameter) type>+
|
974
|
+
// <lambda-sig> ::= <template-param-decl>* <(parameter) type>+
|
975
|
+
//
|
976
|
+
// For <template-param-decl>* in <lambda-sig> see:
|
977
|
+
//
|
978
|
+
// https://github.com/itanium-cxx-abi/cxx-abi/issues/31
|
828
979
|
static bool ParseUnnamedTypeName(State *state) {
|
829
980
|
ComplexityGuard guard(state);
|
830
981
|
if (guard.IsTooComplex()) return false;
|
@@ -847,6 +998,7 @@ static bool ParseUnnamedTypeName(State *state) {
|
|
847
998
|
// Closure type.
|
848
999
|
which = -1;
|
849
1000
|
if (ParseTwoCharToken(state, "Ul") && DisableAppend(state) &&
|
1001
|
+
ZeroOrMore(ParseTemplateParamDecl, state) &&
|
850
1002
|
OneOrMore(ParseType, state) && RestoreAppend(state, copy.append) &&
|
851
1003
|
ParseOneCharToken(state, 'E') && Optional(ParseNumber(state, &which)) &&
|
852
1004
|
which <= std::numeric_limits<int>::max() - 2 && // Don't overflow.
|
@@ -888,6 +1040,7 @@ static bool ParseNumber(State *state, int *number_out) {
|
|
888
1040
|
}
|
889
1041
|
if (p != RemainingInput(state)) { // Conversion succeeded.
|
890
1042
|
state->parse_state.mangled_idx += p - RemainingInput(state);
|
1043
|
+
UpdateHighWaterMark(state);
|
891
1044
|
if (number_out != nullptr) {
|
892
1045
|
// Note: possibly truncate "number".
|
893
1046
|
*number_out = static_cast<int>(number);
|
@@ -910,6 +1063,7 @@ static bool ParseFloatNumber(State *state) {
|
|
910
1063
|
}
|
911
1064
|
if (p != RemainingInput(state)) { // Conversion succeeded.
|
912
1065
|
state->parse_state.mangled_idx += p - RemainingInput(state);
|
1066
|
+
UpdateHighWaterMark(state);
|
913
1067
|
return true;
|
914
1068
|
}
|
915
1069
|
return false;
|
@@ -928,6 +1082,7 @@ static bool ParseSeqId(State *state) {
|
|
928
1082
|
}
|
929
1083
|
if (p != RemainingInput(state)) { // Conversion succeeded.
|
930
1084
|
state->parse_state.mangled_idx += p - RemainingInput(state);
|
1085
|
+
UpdateHighWaterMark(state);
|
931
1086
|
return true;
|
932
1087
|
}
|
933
1088
|
return false;
|
@@ -946,11 +1101,13 @@ static bool ParseIdentifier(State *state, size_t length) {
|
|
946
1101
|
MaybeAppendWithLength(state, RemainingInput(state), length);
|
947
1102
|
}
|
948
1103
|
state->parse_state.mangled_idx += length;
|
1104
|
+
UpdateHighWaterMark(state);
|
949
1105
|
return true;
|
950
1106
|
}
|
951
1107
|
|
952
1108
|
// <operator-name> ::= nw, and other two letters cases
|
953
1109
|
// ::= cv <type> # (cast)
|
1110
|
+
// ::= li <source-name> # C++11 user-defined literal
|
954
1111
|
// ::= v <digit> <source-name> # vendor extended operator
|
955
1112
|
static bool ParseOperatorName(State *state, int *arity) {
|
956
1113
|
ComplexityGuard guard(state);
|
@@ -961,7 +1118,7 @@ static bool ParseOperatorName(State *state, int *arity) {
|
|
961
1118
|
// First check with "cv" (cast) case.
|
962
1119
|
ParseState copy = state->parse_state;
|
963
1120
|
if (ParseTwoCharToken(state, "cv") && MaybeAppend(state, "operator ") &&
|
964
|
-
EnterNestedName(state) &&
|
1121
|
+
EnterNestedName(state) && ParseConversionOperatorType(state) &&
|
965
1122
|
LeaveNestedName(state, copy.nest_level)) {
|
966
1123
|
if (arity != nullptr) {
|
967
1124
|
*arity = 1;
|
@@ -970,6 +1127,13 @@ static bool ParseOperatorName(State *state, int *arity) {
|
|
970
1127
|
}
|
971
1128
|
state->parse_state = copy;
|
972
1129
|
|
1130
|
+
// Then user-defined literals.
|
1131
|
+
if (ParseTwoCharToken(state, "li") && MaybeAppend(state, "operator\"\" ") &&
|
1132
|
+
ParseSourceName(state)) {
|
1133
|
+
return true;
|
1134
|
+
}
|
1135
|
+
state->parse_state = copy;
|
1136
|
+
|
973
1137
|
// Then vendor extended operators.
|
974
1138
|
if (ParseOneCharToken(state, 'v') && ParseDigit(state, arity) &&
|
975
1139
|
ParseSourceName(state)) {
|
@@ -997,36 +1161,120 @@ static bool ParseOperatorName(State *state, int *arity) {
|
|
997
1161
|
}
|
998
1162
|
MaybeAppend(state, p->real_name);
|
999
1163
|
state->parse_state.mangled_idx += 2;
|
1164
|
+
UpdateHighWaterMark(state);
|
1000
1165
|
return true;
|
1001
1166
|
}
|
1002
1167
|
}
|
1003
1168
|
return false;
|
1004
1169
|
}
|
1005
1170
|
|
1171
|
+
// <operator-name> ::= cv <type> # (cast)
|
1172
|
+
//
|
1173
|
+
// The name of a conversion operator is the one place where cv-qualifiers, *, &,
|
1174
|
+
// and other simple type combinators are expected to appear in our stripped-down
|
1175
|
+
// demangling (elsewhere they appear in function signatures or template
|
1176
|
+
// arguments, which we omit from the output). We make reasonable efforts to
|
1177
|
+
// render simple cases accurately.
|
1178
|
+
static bool ParseConversionOperatorType(State *state) {
|
1179
|
+
ComplexityGuard guard(state);
|
1180
|
+
if (guard.IsTooComplex()) return false;
|
1181
|
+
ParseState copy = state->parse_state;
|
1182
|
+
|
1183
|
+
// Scan pointers, const, and other easy mangling prefixes with postfix
|
1184
|
+
// demanglings. Remember the range of input for later rescanning.
|
1185
|
+
//
|
1186
|
+
// See `ParseType` and the `switch` below for the meaning of each char.
|
1187
|
+
const char* begin_simple_prefixes = RemainingInput(state);
|
1188
|
+
while (ParseCharClass(state, "OPRCGrVK")) {}
|
1189
|
+
const char* end_simple_prefixes = RemainingInput(state);
|
1190
|
+
|
1191
|
+
// Emit the base type first.
|
1192
|
+
if (!ParseType(state)) {
|
1193
|
+
state->parse_state = copy;
|
1194
|
+
return false;
|
1195
|
+
}
|
1196
|
+
|
1197
|
+
// Then rescan the easy type combinators in reverse order to emit their
|
1198
|
+
// demanglings in the expected output order.
|
1199
|
+
while (begin_simple_prefixes != end_simple_prefixes) {
|
1200
|
+
switch (*--end_simple_prefixes) {
|
1201
|
+
case 'P':
|
1202
|
+
MaybeAppend(state, "*");
|
1203
|
+
break;
|
1204
|
+
case 'R':
|
1205
|
+
MaybeAppend(state, "&");
|
1206
|
+
break;
|
1207
|
+
case 'O':
|
1208
|
+
MaybeAppend(state, "&&");
|
1209
|
+
break;
|
1210
|
+
case 'C':
|
1211
|
+
MaybeAppend(state, " _Complex");
|
1212
|
+
break;
|
1213
|
+
case 'G':
|
1214
|
+
MaybeAppend(state, " _Imaginary");
|
1215
|
+
break;
|
1216
|
+
case 'r':
|
1217
|
+
MaybeAppend(state, " restrict");
|
1218
|
+
break;
|
1219
|
+
case 'V':
|
1220
|
+
MaybeAppend(state, " volatile");
|
1221
|
+
break;
|
1222
|
+
case 'K':
|
1223
|
+
MaybeAppend(state, " const");
|
1224
|
+
break;
|
1225
|
+
}
|
1226
|
+
}
|
1227
|
+
return true;
|
1228
|
+
}
|
1229
|
+
|
1006
1230
|
// <special-name> ::= TV <type>
|
1007
1231
|
// ::= TT <type>
|
1008
1232
|
// ::= TI <type>
|
1009
1233
|
// ::= TS <type>
|
1010
|
-
// ::=
|
1234
|
+
// ::= TW <name> # thread-local wrapper
|
1235
|
+
// ::= TH <name> # thread-local initialization
|
1011
1236
|
// ::= Tc <call-offset> <call-offset> <(base) encoding>
|
1012
1237
|
// ::= GV <(object) name>
|
1238
|
+
// ::= GR <(object) name> [<seq-id>] _
|
1013
1239
|
// ::= T <call-offset> <(base) encoding>
|
1240
|
+
// ::= GTt <encoding> # transaction-safe entry point
|
1241
|
+
// ::= TA <template-arg> # nontype template parameter object
|
1014
1242
|
// G++ extensions:
|
1015
1243
|
// ::= TC <type> <(offset) number> _ <(base) type>
|
1016
1244
|
// ::= TF <type>
|
1017
1245
|
// ::= TJ <type>
|
1018
|
-
// ::= GR <name>
|
1246
|
+
// ::= GR <name> # without final _, perhaps an earlier form?
|
1019
1247
|
// ::= GA <encoding>
|
1020
1248
|
// ::= Th <call-offset> <(base) encoding>
|
1021
1249
|
// ::= Tv <call-offset> <(base) encoding>
|
1022
1250
|
//
|
1023
|
-
// Note:
|
1024
|
-
//
|
1251
|
+
// Note: Most of these are special data, not functions that occur in stack
|
1252
|
+
// traces. Exceptions are TW and TH, which denote functions supporting the
|
1253
|
+
// thread_local feature. For these see:
|
1254
|
+
//
|
1255
|
+
// https://maskray.me/blog/2021-02-14-all-about-thread-local-storage
|
1256
|
+
//
|
1257
|
+
// For TA see https://github.com/itanium-cxx-abi/cxx-abi/issues/63.
|
1025
1258
|
static bool ParseSpecialName(State *state) {
|
1026
1259
|
ComplexityGuard guard(state);
|
1027
1260
|
if (guard.IsTooComplex()) return false;
|
1028
1261
|
ParseState copy = state->parse_state;
|
1029
|
-
|
1262
|
+
|
1263
|
+
if (ParseTwoCharToken(state, "TW")) {
|
1264
|
+
MaybeAppend(state, "thread-local wrapper routine for ");
|
1265
|
+
if (ParseName(state)) return true;
|
1266
|
+
state->parse_state = copy;
|
1267
|
+
return false;
|
1268
|
+
}
|
1269
|
+
|
1270
|
+
if (ParseTwoCharToken(state, "TH")) {
|
1271
|
+
MaybeAppend(state, "thread-local initialization routine for ");
|
1272
|
+
if (ParseName(state)) return true;
|
1273
|
+
state->parse_state = copy;
|
1274
|
+
return false;
|
1275
|
+
}
|
1276
|
+
|
1277
|
+
if (ParseOneCharToken(state, 'T') && ParseCharClass(state, "VTIS") &&
|
1030
1278
|
ParseType(state)) {
|
1031
1279
|
return true;
|
1032
1280
|
}
|
@@ -1064,21 +1312,51 @@ static bool ParseSpecialName(State *state) {
|
|
1064
1312
|
}
|
1065
1313
|
state->parse_state = copy;
|
1066
1314
|
|
1067
|
-
|
1315
|
+
// <special-name> ::= GR <(object) name> [<seq-id>] _ # modern standard
|
1316
|
+
// ::= GR <(object) name> # also recognized
|
1317
|
+
if (ParseTwoCharToken(state, "GR")) {
|
1318
|
+
MaybeAppend(state, "reference temporary for ");
|
1319
|
+
if (!ParseName(state)) {
|
1320
|
+
state->parse_state = copy;
|
1321
|
+
return false;
|
1322
|
+
}
|
1323
|
+
const bool has_seq_id = ParseSeqId(state);
|
1324
|
+
const bool has_underscore = ParseOneCharToken(state, '_');
|
1325
|
+
if (has_seq_id && !has_underscore) {
|
1326
|
+
state->parse_state = copy;
|
1327
|
+
return false;
|
1328
|
+
}
|
1068
1329
|
return true;
|
1069
1330
|
}
|
1070
|
-
state->parse_state = copy;
|
1071
1331
|
|
1072
1332
|
if (ParseTwoCharToken(state, "GA") && ParseEncoding(state)) {
|
1073
1333
|
return true;
|
1074
1334
|
}
|
1075
1335
|
state->parse_state = copy;
|
1076
1336
|
|
1337
|
+
if (ParseThreeCharToken(state, "GTt") &&
|
1338
|
+
MaybeAppend(state, "transaction clone for ") && ParseEncoding(state)) {
|
1339
|
+
return true;
|
1340
|
+
}
|
1341
|
+
state->parse_state = copy;
|
1342
|
+
|
1077
1343
|
if (ParseOneCharToken(state, 'T') && ParseCharClass(state, "hv") &&
|
1078
1344
|
ParseCallOffset(state) && ParseEncoding(state)) {
|
1079
1345
|
return true;
|
1080
1346
|
}
|
1081
1347
|
state->parse_state = copy;
|
1348
|
+
|
1349
|
+
if (ParseTwoCharToken(state, "TA")) {
|
1350
|
+
bool append = state->parse_state.append;
|
1351
|
+
DisableAppend(state);
|
1352
|
+
if (ParseTemplateArg(state)) {
|
1353
|
+
RestoreAppend(state, append);
|
1354
|
+
MaybeAppend(state, "template parameter object");
|
1355
|
+
return true;
|
1356
|
+
}
|
1357
|
+
}
|
1358
|
+
state->parse_state = copy;
|
1359
|
+
|
1082
1360
|
return false;
|
1083
1361
|
}
|
1084
1362
|
|
@@ -1182,7 +1460,6 @@ static bool ParseDecltype(State *state) {
|
|
1182
1460
|
// ::= O <type> # rvalue reference-to (C++0x)
|
1183
1461
|
// ::= C <type> # complex pair (C 2000)
|
1184
1462
|
// ::= G <type> # imaginary (C 2000)
|
1185
|
-
// ::= U <source-name> <type> # vendor extended type qualifier
|
1186
1463
|
// ::= <builtin-type>
|
1187
1464
|
// ::= <function-type>
|
1188
1465
|
// ::= <class-enum-type> # note: just an alias for <name>
|
@@ -1193,7 +1470,9 @@ static bool ParseDecltype(State *state) {
|
|
1193
1470
|
// ::= <decltype>
|
1194
1471
|
// ::= <substitution>
|
1195
1472
|
// ::= Dp <type> # pack expansion of (C++0x)
|
1196
|
-
// ::= Dv <
|
1473
|
+
// ::= Dv <(elements) number> _ <type> # GNU vector extension
|
1474
|
+
// ::= Dv <(bytes) expression> _ <type>
|
1475
|
+
// ::= Dk <type-constraint> # constrained auto
|
1197
1476
|
//
|
1198
1477
|
static bool ParseType(State *state) {
|
1199
1478
|
ComplexityGuard guard(state);
|
@@ -1236,12 +1515,6 @@ static bool ParseType(State *state) {
|
|
1236
1515
|
}
|
1237
1516
|
state->parse_state = copy;
|
1238
1517
|
|
1239
|
-
if (ParseOneCharToken(state, 'U') && ParseSourceName(state) &&
|
1240
|
-
ParseType(state)) {
|
1241
|
-
return true;
|
1242
|
-
}
|
1243
|
-
state->parse_state = copy;
|
1244
|
-
|
1245
1518
|
if (ParseBuiltinType(state) || ParseFunctionType(state) ||
|
1246
1519
|
ParseClassEnumType(state) || ParseArrayType(state) ||
|
1247
1520
|
ParsePointerToMemberType(state) || ParseDecltype(state) ||
|
@@ -1260,54 +1533,160 @@ static bool ParseType(State *state) {
|
|
1260
1533
|
return true;
|
1261
1534
|
}
|
1262
1535
|
|
1536
|
+
// GNU vector extension Dv <number> _ <type>
|
1263
1537
|
if (ParseTwoCharToken(state, "Dv") && ParseNumber(state, nullptr) &&
|
1264
|
-
ParseOneCharToken(state, '_')) {
|
1538
|
+
ParseOneCharToken(state, '_') && ParseType(state)) {
|
1265
1539
|
return true;
|
1266
1540
|
}
|
1267
1541
|
state->parse_state = copy;
|
1268
1542
|
|
1269
|
-
|
1543
|
+
// GNU vector extension Dv <expression> _ <type>
|
1544
|
+
if (ParseTwoCharToken(state, "Dv") && ParseExpression(state) &&
|
1545
|
+
ParseOneCharToken(state, '_') && ParseType(state)) {
|
1546
|
+
return true;
|
1547
|
+
}
|
1548
|
+
state->parse_state = copy;
|
1549
|
+
|
1550
|
+
if (ParseTwoCharToken(state, "Dk") && ParseTypeConstraint(state)) {
|
1551
|
+
return true;
|
1552
|
+
}
|
1553
|
+
state->parse_state = copy;
|
1554
|
+
|
1555
|
+
// For this notation see CXXNameMangler::mangleType in Clang's source code.
|
1556
|
+
// The relevant logic and its comment "not clear how to mangle this!" date
|
1557
|
+
// from 2011, so it may be with us awhile.
|
1558
|
+
return ParseLongToken(state, "_SUBSTPACK_");
|
1270
1559
|
}
|
1271
1560
|
|
1561
|
+
// <qualifiers> ::= <extended-qualifier>* <CV-qualifiers>
|
1272
1562
|
// <CV-qualifiers> ::= [r] [V] [K]
|
1563
|
+
//
|
1273
1564
|
// We don't allow empty <CV-qualifiers> to avoid infinite loop in
|
1274
1565
|
// ParseType().
|
1275
1566
|
static bool ParseCVQualifiers(State *state) {
|
1276
1567
|
ComplexityGuard guard(state);
|
1277
1568
|
if (guard.IsTooComplex()) return false;
|
1278
1569
|
int num_cv_qualifiers = 0;
|
1570
|
+
while (ParseExtendedQualifier(state)) ++num_cv_qualifiers;
|
1279
1571
|
num_cv_qualifiers += ParseOneCharToken(state, 'r');
|
1280
1572
|
num_cv_qualifiers += ParseOneCharToken(state, 'V');
|
1281
1573
|
num_cv_qualifiers += ParseOneCharToken(state, 'K');
|
1282
1574
|
return num_cv_qualifiers > 0;
|
1283
1575
|
}
|
1284
1576
|
|
1577
|
+
// <extended-qualifier> ::= U <source-name> [<template-args>]
|
1578
|
+
static bool ParseExtendedQualifier(State *state) {
|
1579
|
+
ComplexityGuard guard(state);
|
1580
|
+
if (guard.IsTooComplex()) return false;
|
1581
|
+
ParseState copy = state->parse_state;
|
1582
|
+
|
1583
|
+
if (!ParseOneCharToken(state, 'U')) return false;
|
1584
|
+
|
1585
|
+
bool append = state->parse_state.append;
|
1586
|
+
DisableAppend(state);
|
1587
|
+
if (!ParseSourceName(state)) {
|
1588
|
+
state->parse_state = copy;
|
1589
|
+
return false;
|
1590
|
+
}
|
1591
|
+
Optional(ParseTemplateArgs(state));
|
1592
|
+
RestoreAppend(state, append);
|
1593
|
+
return true;
|
1594
|
+
}
|
1595
|
+
|
1285
1596
|
// <builtin-type> ::= v, etc. # single-character builtin types
|
1286
|
-
// ::=
|
1597
|
+
// ::= <vendor-extended-type>
|
1287
1598
|
// ::= Dd, etc. # two-character builtin types
|
1599
|
+
// ::= DB (<number> | <expression>) _ # _BitInt(N)
|
1600
|
+
// ::= DU (<number> | <expression>) _ # unsigned _BitInt(N)
|
1601
|
+
// ::= DF <number> _ # _FloatN (N bits)
|
1602
|
+
// ::= DF <number> x # _FloatNx
|
1603
|
+
// ::= DF16b # std::bfloat16_t
|
1288
1604
|
//
|
1289
1605
|
// Not supported:
|
1290
|
-
// ::=
|
1291
|
-
//
|
1606
|
+
// ::= [DS] DA <fixed-point-size>
|
1607
|
+
// ::= [DS] DR <fixed-point-size>
|
1608
|
+
// because real implementations of N1169 fixed-point are scant.
|
1292
1609
|
static bool ParseBuiltinType(State *state) {
|
1293
1610
|
ComplexityGuard guard(state);
|
1294
1611
|
if (guard.IsTooComplex()) return false;
|
1295
|
-
|
1296
|
-
|
1612
|
+
ParseState copy = state->parse_state;
|
1613
|
+
|
1614
|
+
// DB (<number> | <expression>) _ # _BitInt(N)
|
1615
|
+
// DU (<number> | <expression>) _ # unsigned _BitInt(N)
|
1616
|
+
if (ParseTwoCharToken(state, "DB") ||
|
1617
|
+
(ParseTwoCharToken(state, "DU") && MaybeAppend(state, "unsigned "))) {
|
1618
|
+
bool append = state->parse_state.append;
|
1619
|
+
DisableAppend(state);
|
1620
|
+
int number = -1;
|
1621
|
+
if (!ParseNumber(state, &number) && !ParseExpression(state)) {
|
1622
|
+
state->parse_state = copy;
|
1623
|
+
return false;
|
1624
|
+
}
|
1625
|
+
RestoreAppend(state, append);
|
1626
|
+
|
1627
|
+
if (!ParseOneCharToken(state, '_')) {
|
1628
|
+
state->parse_state = copy;
|
1629
|
+
return false;
|
1630
|
+
}
|
1631
|
+
|
1632
|
+
MaybeAppend(state, "_BitInt(");
|
1633
|
+
if (number >= 0) {
|
1634
|
+
MaybeAppendDecimal(state, number);
|
1635
|
+
} else {
|
1636
|
+
MaybeAppend(state, "?"); // the best we can do for dependent sizes
|
1637
|
+
}
|
1638
|
+
MaybeAppend(state, ")");
|
1639
|
+
return true;
|
1640
|
+
}
|
1641
|
+
|
1642
|
+
// DF <number> _ # _FloatN
|
1643
|
+
// DF <number> x # _FloatNx
|
1644
|
+
// DF16b # std::bfloat16_t
|
1645
|
+
if (ParseTwoCharToken(state, "DF")) {
|
1646
|
+
if (ParseThreeCharToken(state, "16b")) {
|
1647
|
+
MaybeAppend(state, "std::bfloat16_t");
|
1648
|
+
return true;
|
1649
|
+
}
|
1650
|
+
int number = 0;
|
1651
|
+
if (!ParseNumber(state, &number)) {
|
1652
|
+
state->parse_state = copy;
|
1653
|
+
return false;
|
1654
|
+
}
|
1655
|
+
MaybeAppend(state, "_Float");
|
1656
|
+
MaybeAppendDecimal(state, number);
|
1657
|
+
if (ParseOneCharToken(state, 'x')) {
|
1658
|
+
MaybeAppend(state, "x");
|
1659
|
+
return true;
|
1660
|
+
}
|
1661
|
+
if (ParseOneCharToken(state, '_')) return true;
|
1662
|
+
state->parse_state = copy;
|
1663
|
+
return false;
|
1664
|
+
}
|
1665
|
+
|
1666
|
+
for (const AbbrevPair *p = kBuiltinTypeList; p->abbrev != nullptr; ++p) {
|
1297
1667
|
// Guaranteed only 1- or 2-character strings in kBuiltinTypeList.
|
1298
1668
|
if (p->abbrev[1] == '\0') {
|
1299
1669
|
if (ParseOneCharToken(state, p->abbrev[0])) {
|
1300
1670
|
MaybeAppend(state, p->real_name);
|
1301
|
-
return true;
|
1671
|
+
return true; // ::= v, etc. # single-character builtin types
|
1302
1672
|
}
|
1303
1673
|
} else if (p->abbrev[2] == '\0' && ParseTwoCharToken(state, p->abbrev)) {
|
1304
1674
|
MaybeAppend(state, p->real_name);
|
1305
|
-
return true;
|
1675
|
+
return true; // ::= Dd, etc. # two-character builtin types
|
1306
1676
|
}
|
1307
1677
|
}
|
1308
1678
|
|
1679
|
+
return ParseVendorExtendedType(state);
|
1680
|
+
}
|
1681
|
+
|
1682
|
+
// <vendor-extended-type> ::= u <source-name> [<template-args>]
|
1683
|
+
static bool ParseVendorExtendedType(State *state) {
|
1684
|
+
ComplexityGuard guard(state);
|
1685
|
+
if (guard.IsTooComplex()) return false;
|
1686
|
+
|
1309
1687
|
ParseState copy = state->parse_state;
|
1310
|
-
if (ParseOneCharToken(state, 'u') && ParseSourceName(state)
|
1688
|
+
if (ParseOneCharToken(state, 'u') && ParseSourceName(state) &&
|
1689
|
+
Optional(ParseTemplateArgs(state))) {
|
1311
1690
|
return true;
|
1312
1691
|
}
|
1313
1692
|
state->parse_state = copy;
|
@@ -1342,28 +1721,44 @@ static bool ParseExceptionSpec(State *state) {
|
|
1342
1721
|
return false;
|
1343
1722
|
}
|
1344
1723
|
|
1345
|
-
// <function-type> ::=
|
1724
|
+
// <function-type> ::=
|
1725
|
+
// [exception-spec] [Dx] F [Y] <bare-function-type> [<ref-qualifier>] E
|
1726
|
+
//
|
1727
|
+
// <ref-qualifier> ::= R | O
|
1346
1728
|
static bool ParseFunctionType(State *state) {
|
1347
1729
|
ComplexityGuard guard(state);
|
1348
1730
|
if (guard.IsTooComplex()) return false;
|
1349
1731
|
ParseState copy = state->parse_state;
|
1350
|
-
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
return
|
1732
|
+
Optional(ParseExceptionSpec(state));
|
1733
|
+
Optional(ParseTwoCharToken(state, "Dx"));
|
1734
|
+
if (!ParseOneCharToken(state, 'F')) {
|
1735
|
+
state->parse_state = copy;
|
1736
|
+
return false;
|
1355
1737
|
}
|
1356
|
-
state
|
1357
|
-
|
1738
|
+
Optional(ParseOneCharToken(state, 'Y'));
|
1739
|
+
if (!ParseBareFunctionType(state)) {
|
1740
|
+
state->parse_state = copy;
|
1741
|
+
return false;
|
1742
|
+
}
|
1743
|
+
Optional(ParseCharClass(state, "RO"));
|
1744
|
+
if (!ParseOneCharToken(state, 'E')) {
|
1745
|
+
state->parse_state = copy;
|
1746
|
+
return false;
|
1747
|
+
}
|
1748
|
+
return true;
|
1358
1749
|
}
|
1359
1750
|
|
1360
|
-
// <bare-function-type> ::= <(signature) type>+
|
1751
|
+
// <bare-function-type> ::= <overload-attribute>* <(signature) type>+
|
1752
|
+
//
|
1753
|
+
// The <overload-attribute>* prefix is nonstandard; see the comment on
|
1754
|
+
// ParseOverloadAttribute.
|
1361
1755
|
static bool ParseBareFunctionType(State *state) {
|
1362
1756
|
ComplexityGuard guard(state);
|
1363
1757
|
if (guard.IsTooComplex()) return false;
|
1364
1758
|
ParseState copy = state->parse_state;
|
1365
1759
|
DisableAppend(state);
|
1366
|
-
if (
|
1760
|
+
if (ZeroOrMore(ParseOverloadAttribute, state) &&
|
1761
|
+
OneOrMore(ParseType, state)) {
|
1367
1762
|
RestoreAppend(state, copy.append);
|
1368
1763
|
MaybeAppend(state, "()");
|
1369
1764
|
return true;
|
@@ -1372,11 +1767,43 @@ static bool ParseBareFunctionType(State *state) {
|
|
1372
1767
|
return false;
|
1373
1768
|
}
|
1374
1769
|
|
1770
|
+
// <overload-attribute> ::= Ua <name>
|
1771
|
+
//
|
1772
|
+
// The nonstandard <overload-attribute> production is sufficient to accept the
|
1773
|
+
// current implementation of __attribute__((enable_if(condition, "message")))
|
1774
|
+
// and future attributes of a similar shape. See
|
1775
|
+
// https://clang.llvm.org/docs/AttributeReference.html#enable-if and the
|
1776
|
+
// definition of CXXNameMangler::mangleFunctionEncodingBareType in Clang's
|
1777
|
+
// source code.
|
1778
|
+
static bool ParseOverloadAttribute(State *state) {
|
1779
|
+
ComplexityGuard guard(state);
|
1780
|
+
if (guard.IsTooComplex()) return false;
|
1781
|
+
ParseState copy = state->parse_state;
|
1782
|
+
if (ParseTwoCharToken(state, "Ua") && ParseName(state)) {
|
1783
|
+
return true;
|
1784
|
+
}
|
1785
|
+
state->parse_state = copy;
|
1786
|
+
return false;
|
1787
|
+
}
|
1788
|
+
|
1375
1789
|
// <class-enum-type> ::= <name>
|
1790
|
+
// ::= Ts <name> # struct Name or class Name
|
1791
|
+
// ::= Tu <name> # union Name
|
1792
|
+
// ::= Te <name> # enum Name
|
1793
|
+
//
|
1794
|
+
// See http://shortn/_W3YrltiEd0.
|
1376
1795
|
static bool ParseClassEnumType(State *state) {
|
1377
1796
|
ComplexityGuard guard(state);
|
1378
1797
|
if (guard.IsTooComplex()) return false;
|
1379
|
-
|
1798
|
+
ParseState copy = state->parse_state;
|
1799
|
+
if (Optional(ParseTwoCharToken(state, "Ts") ||
|
1800
|
+
ParseTwoCharToken(state, "Tu") ||
|
1801
|
+
ParseTwoCharToken(state, "Te")) &&
|
1802
|
+
ParseName(state)) {
|
1803
|
+
return true;
|
1804
|
+
}
|
1805
|
+
state->parse_state = copy;
|
1806
|
+
return false;
|
1380
1807
|
}
|
1381
1808
|
|
1382
1809
|
// <array-type> ::= A <(positive dimension) number> _ <(element) type>
|
@@ -1413,21 +1840,83 @@ static bool ParsePointerToMemberType(State *state) {
|
|
1413
1840
|
|
1414
1841
|
// <template-param> ::= T_
|
1415
1842
|
// ::= T <parameter-2 non-negative number> _
|
1843
|
+
// ::= TL <level-1> __
|
1844
|
+
// ::= TL <level-1> _ <parameter-2 non-negative number> _
|
1416
1845
|
static bool ParseTemplateParam(State *state) {
|
1417
1846
|
ComplexityGuard guard(state);
|
1418
1847
|
if (guard.IsTooComplex()) return false;
|
1419
1848
|
if (ParseTwoCharToken(state, "T_")) {
|
1420
1849
|
MaybeAppend(state, "?"); // We don't support template substitutions.
|
1421
|
-
return true;
|
1850
|
+
return true; // ::= T_
|
1422
1851
|
}
|
1423
1852
|
|
1424
1853
|
ParseState copy = state->parse_state;
|
1425
1854
|
if (ParseOneCharToken(state, 'T') && ParseNumber(state, nullptr) &&
|
1426
1855
|
ParseOneCharToken(state, '_')) {
|
1427
1856
|
MaybeAppend(state, "?"); // We don't support template substitutions.
|
1857
|
+
return true; // ::= T <parameter-2 non-negative number> _
|
1858
|
+
}
|
1859
|
+
state->parse_state = copy;
|
1860
|
+
|
1861
|
+
if (ParseTwoCharToken(state, "TL") && ParseNumber(state, nullptr)) {
|
1862
|
+
if (ParseTwoCharToken(state, "__")) {
|
1863
|
+
MaybeAppend(state, "?"); // We don't support template substitutions.
|
1864
|
+
return true; // ::= TL <level-1> __
|
1865
|
+
}
|
1866
|
+
|
1867
|
+
if (ParseOneCharToken(state, '_') && ParseNumber(state, nullptr) &&
|
1868
|
+
ParseOneCharToken(state, '_')) {
|
1869
|
+
MaybeAppend(state, "?"); // We don't support template substitutions.
|
1870
|
+
return true; // ::= TL <level-1> _ <parameter-2 non-negative number> _
|
1871
|
+
}
|
1872
|
+
}
|
1873
|
+
state->parse_state = copy;
|
1874
|
+
return false;
|
1875
|
+
}
|
1876
|
+
|
1877
|
+
// <template-param-decl>
|
1878
|
+
// ::= Ty # template type parameter
|
1879
|
+
// ::= Tk <concept name> [<template-args>] # constrained type parameter
|
1880
|
+
// ::= Tn <type> # template non-type parameter
|
1881
|
+
// ::= Tt <template-param-decl>* E # template template parameter
|
1882
|
+
// ::= Tp <template-param-decl> # template parameter pack
|
1883
|
+
//
|
1884
|
+
// NOTE: <concept name> is just a <name>: http://shortn/_MqJVyr0fc1
|
1885
|
+
// TODO(b/324066279): Implement optional suffix for `Tt`:
|
1886
|
+
// [Q <requires-clause expr>]
|
1887
|
+
static bool ParseTemplateParamDecl(State *state) {
|
1888
|
+
ComplexityGuard guard(state);
|
1889
|
+
if (guard.IsTooComplex()) return false;
|
1890
|
+
ParseState copy = state->parse_state;
|
1891
|
+
|
1892
|
+
if (ParseTwoCharToken(state, "Ty")) {
|
1893
|
+
return true;
|
1894
|
+
}
|
1895
|
+
state->parse_state = copy;
|
1896
|
+
|
1897
|
+
if (ParseTwoCharToken(state, "Tk") && ParseName(state) &&
|
1898
|
+
Optional(ParseTemplateArgs(state))) {
|
1899
|
+
return true;
|
1900
|
+
}
|
1901
|
+
state->parse_state = copy;
|
1902
|
+
|
1903
|
+
if (ParseTwoCharToken(state, "Tn") && ParseType(state)) {
|
1428
1904
|
return true;
|
1429
1905
|
}
|
1430
1906
|
state->parse_state = copy;
|
1907
|
+
|
1908
|
+
if (ParseTwoCharToken(state, "Tt") &&
|
1909
|
+
ZeroOrMore(ParseTemplateParamDecl, state) &&
|
1910
|
+
ParseOneCharToken(state, 'E')) {
|
1911
|
+
return true;
|
1912
|
+
}
|
1913
|
+
state->parse_state = copy;
|
1914
|
+
|
1915
|
+
if (ParseTwoCharToken(state, "Tp") && ParseTemplateParamDecl(state)) {
|
1916
|
+
return true;
|
1917
|
+
}
|
1918
|
+
state->parse_state = copy;
|
1919
|
+
|
1431
1920
|
return false;
|
1432
1921
|
}
|
1433
1922
|
|
@@ -1441,13 +1930,14 @@ static bool ParseTemplateTemplateParam(State *state) {
|
|
1441
1930
|
ParseSubstitution(state, /*accept_std=*/false));
|
1442
1931
|
}
|
1443
1932
|
|
1444
|
-
// <template-args> ::= I <template-arg>+ E
|
1933
|
+
// <template-args> ::= I <template-arg>+ [Q <requires-clause expr>] E
|
1445
1934
|
static bool ParseTemplateArgs(State *state) {
|
1446
1935
|
ComplexityGuard guard(state);
|
1447
1936
|
if (guard.IsTooComplex()) return false;
|
1448
1937
|
ParseState copy = state->parse_state;
|
1449
1938
|
DisableAppend(state);
|
1450
1939
|
if (ParseOneCharToken(state, 'I') && OneOrMore(ParseTemplateArg, state) &&
|
1940
|
+
Optional(ParseQRequiresClauseExpr(state)) &&
|
1451
1941
|
ParseOneCharToken(state, 'E')) {
|
1452
1942
|
RestoreAppend(state, copy.append);
|
1453
1943
|
MaybeAppend(state, "<>");
|
@@ -1457,7 +1947,8 @@ static bool ParseTemplateArgs(State *state) {
|
|
1457
1947
|
return false;
|
1458
1948
|
}
|
1459
1949
|
|
1460
|
-
// <template-arg> ::= <
|
1950
|
+
// <template-arg> ::= <template-param-decl> <template-arg>
|
1951
|
+
// ::= <type>
|
1461
1952
|
// ::= <expr-primary>
|
1462
1953
|
// ::= J <template-arg>* E # argument pack
|
1463
1954
|
// ::= X <expression> E
|
@@ -1541,7 +2032,7 @@ static bool ParseTemplateArg(State *state) {
|
|
1541
2032
|
// ::= L <source-name> [<template-args>] [<expr-cast-value> E]
|
1542
2033
|
if (ParseLocalSourceName(state) && Optional(ParseTemplateArgs(state))) {
|
1543
2034
|
copy = state->parse_state;
|
1544
|
-
if (
|
2035
|
+
if (ParseExprCastValueAndTrailingE(state)) {
|
1545
2036
|
return true;
|
1546
2037
|
}
|
1547
2038
|
state->parse_state = copy;
|
@@ -1560,6 +2051,12 @@ static bool ParseTemplateArg(State *state) {
|
|
1560
2051
|
return true;
|
1561
2052
|
}
|
1562
2053
|
state->parse_state = copy;
|
2054
|
+
|
2055
|
+
if (ParseTemplateParamDecl(state) && ParseTemplateArg(state)) {
|
2056
|
+
return true;
|
2057
|
+
}
|
2058
|
+
state->parse_state = copy;
|
2059
|
+
|
1563
2060
|
return false;
|
1564
2061
|
}
|
1565
2062
|
|
@@ -1614,6 +2111,13 @@ static bool ParseBaseUnresolvedName(State *state) {
|
|
1614
2111
|
// <base-unresolved-name>
|
1615
2112
|
// ::= [gs] sr <unresolved-qualifier-level>+ E
|
1616
2113
|
// <base-unresolved-name>
|
2114
|
+
// ::= sr St <simple-id> <simple-id> # nonstandard
|
2115
|
+
//
|
2116
|
+
// The last case is not part of the official grammar but has been observed in
|
2117
|
+
// real-world examples that the GNU demangler (but not the LLVM demangler) is
|
2118
|
+
// able to decode; see demangle_test.cc for one such symbol name. The shape
|
2119
|
+
// sr St <simple-id> <simple-id> was inferred by closed-box testing of the GNU
|
2120
|
+
// demangler.
|
1617
2121
|
static bool ParseUnresolvedName(State *state) {
|
1618
2122
|
ComplexityGuard guard(state);
|
1619
2123
|
if (guard.IsTooComplex()) return false;
|
@@ -1633,7 +2137,7 @@ static bool ParseUnresolvedName(State *state) {
|
|
1633
2137
|
|
1634
2138
|
if (ParseTwoCharToken(state, "sr") && ParseOneCharToken(state, 'N') &&
|
1635
2139
|
ParseUnresolvedType(state) &&
|
1636
|
-
OneOrMore(
|
2140
|
+
OneOrMore(ParseUnresolvedQualifierLevel, state) &&
|
1637
2141
|
ParseOneCharToken(state, 'E') && ParseBaseUnresolvedName(state)) {
|
1638
2142
|
return true;
|
1639
2143
|
}
|
@@ -1641,35 +2145,160 @@ static bool ParseUnresolvedName(State *state) {
|
|
1641
2145
|
|
1642
2146
|
if (Optional(ParseTwoCharToken(state, "gs")) &&
|
1643
2147
|
ParseTwoCharToken(state, "sr") &&
|
1644
|
-
OneOrMore(
|
2148
|
+
OneOrMore(ParseUnresolvedQualifierLevel, state) &&
|
1645
2149
|
ParseOneCharToken(state, 'E') && ParseBaseUnresolvedName(state)) {
|
1646
2150
|
return true;
|
1647
2151
|
}
|
1648
2152
|
state->parse_state = copy;
|
1649
2153
|
|
2154
|
+
if (ParseTwoCharToken(state, "sr") && ParseTwoCharToken(state, "St") &&
|
2155
|
+
ParseSimpleId(state) && ParseSimpleId(state)) {
|
2156
|
+
return true;
|
2157
|
+
}
|
2158
|
+
state->parse_state = copy;
|
2159
|
+
|
1650
2160
|
return false;
|
1651
2161
|
}
|
1652
2162
|
|
2163
|
+
// <unresolved-qualifier-level> ::= <simple-id>
|
2164
|
+
// ::= <substitution> <template-args>
|
2165
|
+
//
|
2166
|
+
// The production <substitution> <template-args> is nonstandard but is observed
|
2167
|
+
// in practice. An upstream discussion on the best shape of <unresolved-name>
|
2168
|
+
// has not converged:
|
2169
|
+
//
|
2170
|
+
// https://github.com/itanium-cxx-abi/cxx-abi/issues/38
|
2171
|
+
static bool ParseUnresolvedQualifierLevel(State *state) {
|
2172
|
+
ComplexityGuard guard(state);
|
2173
|
+
if (guard.IsTooComplex()) return false;
|
2174
|
+
|
2175
|
+
if (ParseSimpleId(state)) return true;
|
2176
|
+
|
2177
|
+
ParseState copy = state->parse_state;
|
2178
|
+
if (ParseSubstitution(state, /*accept_std=*/false) &&
|
2179
|
+
ParseTemplateArgs(state)) {
|
2180
|
+
return true;
|
2181
|
+
}
|
2182
|
+
state->parse_state = copy;
|
2183
|
+
return false;
|
2184
|
+
}
|
2185
|
+
|
2186
|
+
// <union-selector> ::= _ [<number>]
|
2187
|
+
//
|
2188
|
+
// https://github.com/itanium-cxx-abi/cxx-abi/issues/47
|
2189
|
+
static bool ParseUnionSelector(State *state) {
|
2190
|
+
return ParseOneCharToken(state, '_') && Optional(ParseNumber(state, nullptr));
|
2191
|
+
}
|
2192
|
+
|
2193
|
+
// <function-param> ::= fp <(top-level) CV-qualifiers> _
|
2194
|
+
// ::= fp <(top-level) CV-qualifiers> <number> _
|
2195
|
+
// ::= fL <number> p <(top-level) CV-qualifiers> _
|
2196
|
+
// ::= fL <number> p <(top-level) CV-qualifiers> <number> _
|
2197
|
+
// ::= fpT # this
|
2198
|
+
static bool ParseFunctionParam(State *state) {
|
2199
|
+
ComplexityGuard guard(state);
|
2200
|
+
if (guard.IsTooComplex()) return false;
|
2201
|
+
|
2202
|
+
ParseState copy = state->parse_state;
|
2203
|
+
|
2204
|
+
// Function-param expression (level 0).
|
2205
|
+
if (ParseTwoCharToken(state, "fp") && Optional(ParseCVQualifiers(state)) &&
|
2206
|
+
Optional(ParseNumber(state, nullptr)) && ParseOneCharToken(state, '_')) {
|
2207
|
+
return true;
|
2208
|
+
}
|
2209
|
+
state->parse_state = copy;
|
2210
|
+
|
2211
|
+
// Function-param expression (level 1+).
|
2212
|
+
if (ParseTwoCharToken(state, "fL") && Optional(ParseNumber(state, nullptr)) &&
|
2213
|
+
ParseOneCharToken(state, 'p') && Optional(ParseCVQualifiers(state)) &&
|
2214
|
+
Optional(ParseNumber(state, nullptr)) && ParseOneCharToken(state, '_')) {
|
2215
|
+
return true;
|
2216
|
+
}
|
2217
|
+
state->parse_state = copy;
|
2218
|
+
|
2219
|
+
return ParseThreeCharToken(state, "fpT");
|
2220
|
+
}
|
2221
|
+
|
2222
|
+
// <braced-expression> ::= <expression>
|
2223
|
+
// ::= di <field source-name> <braced-expression>
|
2224
|
+
// ::= dx <index expression> <braced-expression>
|
2225
|
+
// ::= dX <expression> <expression> <braced-expression>
|
2226
|
+
static bool ParseBracedExpression(State *state) {
|
2227
|
+
ComplexityGuard guard(state);
|
2228
|
+
if (guard.IsTooComplex()) return false;
|
2229
|
+
|
2230
|
+
ParseState copy = state->parse_state;
|
2231
|
+
|
2232
|
+
if (ParseTwoCharToken(state, "di") && ParseSourceName(state) &&
|
2233
|
+
ParseBracedExpression(state)) {
|
2234
|
+
return true;
|
2235
|
+
}
|
2236
|
+
state->parse_state = copy;
|
2237
|
+
|
2238
|
+
if (ParseTwoCharToken(state, "dx") && ParseExpression(state) &&
|
2239
|
+
ParseBracedExpression(state)) {
|
2240
|
+
return true;
|
2241
|
+
}
|
2242
|
+
state->parse_state = copy;
|
2243
|
+
|
2244
|
+
if (ParseTwoCharToken(state, "dX") &&
|
2245
|
+
ParseExpression(state) && ParseExpression(state) &&
|
2246
|
+
ParseBracedExpression(state)) {
|
2247
|
+
return true;
|
2248
|
+
}
|
2249
|
+
state->parse_state = copy;
|
2250
|
+
|
2251
|
+
return ParseExpression(state);
|
2252
|
+
}
|
2253
|
+
|
1653
2254
|
// <expression> ::= <1-ary operator-name> <expression>
|
1654
2255
|
// ::= <2-ary operator-name> <expression> <expression>
|
1655
2256
|
// ::= <3-ary operator-name> <expression> <expression> <expression>
|
2257
|
+
// ::= pp_ <expression> # ++e; pp <expression> is e++
|
2258
|
+
// ::= mm_ <expression> # --e; mm <expression> is e--
|
1656
2259
|
// ::= cl <expression>+ E
|
1657
2260
|
// ::= cp <simple-id> <expression>* E # Clang-specific.
|
2261
|
+
// ::= so <type> <expression> [<number>] <union-selector>* [p] E
|
1658
2262
|
// ::= cv <type> <expression> # type (expression)
|
1659
2263
|
// ::= cv <type> _ <expression>* E # type (expr-list)
|
2264
|
+
// ::= tl <type> <braced-expression>* E
|
2265
|
+
// ::= il <braced-expression>* E
|
2266
|
+
// ::= [gs] nw <expression>* _ <type> E
|
2267
|
+
// ::= [gs] nw <expression>* _ <type> <initializer>
|
2268
|
+
// ::= [gs] na <expression>* _ <type> E
|
2269
|
+
// ::= [gs] na <expression>* _ <type> <initializer>
|
2270
|
+
// ::= [gs] dl <expression>
|
2271
|
+
// ::= [gs] da <expression>
|
2272
|
+
// ::= dc <type> <expression>
|
2273
|
+
// ::= sc <type> <expression>
|
2274
|
+
// ::= cc <type> <expression>
|
2275
|
+
// ::= rc <type> <expression>
|
2276
|
+
// ::= ti <type>
|
2277
|
+
// ::= te <expression>
|
1660
2278
|
// ::= st <type>
|
2279
|
+
// ::= at <type>
|
2280
|
+
// ::= az <expression>
|
2281
|
+
// ::= nx <expression>
|
1661
2282
|
// ::= <template-param>
|
1662
2283
|
// ::= <function-param>
|
2284
|
+
// ::= sZ <template-param>
|
2285
|
+
// ::= sZ <function-param>
|
2286
|
+
// ::= sP <template-arg>* E
|
1663
2287
|
// ::= <expr-primary>
|
1664
2288
|
// ::= dt <expression> <unresolved-name> # expr.name
|
1665
2289
|
// ::= pt <expression> <unresolved-name> # expr->name
|
1666
2290
|
// ::= sp <expression> # argument pack expansion
|
2291
|
+
// ::= fl <binary operator-name> <expression>
|
2292
|
+
// ::= fr <binary operator-name> <expression>
|
2293
|
+
// ::= fL <binary operator-name> <expression> <expression>
|
2294
|
+
// ::= fR <binary operator-name> <expression> <expression>
|
2295
|
+
// ::= tw <expression>
|
2296
|
+
// ::= tr
|
1667
2297
|
// ::= sr <type> <unqualified-name> <template-args>
|
1668
2298
|
// ::= sr <type> <unqualified-name>
|
1669
|
-
// <
|
1670
|
-
//
|
1671
|
-
//
|
1672
|
-
// ::= fL <number> p <(top-level) CV-qualifiers> <number> _
|
2299
|
+
// ::= u <source-name> <template-arg>* E # vendor extension
|
2300
|
+
// ::= rq <requirement>+ E
|
2301
|
+
// ::= rQ <bare-function-type> _ <requirement>+ E
|
1673
2302
|
static bool ParseExpression(State *state) {
|
1674
2303
|
ComplexityGuard guard(state);
|
1675
2304
|
if (guard.IsTooComplex()) return false;
|
@@ -1686,6 +2315,15 @@ static bool ParseExpression(State *state) {
|
|
1686
2315
|
}
|
1687
2316
|
state->parse_state = copy;
|
1688
2317
|
|
2318
|
+
// Preincrement and predecrement. Postincrement and postdecrement are handled
|
2319
|
+
// by the operator-name logic later on.
|
2320
|
+
if ((ParseThreeCharToken(state, "pp_") ||
|
2321
|
+
ParseThreeCharToken(state, "mm_")) &&
|
2322
|
+
ParseExpression(state)) {
|
2323
|
+
return true;
|
2324
|
+
}
|
2325
|
+
state->parse_state = copy;
|
2326
|
+
|
1689
2327
|
// Clang-specific "cp <simple-id> <expression>* E"
|
1690
2328
|
// https://clang.llvm.org/doxygen/ItaniumMangle_8cpp_source.html#l04338
|
1691
2329
|
if (ParseTwoCharToken(state, "cp") && ParseSimpleId(state) &&
|
@@ -1694,17 +2332,65 @@ static bool ParseExpression(State *state) {
|
|
1694
2332
|
}
|
1695
2333
|
state->parse_state = copy;
|
1696
2334
|
|
1697
|
-
//
|
1698
|
-
|
1699
|
-
|
2335
|
+
// <expression> ::= so <type> <expression> [<number>] <union-selector>* [p] E
|
2336
|
+
//
|
2337
|
+
// https://github.com/itanium-cxx-abi/cxx-abi/issues/47
|
2338
|
+
if (ParseTwoCharToken(state, "so") && ParseType(state) &&
|
2339
|
+
ParseExpression(state) && Optional(ParseNumber(state, nullptr)) &&
|
2340
|
+
ZeroOrMore(ParseUnionSelector, state) &&
|
2341
|
+
Optional(ParseOneCharToken(state, 'p')) &&
|
2342
|
+
ParseOneCharToken(state, 'E')) {
|
1700
2343
|
return true;
|
1701
2344
|
}
|
1702
2345
|
state->parse_state = copy;
|
1703
2346
|
|
1704
|
-
//
|
1705
|
-
if (
|
1706
|
-
|
1707
|
-
|
2347
|
+
// <expression> ::= <function-param>
|
2348
|
+
if (ParseFunctionParam(state)) return true;
|
2349
|
+
state->parse_state = copy;
|
2350
|
+
|
2351
|
+
// <expression> ::= tl <type> <braced-expression>* E
|
2352
|
+
if (ParseTwoCharToken(state, "tl") && ParseType(state) &&
|
2353
|
+
ZeroOrMore(ParseBracedExpression, state) &&
|
2354
|
+
ParseOneCharToken(state, 'E')) {
|
2355
|
+
return true;
|
2356
|
+
}
|
2357
|
+
state->parse_state = copy;
|
2358
|
+
|
2359
|
+
// <expression> ::= il <braced-expression>* E
|
2360
|
+
if (ParseTwoCharToken(state, "il") &&
|
2361
|
+
ZeroOrMore(ParseBracedExpression, state) &&
|
2362
|
+
ParseOneCharToken(state, 'E')) {
|
2363
|
+
return true;
|
2364
|
+
}
|
2365
|
+
state->parse_state = copy;
|
2366
|
+
|
2367
|
+
// <expression> ::= [gs] nw <expression>* _ <type> E
|
2368
|
+
// ::= [gs] nw <expression>* _ <type> <initializer>
|
2369
|
+
// ::= [gs] na <expression>* _ <type> E
|
2370
|
+
// ::= [gs] na <expression>* _ <type> <initializer>
|
2371
|
+
if (Optional(ParseTwoCharToken(state, "gs")) &&
|
2372
|
+
(ParseTwoCharToken(state, "nw") || ParseTwoCharToken(state, "na")) &&
|
2373
|
+
ZeroOrMore(ParseExpression, state) && ParseOneCharToken(state, '_') &&
|
2374
|
+
ParseType(state) &&
|
2375
|
+
(ParseOneCharToken(state, 'E') || ParseInitializer(state))) {
|
2376
|
+
return true;
|
2377
|
+
}
|
2378
|
+
state->parse_state = copy;
|
2379
|
+
|
2380
|
+
// <expression> ::= [gs] dl <expression>
|
2381
|
+
// ::= [gs] da <expression>
|
2382
|
+
if (Optional(ParseTwoCharToken(state, "gs")) &&
|
2383
|
+
(ParseTwoCharToken(state, "dl") || ParseTwoCharToken(state, "da")) &&
|
2384
|
+
ParseExpression(state)) {
|
2385
|
+
return true;
|
2386
|
+
}
|
2387
|
+
state->parse_state = copy;
|
2388
|
+
|
2389
|
+
// dynamic_cast, static_cast, const_cast, reinterpret_cast.
|
2390
|
+
//
|
2391
|
+
// <expression> ::= (dc | sc | cc | rc) <type> <expression>
|
2392
|
+
if (ParseCharClass(state, "dscr") && ParseOneCharToken(state, 'c') &&
|
2393
|
+
ParseType(state) && ParseExpression(state)) {
|
1708
2394
|
return true;
|
1709
2395
|
}
|
1710
2396
|
state->parse_state = copy;
|
@@ -1746,15 +2432,96 @@ static bool ParseExpression(State *state) {
|
|
1746
2432
|
}
|
1747
2433
|
state->parse_state = copy;
|
1748
2434
|
|
2435
|
+
// typeid(type)
|
2436
|
+
if (ParseTwoCharToken(state, "ti") && ParseType(state)) {
|
2437
|
+
return true;
|
2438
|
+
}
|
2439
|
+
state->parse_state = copy;
|
2440
|
+
|
2441
|
+
// typeid(expression)
|
2442
|
+
if (ParseTwoCharToken(state, "te") && ParseExpression(state)) {
|
2443
|
+
return true;
|
2444
|
+
}
|
2445
|
+
state->parse_state = copy;
|
2446
|
+
|
1749
2447
|
// sizeof type
|
1750
2448
|
if (ParseTwoCharToken(state, "st") && ParseType(state)) {
|
1751
2449
|
return true;
|
1752
2450
|
}
|
1753
2451
|
state->parse_state = copy;
|
1754
2452
|
|
2453
|
+
// alignof(type)
|
2454
|
+
if (ParseTwoCharToken(state, "at") && ParseType(state)) {
|
2455
|
+
return true;
|
2456
|
+
}
|
2457
|
+
state->parse_state = copy;
|
2458
|
+
|
2459
|
+
// alignof(expression), a GNU extension
|
2460
|
+
if (ParseTwoCharToken(state, "az") && ParseExpression(state)) {
|
2461
|
+
return true;
|
2462
|
+
}
|
2463
|
+
state->parse_state = copy;
|
2464
|
+
|
2465
|
+
// noexcept(expression) appearing as an expression in a dependent signature
|
2466
|
+
if (ParseTwoCharToken(state, "nx") && ParseExpression(state)) {
|
2467
|
+
return true;
|
2468
|
+
}
|
2469
|
+
state->parse_state = copy;
|
2470
|
+
|
2471
|
+
// sizeof...(pack)
|
2472
|
+
//
|
2473
|
+
// <expression> ::= sZ <template-param>
|
2474
|
+
// ::= sZ <function-param>
|
2475
|
+
if (ParseTwoCharToken(state, "sZ") &&
|
2476
|
+
(ParseFunctionParam(state) || ParseTemplateParam(state))) {
|
2477
|
+
return true;
|
2478
|
+
}
|
2479
|
+
state->parse_state = copy;
|
2480
|
+
|
2481
|
+
// sizeof...(pack) captured from an alias template
|
2482
|
+
//
|
2483
|
+
// <expression> ::= sP <template-arg>* E
|
2484
|
+
if (ParseTwoCharToken(state, "sP") && ZeroOrMore(ParseTemplateArg, state) &&
|
2485
|
+
ParseOneCharToken(state, 'E')) {
|
2486
|
+
return true;
|
2487
|
+
}
|
2488
|
+
state->parse_state = copy;
|
2489
|
+
|
2490
|
+
// Unary folds (... op pack) and (pack op ...).
|
2491
|
+
//
|
2492
|
+
// <expression> ::= fl <binary operator-name> <expression>
|
2493
|
+
// ::= fr <binary operator-name> <expression>
|
2494
|
+
if ((ParseTwoCharToken(state, "fl") || ParseTwoCharToken(state, "fr")) &&
|
2495
|
+
ParseOperatorName(state, nullptr) && ParseExpression(state)) {
|
2496
|
+
return true;
|
2497
|
+
}
|
2498
|
+
state->parse_state = copy;
|
2499
|
+
|
2500
|
+
// Binary folds (init op ... op pack) and (pack op ... op init).
|
2501
|
+
//
|
2502
|
+
// <expression> ::= fL <binary operator-name> <expression> <expression>
|
2503
|
+
// ::= fR <binary operator-name> <expression> <expression>
|
2504
|
+
if ((ParseTwoCharToken(state, "fL") || ParseTwoCharToken(state, "fR")) &&
|
2505
|
+
ParseOperatorName(state, nullptr) && ParseExpression(state) &&
|
2506
|
+
ParseExpression(state)) {
|
2507
|
+
return true;
|
2508
|
+
}
|
2509
|
+
state->parse_state = copy;
|
2510
|
+
|
2511
|
+
// tw <expression>: throw e
|
2512
|
+
if (ParseTwoCharToken(state, "tw") && ParseExpression(state)) {
|
2513
|
+
return true;
|
2514
|
+
}
|
2515
|
+
state->parse_state = copy;
|
2516
|
+
|
2517
|
+
// tr: throw (rethrows an exception from the handler that caught it)
|
2518
|
+
if (ParseTwoCharToken(state, "tr")) return true;
|
2519
|
+
|
1755
2520
|
// Object and pointer member access expressions.
|
2521
|
+
//
|
2522
|
+
// <expression> ::= (dt | pt) <expression> <unresolved-name>
|
1756
2523
|
if ((ParseTwoCharToken(state, "dt") || ParseTwoCharToken(state, "pt")) &&
|
1757
|
-
ParseExpression(state) &&
|
2524
|
+
ParseExpression(state) && ParseUnresolvedName(state)) {
|
1758
2525
|
return true;
|
1759
2526
|
}
|
1760
2527
|
state->parse_state = copy;
|
@@ -1774,9 +2541,61 @@ static bool ParseExpression(State *state) {
|
|
1774
2541
|
}
|
1775
2542
|
state->parse_state = copy;
|
1776
2543
|
|
2544
|
+
// Vendor extended expressions
|
2545
|
+
if (ParseOneCharToken(state, 'u') && ParseSourceName(state) &&
|
2546
|
+
ZeroOrMore(ParseTemplateArg, state) && ParseOneCharToken(state, 'E')) {
|
2547
|
+
return true;
|
2548
|
+
}
|
2549
|
+
state->parse_state = copy;
|
2550
|
+
|
2551
|
+
// <expression> ::= rq <requirement>+ E
|
2552
|
+
//
|
2553
|
+
// https://github.com/itanium-cxx-abi/cxx-abi/issues/24
|
2554
|
+
if (ParseTwoCharToken(state, "rq") && OneOrMore(ParseRequirement, state) &&
|
2555
|
+
ParseOneCharToken(state, 'E')) {
|
2556
|
+
return true;
|
2557
|
+
}
|
2558
|
+
state->parse_state = copy;
|
2559
|
+
|
2560
|
+
// <expression> ::= rQ <bare-function-type> _ <requirement>+ E
|
2561
|
+
//
|
2562
|
+
// https://github.com/itanium-cxx-abi/cxx-abi/issues/24
|
2563
|
+
if (ParseTwoCharToken(state, "rQ") && ParseBareFunctionType(state) &&
|
2564
|
+
ParseOneCharToken(state, '_') && OneOrMore(ParseRequirement, state) &&
|
2565
|
+
ParseOneCharToken(state, 'E')) {
|
2566
|
+
return true;
|
2567
|
+
}
|
2568
|
+
state->parse_state = copy;
|
2569
|
+
|
1777
2570
|
return ParseUnresolvedName(state);
|
1778
2571
|
}
|
1779
2572
|
|
2573
|
+
// <initializer> ::= pi <expression>* E
|
2574
|
+
// ::= il <braced-expression>* E
|
2575
|
+
//
|
2576
|
+
// The il ... E form is not in the ABI spec but is seen in practice for
|
2577
|
+
// braced-init-lists in new-expressions, which are standard syntax from C++11
|
2578
|
+
// on.
|
2579
|
+
static bool ParseInitializer(State *state) {
|
2580
|
+
ComplexityGuard guard(state);
|
2581
|
+
if (guard.IsTooComplex()) return false;
|
2582
|
+
ParseState copy = state->parse_state;
|
2583
|
+
|
2584
|
+
if (ParseTwoCharToken(state, "pi") && ZeroOrMore(ParseExpression, state) &&
|
2585
|
+
ParseOneCharToken(state, 'E')) {
|
2586
|
+
return true;
|
2587
|
+
}
|
2588
|
+
state->parse_state = copy;
|
2589
|
+
|
2590
|
+
if (ParseTwoCharToken(state, "il") &&
|
2591
|
+
ZeroOrMore(ParseBracedExpression, state) &&
|
2592
|
+
ParseOneCharToken(state, 'E')) {
|
2593
|
+
return true;
|
2594
|
+
}
|
2595
|
+
state->parse_state = copy;
|
2596
|
+
return false;
|
2597
|
+
}
|
2598
|
+
|
1780
2599
|
// <expr-primary> ::= L <type> <(value) number> E
|
1781
2600
|
// ::= L <type> <(value) float> E
|
1782
2601
|
// ::= L <mangled-name> E
|
@@ -1819,10 +2638,35 @@ static bool ParseExprPrimary(State *state) {
|
|
1819
2638
|
return false;
|
1820
2639
|
}
|
1821
2640
|
|
1822
|
-
|
1823
|
-
|
1824
|
-
|
1825
|
-
|
2641
|
+
if (ParseOneCharToken(state, 'L')) {
|
2642
|
+
// There are two special cases in which a literal may or must contain a type
|
2643
|
+
// without a value. The first is that both LDnE and LDn0E are valid
|
2644
|
+
// encodings of nullptr, used in different situations. Recognize LDnE here,
|
2645
|
+
// leaving LDn0E to be recognized by the general logic afterward.
|
2646
|
+
if (ParseThreeCharToken(state, "DnE")) return true;
|
2647
|
+
|
2648
|
+
// The second special case is a string literal, currently mangled in C++98
|
2649
|
+
// style as LA<length + 1>_KcE. This is inadequate to support C++11 and
|
2650
|
+
// later versions, and the discussion of this problem has not converged.
|
2651
|
+
//
|
2652
|
+
// https://github.com/itanium-cxx-abi/cxx-abi/issues/64
|
2653
|
+
//
|
2654
|
+
// For now the bare-type mangling is what's used in practice, so we
|
2655
|
+
// recognize this form and only this form if an array type appears here.
|
2656
|
+
// Someday we'll probably have to accept a new form of value mangling in
|
2657
|
+
// LA...E constructs. (Note also that C++20 allows a wide range of
|
2658
|
+
// class-type objects as template arguments, so someday their values will be
|
2659
|
+
// mangled and we'll have to recognize them here too.)
|
2660
|
+
if (RemainingInput(state)[0] == 'A' /* an array type follows */) {
|
2661
|
+
if (ParseType(state) && ParseOneCharToken(state, 'E')) return true;
|
2662
|
+
state->parse_state = copy;
|
2663
|
+
return false;
|
2664
|
+
}
|
2665
|
+
|
2666
|
+
// The merged cast production.
|
2667
|
+
if (ParseType(state) && ParseExprCastValueAndTrailingE(state)) {
|
2668
|
+
return true;
|
2669
|
+
}
|
1826
2670
|
}
|
1827
2671
|
state->parse_state = copy;
|
1828
2672
|
|
@@ -1836,7 +2680,7 @@ static bool ParseExprPrimary(State *state) {
|
|
1836
2680
|
}
|
1837
2681
|
|
1838
2682
|
// <number> or <float>, followed by 'E', as described above ParseExprPrimary.
|
1839
|
-
static bool
|
2683
|
+
static bool ParseExprCastValueAndTrailingE(State *state) {
|
1840
2684
|
ComplexityGuard guard(state);
|
1841
2685
|
if (guard.IsTooComplex()) return false;
|
1842
2686
|
// We have to be able to backtrack after accepting a number because we could
|
@@ -1848,39 +2692,148 @@ static bool ParseExprCastValue(State *state) {
|
|
1848
2692
|
}
|
1849
2693
|
state->parse_state = copy;
|
1850
2694
|
|
1851
|
-
if (ParseFloatNumber(state)
|
2695
|
+
if (ParseFloatNumber(state)) {
|
2696
|
+
// <float> for ordinary floating-point types
|
2697
|
+
if (ParseOneCharToken(state, 'E')) return true;
|
2698
|
+
|
2699
|
+
// <float> _ <float> for complex floating-point types
|
2700
|
+
if (ParseOneCharToken(state, '_') && ParseFloatNumber(state) &&
|
2701
|
+
ParseOneCharToken(state, 'E')) {
|
2702
|
+
return true;
|
2703
|
+
}
|
2704
|
+
}
|
2705
|
+
state->parse_state = copy;
|
2706
|
+
|
2707
|
+
return false;
|
2708
|
+
}
|
2709
|
+
|
2710
|
+
// Parses `Q <requires-clause expr>`.
|
2711
|
+
// If parsing fails, applies backtracking to `state`.
|
2712
|
+
//
|
2713
|
+
// This function covers two symbols instead of one for convenience,
|
2714
|
+
// because in LLVM's Itanium ABI mangling grammar, <requires-clause expr>
|
2715
|
+
// always appears after Q.
|
2716
|
+
//
|
2717
|
+
// Does not emit the parsed `requires` clause to simplify the implementation.
|
2718
|
+
// In other words, these two functions' mangled names will demangle identically:
|
2719
|
+
//
|
2720
|
+
// template <typename T>
|
2721
|
+
// int foo(T) requires IsIntegral<T>;
|
2722
|
+
//
|
2723
|
+
// vs.
|
2724
|
+
//
|
2725
|
+
// template <typename T>
|
2726
|
+
// int foo(T);
|
2727
|
+
static bool ParseQRequiresClauseExpr(State *state) {
|
2728
|
+
ComplexityGuard guard(state);
|
2729
|
+
if (guard.IsTooComplex()) return false;
|
2730
|
+
ParseState copy = state->parse_state;
|
2731
|
+
DisableAppend(state);
|
2732
|
+
|
2733
|
+
// <requires-clause expr> is just an <expression>: http://shortn/_9E1Ul0rIM8
|
2734
|
+
if (ParseOneCharToken(state, 'Q') && ParseExpression(state)) {
|
2735
|
+
RestoreAppend(state, copy.append);
|
2736
|
+
return true;
|
2737
|
+
}
|
2738
|
+
|
2739
|
+
// also restores append
|
2740
|
+
state->parse_state = copy;
|
2741
|
+
return false;
|
2742
|
+
}
|
2743
|
+
|
2744
|
+
// <requirement> ::= X <expression> [N] [R <type-constraint>]
|
2745
|
+
// <requirement> ::= T <type>
|
2746
|
+
// <requirement> ::= Q <constraint-expression>
|
2747
|
+
//
|
2748
|
+
// <constraint-expression> ::= <expression>
|
2749
|
+
//
|
2750
|
+
// https://github.com/itanium-cxx-abi/cxx-abi/issues/24
|
2751
|
+
static bool ParseRequirement(State *state) {
|
2752
|
+
ComplexityGuard guard(state);
|
2753
|
+
if (guard.IsTooComplex()) return false;
|
2754
|
+
|
2755
|
+
ParseState copy = state->parse_state;
|
2756
|
+
|
2757
|
+
if (ParseOneCharToken(state, 'X') && ParseExpression(state) &&
|
2758
|
+
Optional(ParseOneCharToken(state, 'N')) &&
|
2759
|
+
// This logic backtracks cleanly if we eat an R but a valid type doesn't
|
2760
|
+
// follow it.
|
2761
|
+
(!ParseOneCharToken(state, 'R') || ParseTypeConstraint(state))) {
|
1852
2762
|
return true;
|
1853
2763
|
}
|
1854
2764
|
state->parse_state = copy;
|
1855
2765
|
|
2766
|
+
if (ParseOneCharToken(state, 'T') && ParseType(state)) return true;
|
2767
|
+
state->parse_state = copy;
|
2768
|
+
|
2769
|
+
if (ParseOneCharToken(state, 'Q') && ParseExpression(state)) return true;
|
2770
|
+
state->parse_state = copy;
|
2771
|
+
|
1856
2772
|
return false;
|
1857
2773
|
}
|
1858
2774
|
|
2775
|
+
// <type-constraint> ::= <name>
|
2776
|
+
static bool ParseTypeConstraint(State *state) {
|
2777
|
+
return ParseName(state);
|
2778
|
+
}
|
2779
|
+
|
1859
2780
|
// <local-name> ::= Z <(function) encoding> E <(entity) name> [<discriminator>]
|
1860
2781
|
// ::= Z <(function) encoding> E s [<discriminator>]
|
2782
|
+
// ::= Z <(function) encoding> E d [<(parameter) number>] _ <name>
|
1861
2783
|
//
|
1862
2784
|
// Parsing a common prefix of these two productions together avoids an
|
1863
2785
|
// exponential blowup of backtracking. Parse like:
|
1864
2786
|
// <local-name> := Z <encoding> E <local-name-suffix>
|
1865
2787
|
// <local-name-suffix> ::= s [<discriminator>]
|
2788
|
+
// ::= d [<(parameter) number>] _ <name>
|
1866
2789
|
// ::= <name> [<discriminator>]
|
1867
2790
|
|
1868
2791
|
static bool ParseLocalNameSuffix(State *state) {
|
1869
2792
|
ComplexityGuard guard(state);
|
1870
2793
|
if (guard.IsTooComplex()) return false;
|
2794
|
+
ParseState copy = state->parse_state;
|
2795
|
+
|
2796
|
+
// <local-name-suffix> ::= d [<(parameter) number>] _ <name>
|
2797
|
+
if (ParseOneCharToken(state, 'd') &&
|
2798
|
+
(IsDigit(RemainingInput(state)[0]) || RemainingInput(state)[0] == '_')) {
|
2799
|
+
int number = -1;
|
2800
|
+
Optional(ParseNumber(state, &number));
|
2801
|
+
if (number < -1 || number > 2147483645) {
|
2802
|
+
// Work around overflow cases. We do not expect these outside of a fuzzer
|
2803
|
+
// or other source of adversarial input. If we do detect overflow here,
|
2804
|
+
// we'll print {default arg#1}.
|
2805
|
+
number = -1;
|
2806
|
+
}
|
2807
|
+
number += 2;
|
2808
|
+
|
2809
|
+
// The ::{default arg#1}:: infix must be rendered before the lambda itself,
|
2810
|
+
// so print this before parsing the rest of the <local-name-suffix>.
|
2811
|
+
MaybeAppend(state, "::{default arg#");
|
2812
|
+
MaybeAppendDecimal(state, number);
|
2813
|
+
MaybeAppend(state, "}::");
|
2814
|
+
if (ParseOneCharToken(state, '_') && ParseName(state)) return true;
|
2815
|
+
|
2816
|
+
// On late parse failure, roll back not only the input but also the output,
|
2817
|
+
// whose trailing NUL was overwritten.
|
2818
|
+
state->parse_state = copy;
|
2819
|
+
if (state->parse_state.append) {
|
2820
|
+
state->out[state->parse_state.out_cur_idx] = '\0';
|
2821
|
+
}
|
2822
|
+
return false;
|
2823
|
+
}
|
2824
|
+
state->parse_state = copy;
|
1871
2825
|
|
2826
|
+
// <local-name-suffix> ::= <name> [<discriminator>]
|
1872
2827
|
if (MaybeAppend(state, "::") && ParseName(state) &&
|
1873
2828
|
Optional(ParseDiscriminator(state))) {
|
1874
2829
|
return true;
|
1875
2830
|
}
|
1876
|
-
|
1877
|
-
// Since we're not going to overwrite the above "::" by re-parsing the
|
1878
|
-
// <encoding> (whose trailing '\0' byte was in the byte now holding the
|
1879
|
-
// first ':'), we have to rollback the "::" if the <name> parse failed.
|
2831
|
+
state->parse_state = copy;
|
1880
2832
|
if (state->parse_state.append) {
|
1881
|
-
state->out[state->parse_state.out_cur_idx
|
2833
|
+
state->out[state->parse_state.out_cur_idx] = '\0';
|
1882
2834
|
}
|
1883
2835
|
|
2836
|
+
// <local-name-suffix> ::= s [<discriminator>]
|
1884
2837
|
return ParseOneCharToken(state, 's') && Optional(ParseDiscriminator(state));
|
1885
2838
|
}
|
1886
2839
|
|
@@ -1896,12 +2849,22 @@ static bool ParseLocalName(State *state) {
|
|
1896
2849
|
return false;
|
1897
2850
|
}
|
1898
2851
|
|
1899
|
-
// <discriminator> := _ <
|
2852
|
+
// <discriminator> := _ <digit>
|
2853
|
+
// := __ <number (>= 10)> _
|
1900
2854
|
static bool ParseDiscriminator(State *state) {
|
1901
2855
|
ComplexityGuard guard(state);
|
1902
2856
|
if (guard.IsTooComplex()) return false;
|
1903
2857
|
ParseState copy = state->parse_state;
|
1904
|
-
|
2858
|
+
|
2859
|
+
// Both forms start with _ so parse that first.
|
2860
|
+
if (!ParseOneCharToken(state, '_')) return false;
|
2861
|
+
|
2862
|
+
// <digit>
|
2863
|
+
if (ParseDigit(state, nullptr)) return true;
|
2864
|
+
|
2865
|
+
// _ <number> _
|
2866
|
+
if (ParseOneCharToken(state, '_') && ParseNumber(state, nullptr) &&
|
2867
|
+
ParseOneCharToken(state, '_')) {
|
1905
2868
|
return true;
|
1906
2869
|
}
|
1907
2870
|
state->parse_state = copy;
|
@@ -1947,6 +2910,7 @@ static bool ParseSubstitution(State *state, bool accept_std) {
|
|
1947
2910
|
MaybeAppend(state, p->real_name);
|
1948
2911
|
}
|
1949
2912
|
++state->parse_state.mangled_idx;
|
2913
|
+
UpdateHighWaterMark(state);
|
1950
2914
|
return true;
|
1951
2915
|
}
|
1952
2916
|
}
|
@@ -1972,10 +2936,13 @@ static bool ParseTopLevelMangledName(State *state) {
|
|
1972
2936
|
MaybeAppend(state, RemainingInput(state));
|
1973
2937
|
return true;
|
1974
2938
|
}
|
2939
|
+
ReportHighWaterMark(state);
|
1975
2940
|
return false; // Unconsumed suffix.
|
1976
2941
|
}
|
1977
2942
|
return true;
|
1978
2943
|
}
|
2944
|
+
|
2945
|
+
ReportHighWaterMark(state);
|
1979
2946
|
return false;
|
1980
2947
|
}
|
1981
2948
|
|
@@ -1985,6 +2952,10 @@ static bool Overflowed(const State *state) {
|
|
1985
2952
|
|
1986
2953
|
// The demangler entry point.
|
1987
2954
|
bool Demangle(const char* mangled, char* out, size_t out_size) {
|
2955
|
+
if (mangled[0] == '_' && mangled[1] == 'R') {
|
2956
|
+
return DemangleRustSymbolEncoding(mangled, out, out_size);
|
2957
|
+
}
|
2958
|
+
|
1988
2959
|
State state;
|
1989
2960
|
InitState(&state, mangled, out, out_size);
|
1990
2961
|
return ParseTopLevelMangledName(&state) && !Overflowed(&state) &&
|