Index: build/config/BUILDCONFIG.gn |
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn |
index 6bc28eccf710cf6e6b2f40609d1a79b7ef67837b..3d7d7961ee3180ce843c36fdc3364b1f6d0488a1 100644 |
--- a/build/config/BUILDCONFIG.gn |
+++ b/build/config/BUILDCONFIG.gn |
@@ -145,6 +145,13 @@ declare_args() { |
# Compile for Thread Sanitizer to find threading bugs. |
is_tsan = false |
+ # Compile with Control Flow Integrity to protect virtual calls and casts. |
+ # See http://clang.llvm.org/docs/ControlFlowIntegrity.html |
+ is_cfi = false |
brettw
2015/09/03 04:41:20
I was thinking of removing the *san flags from her
pcc1
2015/09/04 21:56:59
Done.
|
+ |
+ # Whether Control Flow Integrity prints diagnostics instead of crashing. |
+ use_cfi_diag = false |
+ |
if (current_os == "chromeos") { |
# Allows the target toolchain to be injected as arguments. This is needed |
# to support the CrOS build system which supports per-build-configuration |
@@ -438,7 +445,7 @@ if (symbol_level == -1) { |
# Mac and Windows have them separate, so in Release Linux, default them off. |
if (is_debug || !is_linux) { |
symbol_level = 2 |
- } else if (is_asan || is_lsan || is_tsan || is_msan) { |
+ } else if (is_asan || is_lsan || is_tsan || is_msan || is_cfi) { |
# Sanitizers require symbols for filename suppressions to work. |
symbol_level = 1 |
} else { |