From 5de29a4b0e5af8cae312e01c95d24cfe0e1c51c3 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Thu, 1 Aug 2019 14:26:37 +0000 Subject: [PATCH] compiler-rt: Rename .cc file in lib/tsan/tests/{rtl,unit} to .cpp Like r367463, but for tsan/tests/{rtl,unit}. llvm-svn: 367566 --- .../lib/sanitizer_common/scripts/check_lint.sh | 4 ++-- compiler-rt/lib/tsan/rtl/tsan_clock.cpp | 2 +- compiler-rt/lib/tsan/tests/rtl/CMakeLists.txt | 22 +++++++++++++--------- .../tests/rtl/{tsan_bench.cc => tsan_bench.cpp} | 2 +- .../tsan/tests/rtl/{tsan_mop.cc => tsan_mop.cpp} | 2 +- .../tests/rtl/{tsan_mutex.cc => tsan_mutex.cpp} | 2 +- .../tests/rtl/{tsan_posix.cc => tsan_posix.cpp} | 2 +- .../tests/rtl/{tsan_string.cc => tsan_string.cpp} | 2 +- .../tsan/tests/rtl/{tsan_test.cc => tsan_test.cpp} | 2 +- ...test_util_posix.cc => tsan_test_util_posix.cpp} | 2 +- .../tests/rtl/{tsan_thread.cc => tsan_thread.cpp} | 2 +- compiler-rt/lib/tsan/tests/unit/CMakeLists.txt | 17 +++++++++-------- .../{tsan_clock_test.cc => tsan_clock_test.cpp} | 2 +- ...nse_alloc_test.cc => tsan_dense_alloc_test.cpp} | 2 +- .../{tsan_flags_test.cc => tsan_flags_test.cpp} | 2 +- .../unit/{tsan_mman_test.cc => tsan_mman_test.cpp} | 2 +- .../{tsan_mutex_test.cc => tsan_mutex_test.cpp} | 2 +- ...san_mutexset_test.cc => tsan_mutexset_test.cpp} | 2 +- .../{tsan_shadow_test.cc => tsan_shadow_test.cpp} | 2 +- .../{tsan_stack_test.cc => tsan_stack_test.cpp} | 2 +- .../unit/{tsan_sync_test.cc => tsan_sync_test.cpp} | 2 +- ...n_unit_test_main.cc => tsan_unit_test_main.cpp} | 2 +- 22 files changed, 43 insertions(+), 38 deletions(-) rename compiler-rt/lib/tsan/tests/rtl/{tsan_bench.cc => tsan_bench.cpp} (97%) rename compiler-rt/lib/tsan/tests/rtl/{tsan_mop.cc => tsan_mop.cpp} (98%) rename compiler-rt/lib/tsan/tests/rtl/{tsan_mutex.cc => tsan_mutex.cpp} (98%) rename compiler-rt/lib/tsan/tests/rtl/{tsan_posix.cc => tsan_posix.cpp} (98%) rename compiler-rt/lib/tsan/tests/rtl/{tsan_string.cc => tsan_string.cpp} (97%) rename compiler-rt/lib/tsan/tests/rtl/{tsan_test.cc => tsan_test.cpp} (96%) rename compiler-rt/lib/tsan/tests/rtl/{tsan_test_util_posix.cc => tsan_test_util_posix.cpp} (99%) rename compiler-rt/lib/tsan/tests/rtl/{tsan_thread.cc => tsan_thread.cpp} (95%) rename compiler-rt/lib/tsan/tests/unit/{tsan_clock_test.cc => tsan_clock_test.cpp} (99%) rename compiler-rt/lib/tsan/tests/unit/{tsan_dense_alloc_test.cc => tsan_dense_alloc_test.cpp} (95%) rename compiler-rt/lib/tsan/tests/unit/{tsan_flags_test.cc => tsan_flags_test.cpp} (98%) rename compiler-rt/lib/tsan/tests/unit/{tsan_mman_test.cc => tsan_mman_test.cpp} (98%) rename compiler-rt/lib/tsan/tests/unit/{tsan_mutex_test.cc => tsan_mutex_test.cpp} (97%) rename compiler-rt/lib/tsan/tests/unit/{tsan_mutexset_test.cc => tsan_mutexset_test.cpp} (98%) rename compiler-rt/lib/tsan/tests/unit/{tsan_shadow_test.cc => tsan_shadow_test.cpp} (97%) rename compiler-rt/lib/tsan/tests/unit/{tsan_stack_test.cc => tsan_stack_test.cpp} (97%) rename compiler-rt/lib/tsan/tests/unit/{tsan_sync_test.cc => tsan_sync_test.cpp} (98%) rename compiler-rt/lib/tsan/tests/unit/{tsan_unit_test_main.cc => tsan_unit_test_main.cpp} (91%) diff --git a/compiler-rt/lib/sanitizer_common/scripts/check_lint.sh b/compiler-rt/lib/sanitizer_common/scripts/check_lint.sh index bf8e0fd..00d811a 100755 --- a/compiler-rt/lib/sanitizer_common/scripts/check_lint.sh +++ b/compiler-rt/lib/sanitizer_common/scripts/check_lint.sh @@ -91,9 +91,9 @@ run_lint ${ASAN_LIT_TEST_LINT_FILTER} ${LIT_TESTS}/asan/*/*.cc & TSAN_RTL=${COMPILER_RT}/lib/tsan run_lint ${TSAN_RTL_LINT_FILTER} ${TSAN_RTL}/rtl/*.cpp \ ${TSAN_RTL}/rtl/*.h & -run_lint ${TSAN_TEST_LINT_FILTER} ${TSAN_RTL}/tests/rtl/*.cc \ +run_lint ${TSAN_TEST_LINT_FILTER} ${TSAN_RTL}/tests/rtl/*.cpp \ ${TSAN_RTL}/tests/rtl/*.h \ - ${TSAN_RTL}/tests/unit/*.cc & + ${TSAN_RTL}/tests/unit/*.cpp & run_lint ${TSAN_LIT_TEST_LINT_FILTER} ${LIT_TESTS}/tsan/*.cc & # MSan diff --git a/compiler-rt/lib/tsan/rtl/tsan_clock.cpp b/compiler-rt/lib/tsan/rtl/tsan_clock.cpp index 0db3737..4b7aa06 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_clock.cpp +++ b/compiler-rt/lib/tsan/rtl/tsan_clock.cpp @@ -40,7 +40,7 @@ // release(dst); // } // -// Conformance to this model is extensively verified in tsan_clock_test.cc. +// Conformance to this model is extensively verified in tsan_clock_test.cpp. // However, the implementation is significantly more complex. The complexity // allows to implement important classes of use cases in O(1) instead of O(N). // diff --git a/compiler-rt/lib/tsan/tests/rtl/CMakeLists.txt b/compiler-rt/lib/tsan/tests/rtl/CMakeLists.txt index a34f08e..92cec3e 100644 --- a/compiler-rt/lib/tsan/tests/rtl/CMakeLists.txt +++ b/compiler-rt/lib/tsan/tests/rtl/CMakeLists.txt @@ -1,18 +1,22 @@ set(TSAN_RTL_TEST_SOURCES - tsan_bench.cc - tsan_mop.cc - tsan_mutex.cc - tsan_posix.cc - tsan_string.cc - tsan_test.cc - tsan_thread.cc) + tsan_bench.cpp + tsan_mop.cpp + tsan_mutex.cpp + tsan_posix.cpp + tsan_string.cpp + tsan_test.cpp + tsan_thread.cpp + ) if(UNIX) - list(APPEND TSAN_RTL_TEST_SOURCES tsan_test_util_posix.cc) + list(APPEND TSAN_RTL_TEST_SOURCES + tsan_test_util_posix.cpp + ) endif() set(TSAN_RTL_TEST_HEADERS - tsan_test_util.h) + tsan_test_util.h + ) add_tsan_unittest(TsanRtlTest SOURCES ${TSAN_RTL_TEST_SOURCES} diff --git a/compiler-rt/lib/tsan/tests/rtl/tsan_bench.cc b/compiler-rt/lib/tsan/tests/rtl/tsan_bench.cpp similarity index 97% rename from compiler-rt/lib/tsan/tests/rtl/tsan_bench.cc rename to compiler-rt/lib/tsan/tests/rtl/tsan_bench.cpp index 0135101..36ca9b5 100644 --- a/compiler-rt/lib/tsan/tests/rtl/tsan_bench.cc +++ b/compiler-rt/lib/tsan/tests/rtl/tsan_bench.cpp @@ -1,4 +1,4 @@ -//===-- tsan_bench.cc -----------------------------------------------------===// +//===-- tsan_bench.cpp ----------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/rtl/tsan_mop.cc b/compiler-rt/lib/tsan/tests/rtl/tsan_mop.cpp similarity index 98% rename from compiler-rt/lib/tsan/tests/rtl/tsan_mop.cc rename to compiler-rt/lib/tsan/tests/rtl/tsan_mop.cpp index a5b0bdd..1825c96 100644 --- a/compiler-rt/lib/tsan/tests/rtl/tsan_mop.cc +++ b/compiler-rt/lib/tsan/tests/rtl/tsan_mop.cpp @@ -1,4 +1,4 @@ -//===-- tsan_mop.cc -------------------------------------------------------===// +//===-- tsan_mop.cpp ------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/rtl/tsan_mutex.cc b/compiler-rt/lib/tsan/tests/rtl/tsan_mutex.cpp similarity index 98% rename from compiler-rt/lib/tsan/tests/rtl/tsan_mutex.cc rename to compiler-rt/lib/tsan/tests/rtl/tsan_mutex.cpp index af12e20..dae9c94 100644 --- a/compiler-rt/lib/tsan/tests/rtl/tsan_mutex.cc +++ b/compiler-rt/lib/tsan/tests/rtl/tsan_mutex.cpp @@ -1,4 +1,4 @@ -//===-- tsan_mutex.cc -----------------------------------------------------===// +//===-- tsan_mutex.cpp ----------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/rtl/tsan_posix.cc b/compiler-rt/lib/tsan/tests/rtl/tsan_posix.cpp similarity index 98% rename from compiler-rt/lib/tsan/tests/rtl/tsan_posix.cc rename to compiler-rt/lib/tsan/tests/rtl/tsan_posix.cpp index d194045..0eb8dc1 100644 --- a/compiler-rt/lib/tsan/tests/rtl/tsan_posix.cc +++ b/compiler-rt/lib/tsan/tests/rtl/tsan_posix.cpp @@ -1,4 +1,4 @@ -//===-- tsan_posix.cc -----------------------------------------------------===// +//===-- tsan_posix.cpp ----------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/rtl/tsan_string.cc b/compiler-rt/lib/tsan/tests/rtl/tsan_string.cpp similarity index 97% rename from compiler-rt/lib/tsan/tests/rtl/tsan_string.cc rename to compiler-rt/lib/tsan/tests/rtl/tsan_string.cpp index b236d46..4c31389 100644 --- a/compiler-rt/lib/tsan/tests/rtl/tsan_string.cc +++ b/compiler-rt/lib/tsan/tests/rtl/tsan_string.cpp @@ -1,4 +1,4 @@ -//===-- tsan_string.cc ----------------------------------------------------===// +//===-- tsan_string.cpp ---------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/rtl/tsan_test.cc b/compiler-rt/lib/tsan/tests/rtl/tsan_test.cpp similarity index 96% rename from compiler-rt/lib/tsan/tests/rtl/tsan_test.cc rename to compiler-rt/lib/tsan/tests/rtl/tsan_test.cpp index 51a3b27..84e6bbc 100644 --- a/compiler-rt/lib/tsan/tests/rtl/tsan_test.cc +++ b/compiler-rt/lib/tsan/tests/rtl/tsan_test.cpp @@ -1,4 +1,4 @@ -//===-- tsan_test.cc ------------------------------------------------------===// +//===-- tsan_test.cpp -----------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/rtl/tsan_test_util_posix.cc b/compiler-rt/lib/tsan/tests/rtl/tsan_test_util_posix.cpp similarity index 99% rename from compiler-rt/lib/tsan/tests/rtl/tsan_test_util_posix.cc rename to compiler-rt/lib/tsan/tests/rtl/tsan_test_util_posix.cpp index 767c829..73c7e92 100644 --- a/compiler-rt/lib/tsan/tests/rtl/tsan_test_util_posix.cc +++ b/compiler-rt/lib/tsan/tests/rtl/tsan_test_util_posix.cpp @@ -1,4 +1,4 @@ -//===-- tsan_test_util_posix.cc -------------------------------------------===// +//===-- tsan_test_util_posix.cpp ------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/rtl/tsan_thread.cc b/compiler-rt/lib/tsan/tests/rtl/tsan_thread.cpp similarity index 95% rename from compiler-rt/lib/tsan/tests/rtl/tsan_thread.cc rename to compiler-rt/lib/tsan/tests/rtl/tsan_thread.cpp index 9e2da91..9d79e0e 100644 --- a/compiler-rt/lib/tsan/tests/rtl/tsan_thread.cc +++ b/compiler-rt/lib/tsan/tests/rtl/tsan_thread.cpp @@ -1,4 +1,4 @@ -//===-- tsan_thread.cc ----------------------------------------------------===// +//===-- tsan_thread.cpp ---------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/unit/CMakeLists.txt b/compiler-rt/lib/tsan/tests/unit/CMakeLists.txt index c08508d..79e334a 100644 --- a/compiler-rt/lib/tsan/tests/unit/CMakeLists.txt +++ b/compiler-rt/lib/tsan/tests/unit/CMakeLists.txt @@ -1,12 +1,13 @@ set(TSAN_UNIT_TEST_SOURCES - tsan_clock_test.cc - tsan_flags_test.cc - tsan_mman_test.cc - tsan_mutex_test.cc - tsan_shadow_test.cc - tsan_stack_test.cc - tsan_sync_test.cc - tsan_unit_test_main.cc) + tsan_clock_test.cpp + tsan_flags_test.cpp + tsan_mman_test.cpp + tsan_mutex_test.cpp + tsan_shadow_test.cpp + tsan_stack_test.cpp + tsan_sync_test.cpp + tsan_unit_test_main.cpp + ) add_tsan_unittest(TsanUnitTest SOURCES ${TSAN_UNIT_TEST_SOURCES}) diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_clock_test.cc b/compiler-rt/lib/tsan/tests/unit/tsan_clock_test.cpp similarity index 99% rename from compiler-rt/lib/tsan/tests/unit/tsan_clock_test.cc rename to compiler-rt/lib/tsan/tests/unit/tsan_clock_test.cpp index 43d0a01..6d835ba 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_clock_test.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_clock_test.cpp @@ -1,4 +1,4 @@ -//===-- tsan_clock_test.cc ------------------------------------------------===// +//===-- tsan_clock_test.cpp -----------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_dense_alloc_test.cc b/compiler-rt/lib/tsan/tests/unit/tsan_dense_alloc_test.cpp similarity index 95% rename from compiler-rt/lib/tsan/tests/unit/tsan_dense_alloc_test.cc rename to compiler-rt/lib/tsan/tests/unit/tsan_dense_alloc_test.cpp index 8c544b0..0504562 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_dense_alloc_test.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_dense_alloc_test.cpp @@ -1,4 +1,4 @@ -//===-- tsan_dense_alloc_test.cc ------------------------------------------===// +//===-- tsan_dense_alloc_test.cpp -----------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_flags_test.cc b/compiler-rt/lib/tsan/tests/unit/tsan_flags_test.cpp similarity index 98% rename from compiler-rt/lib/tsan/tests/unit/tsan_flags_test.cc rename to compiler-rt/lib/tsan/tests/unit/tsan_flags_test.cpp index ebdb28f..ace7600 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_flags_test.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_flags_test.cpp @@ -1,4 +1,4 @@ -//===-- tsan_flags_test.cc ------------------------------------------------===// +//===-- tsan_flags_test.cpp -----------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_mman_test.cc b/compiler-rt/lib/tsan/tests/unit/tsan_mman_test.cpp similarity index 98% rename from compiler-rt/lib/tsan/tests/unit/tsan_mman_test.cc rename to compiler-rt/lib/tsan/tests/unit/tsan_mman_test.cpp index b2789b7..a8a88b3 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_mman_test.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_mman_test.cpp @@ -1,4 +1,4 @@ -//===-- tsan_mman_test.cc -------------------------------------------------===// +//===-- tsan_mman_test.cpp ------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_mutex_test.cc b/compiler-rt/lib/tsan/tests/unit/tsan_mutex_test.cpp similarity index 97% rename from compiler-rt/lib/tsan/tests/unit/tsan_mutex_test.cc rename to compiler-rt/lib/tsan/tests/unit/tsan_mutex_test.cpp index 0649c8a..cb29a7cc 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_mutex_test.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_mutex_test.cpp @@ -1,4 +1,4 @@ -//===-- tsan_mutex_test.cc ------------------------------------------------===// +//===-- tsan_mutex_test.cpp -----------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_mutexset_test.cc b/compiler-rt/lib/tsan/tests/unit/tsan_mutexset_test.cpp similarity index 98% rename from compiler-rt/lib/tsan/tests/unit/tsan_mutexset_test.cc rename to compiler-rt/lib/tsan/tests/unit/tsan_mutexset_test.cpp index 5862138..2b531b0 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_mutexset_test.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_mutexset_test.cpp @@ -1,4 +1,4 @@ -//===-- tsan_mutexset_test.cc ---------------------------------------------===// +//===-- tsan_mutexset_test.cpp --------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_shadow_test.cc b/compiler-rt/lib/tsan/tests/unit/tsan_shadow_test.cpp similarity index 97% rename from compiler-rt/lib/tsan/tests/unit/tsan_shadow_test.cc rename to compiler-rt/lib/tsan/tests/unit/tsan_shadow_test.cpp index 21a4ddf..1d2023f 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_shadow_test.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_shadow_test.cpp @@ -1,4 +1,4 @@ -//===-- tsan_shadow_test.cc -----------------------------------------------===// +//===-- tsan_shadow_test.cpp ----------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_stack_test.cc b/compiler-rt/lib/tsan/tests/unit/tsan_stack_test.cpp similarity index 97% rename from compiler-rt/lib/tsan/tests/unit/tsan_stack_test.cc rename to compiler-rt/lib/tsan/tests/unit/tsan_stack_test.cpp index d8b81d3..f2ee126 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_stack_test.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_stack_test.cpp @@ -1,4 +1,4 @@ -//===-- tsan_stack_test.cc ------------------------------------------------===// +//===-- tsan_stack_test.cpp -----------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc b/compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cpp similarity index 98% rename from compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc rename to compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cpp index 7ea2826..825cc09 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cpp @@ -1,4 +1,4 @@ -//===-- tsan_sync_test.cc -------------------------------------------------===// +//===-- tsan_sync_test.cpp ------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. diff --git a/compiler-rt/lib/tsan/tests/unit/tsan_unit_test_main.cc b/compiler-rt/lib/tsan/tests/unit/tsan_unit_test_main.cpp similarity index 91% rename from compiler-rt/lib/tsan/tests/unit/tsan_unit_test_main.cc rename to compiler-rt/lib/tsan/tests/unit/tsan_unit_test_main.cpp index a1487310..0e7b18a 100644 --- a/compiler-rt/lib/tsan/tests/unit/tsan_unit_test_main.cc +++ b/compiler-rt/lib/tsan/tests/unit/tsan_unit_test_main.cpp @@ -1,4 +1,4 @@ -//===-- tsan_unit_test_main.cc --------------------------------------------===// +//===-- tsan_unit_test_main.cpp -------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. -- 2.7.4