diff --git a/tools/clang/scripts/build.py b/tools/clang/scripts/build.py
index b29f00b..5dafaa4 100755
--- a/tools/clang/scripts/build.py
+++ b/tools/clang/scripts/build.py
@@ -380,6 +380,7 @@
   # The two fuzzer tests are weird in that they copy the fuzzer binary from bin/
   # into the test tree under a different name. To make the relative rpath in
   # them work, copy libstdc++ to the copied location for now.
+  # There is also a compiler-rt test that copies llvm-symbolizer out of bin/.
   # TODO(thakis): Instead, make the upstream lit.local.cfg.py for these 2 tests
   # check if the binary contains an rpath and if so disable the tests.
   for d in ['lib',
@@ -388,6 +389,16 @@
     EnsureDirExists(os.path.join(build_dir, d))
     CopyFile(libstdcpp, os.path.join(build_dir, d))
 
+  sanitizer_common_tests = os.path.join(build_dir,
+                                 'projects/compiler-rt/test/sanitizer_common')
+  if os.path.exists(sanitizer_common_tests):
+    for d in ['asan-i386-Linux', 'asan-x86_64-Linux', 'lsan-i386-Linux',
+              'lsan-x86_64-Linux', 'msan-x86_64-Linux', 'tsan-x86_64-Linux',
+              'ubsan-i386-Linux', 'ubsan-x86_64-Linux']:
+      EnsureDirExists(os.path.join(sanitizer_common_tests, d))
+      CopyFile(libstdcpp, os.path.join(sanitizer_common_tests, d))
+
+
 def gn_arg(v):
   if v == 'True':
     return True
@@ -435,15 +446,6 @@
                       default=sys.platform in ('linux2', 'darwin'))
   args = parser.parse_args()
 
-  # TODO(crbug.com/1171687): Remove in the next Clang roll.
-  if args.llvm_force_head_revision:
-    global RELEASE_VERSION
-    RELEASE_VERSION = '13.0.0'
-    old_lib_dir = os.path.join(LLVM_BUILD_DIR, 'lib', 'clang', '12.0.0')
-    if (os.path.isdir(old_lib_dir)):
-      print('Removing old lib dir: ' + old_lib_dir)
-      RmTree(old_lib_dir)
-
   if (args.pgo or args.thinlto) and not args.bootstrap:
     print('--pgo/--thinlto requires --bootstrap')
     return 1
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index 78121840..f675762 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -38,13 +38,11 @@
 # https://chromium.googlesource.com/chromium/src/+/master/docs/updating_clang.md
 # Reverting problematic clang rolls is safe, though.
 # This is the output of `git describe` and is usable as a commit-ish.
-CLANG_REVISION = 'llvmorg-12-init-17251-g6de48655'
+CLANG_REVISION = 'llvmorg-13-init-794-g83e2710e'
 CLANG_SUB_REVISION = 1
 
 PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
-RELEASE_VERSION = '12.0.0'
-# TODO(crbug.com/1171687): Bump to 13.0.0 in the next Clang roll.
-
+RELEASE_VERSION = '13.0.0'
 
 CDS_URL = os.environ.get('CDS_CLANG_BUCKET_OVERRIDE',
     'https://commondatastorage.googleapis.com/chromium-browser-clang')
@@ -317,11 +315,6 @@
                       help='Verify that clang has the passed-in version.')
   args = parser.parse_args()
 
-  # TODO(crbug.com/1171687): Remove in the next Clang roll.
-  if args.llvm_force_head_revision:
-    global RELEASE_VERSION
-    RELEASE_VERSION = '13.0.0'
-
   if args.force_local_build:
     print(('update.py --force-local-build is no longer used to build clang; '
            'use build.py instead.'))