Index: Source/bindings/templates/interface_base.cpp |
diff --git a/Source/bindings/templates/interface_base.cpp b/Source/bindings/templates/interface_base.cpp |
index a2c9a21f8035200ad16ecb519de9c6a5baf1b902..f12cde3e503ae5768877a8b7f95a90ef78768e7b 100644 |
--- a/Source/bindings/templates/interface_base.cpp |
+++ b/Source/bindings/templates/interface_base.cpp |
@@ -20,7 +20,16 @@ namespace blink { |
{% set wrapper_type_info_const = '' if has_partial_interface else 'const ' %} |
{% if not is_partial %} |
+// Suppress warning: global constructors, because struct WrapperTypeInfo is trivial |
+// and does not depend on another global objects. |
+#if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) |
+#pragma clang diagnostic push |
+#pragma clang diagnostic ignored "-Wglobal-constructors" |
+#endif |
{{wrapper_type_info_const}}WrapperTypeInfo {{v8_class}}::wrapperTypeInfo = { gin::kEmbedderBlink, {{dom_template}}, {{v8_class}}::refObject, {{v8_class}}::derefObject, {{v8_class}}::trace, {{to_active_dom_object}}, {{visit_dom_wrapper}}, {{v8_class}}::preparePrototypeObject, {{v8_class}}::installConditionallyEnabledProperties, "{{interface_name}}", {{parent_wrapper_type_info}}, WrapperTypeInfo::{{wrapper_type_prototype}}, WrapperTypeInfo::{{wrapper_class_id}}, WrapperTypeInfo::{{event_target_inheritance}}, WrapperTypeInfo::{{lifetime}}, WrapperTypeInfo::{{gc_type}} }; |
+#if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) |
+#pragma clang diagnostic pop |
+#endif |
// This static member must be declared by DEFINE_WRAPPERTYPEINFO in {{cpp_class}}.h. |
// For details, see the comment of DEFINE_WRAPPERTYPEINFO in |
@@ -211,6 +220,12 @@ bool namedSecurityCheck(v8::Local<v8::Object> host, v8::Local<v8::Value> key, v8 |
{% block install_attributes %} |
{% from 'attributes.cpp' import attribute_configuration with context %} |
{% if has_attribute_configuration %} |
+// Suppress warning: global constructors, because AttributeConfiguration is trivial |
+// and does not depend on another global objects. |
+#if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) |
+#pragma clang diagnostic push |
+#pragma clang diagnostic ignored "-Wglobal-constructors" |
+#endif |
static const V8DOMConfiguration::AttributeConfiguration {{v8_class}}Attributes[] = { |
{% for attribute in attributes |
if not (attribute.is_expose_js_accessors or |
@@ -224,6 +239,9 @@ static const V8DOMConfiguration::AttributeConfiguration {{v8_class}}Attributes[] |
{% endfilter %} |
{% endfor %} |
}; |
+#if defined(COMPONENT_BUILD) && defined(WIN32) && COMPILER(CLANG) |
+#pragma clang diagnostic pop |
+#endif |
{% endif %} |
{% endblock %} |