# Copyright 2013 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("clang.gni") config("find_bad_constructs") { if (clang_use_chrome_plugins) { cflags = [] # The plugin is built directly into clang, so there's no need to load it # dynamically. cflags += [ "-Xclang", "-add-plugin", "-Xclang", "find-bad-constructs", "-Xclang", "-plugin-arg-find-bad-constructs", "-Xclang", "raw-ref-template-as-trivial-member", "-Xclang", "-plugin-arg-find-bad-constructs", "-Xclang", "check-stack-allocated", ] if (is_linux || is_chromeos || is_android || is_fuchsia) { cflags += [ "-Xclang", "-plugin-arg-find-bad-constructs", "-Xclang", "check-ipc", ] } if (enable_check_raw_ptr_fields) { cflags += [ "-Xclang", "-plugin-arg-find-bad-constructs", "-Xclang", "check-raw-ptr-fields", # TODO(keishi): Remove this once crrev.com/c/4387753 is rolled out. "-Xclang", "-plugin-arg-find-bad-constructs", "-Xclang", "raw-ptr-exclude-path=base/no_destructor.h", # TODO(keishi): Remove this once crrev.com/c/4086161 lands. "-Xclang", "-plugin-arg-find-bad-constructs", "-Xclang", "raw-ptr-exclude-path=base/containers/span.h", ] } } } # Enables some extra Clang-specific warnings. Some third-party code won't # compile with these so may want to remove this config. config("extra_warnings") { cflags = [ "-Wheader-hygiene", # Warns when a const char[] is converted to bool. "-Wstring-conversion", "-Wtautological-overlap-compare", ] } group("llvm-symbolizer_data") { if (is_win) { data = [ "$clang_base_path/bin/llvm-symbolizer.exe" ] } else { data = [ "$clang_base_path/bin/llvm-symbolizer" ] } }