| Index: build/config/sanitizers/sanitizers.gni | 
| diff --git a/build/config/sanitizers/sanitizers.gni b/build/config/sanitizers/sanitizers.gni | 
| index 1aa212deab712df718a92d6bf0e00315348d2ab3..84348da425ae90a53e5f74edbf7709f51fd1cd50 100644 | 
| --- a/build/config/sanitizers/sanitizers.gni | 
| +++ b/build/config/sanitizers/sanitizers.gni | 
| @@ -15,10 +15,14 @@ declare_args() { | 
| # Compile for Thread Sanitizer to find threading bugs. | 
| is_tsan = false | 
|  | 
| +  # Compile for Undefined Behaviour Sanitizer to find various types of | 
| +  # undefined behaviour. | 
| +  is_ubsan = false | 
| + | 
| # Use libc++ (buildtools/third_party/libc++ and | 
| # buildtools/third_party/libc++abi) instead of stdlibc++ as standard library. | 
| # This is intended to be used for instrumented builds. | 
| -  use_custom_libcxx = (is_asan && is_linux) || is_tsan || is_msan | 
| +  use_custom_libcxx = (is_asan && is_linux) || is_tsan || is_msan || is_ubsan | 
|  | 
| # Track where uninitialized memory originates from. From fastest to slowest: | 
| # 0 - no tracking, 1 - track only the initial allocation site, 2 - track the | 
| @@ -45,7 +49,7 @@ declare_args() { | 
| } | 
|  | 
| # TODO(GYP) bug 527515: is_ubsan, is_ubsan_vptr | 
| -using_sanitizer = is_asan || is_lsan || is_tsan || is_msan | 
| +using_sanitizer = is_asan || is_lsan || is_tsan || is_msan || is_ubsan | 
|  | 
| assert(!using_sanitizer || is_clang, | 
| "Sanitizers (is_*san) require setting is_clang = true in 'gn args'") | 
| @@ -63,5 +67,5 @@ assert(!using_sanitizer || is_clang, | 
| # unsupported or unadvisable configurations. | 
| # | 
| # For one-off testing, just comment this assertion out. | 
| -assert(!is_debug || !(is_msan || is_lsan || is_tsan), | 
| +assert(!is_debug || !(is_msan || is_lsan || is_tsan || is_ubsan), | 
| "Sanitizers should generally be used in release (set is_debug=false).") | 
|  |