Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 3 | SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" |
| 4 | |
| 5 | # Guess path to LLVM_CHECKOUT if not provided |
| 6 | if [ "${LLVM_CHECKOUT}" == "" ]; then |
| 7 | LLVM_CHECKOUT="${SCRIPT_DIR}/../../../../../" |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 8 | fi |
| 9 | |
| 10 | # Cpplint setup |
| 11 | cd ${SCRIPT_DIR} |
Alexey Samsonov | d875c39 | 2013-08-28 11:27:31 +0000 | [diff] [blame^] | 12 | CPPLINT=${SCRIPT_DIR}/cpplint.py |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 13 | |
| 14 | # Filters |
| 15 | # TODO: remove some of these filters |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 16 | LLVM_LINT_FILTER=-,+whitespace |
Evgeniy Stepanov | 60a8e5b | 2013-02-08 12:13:43 +0000 | [diff] [blame] | 17 | COMMON_LINT_FILTER=-build/include,-build/header_guard,-legal/copyright,-whitespace/comments,-readability/casting,\ |
| 18 | -build/namespaces |
Kostya Serebryany | 5b4267f | 2013-04-05 14:40:25 +0000 | [diff] [blame] | 19 | ASAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/int |
Evgeniy Stepanov | 60a8e5b | 2013-02-08 12:13:43 +0000 | [diff] [blame] | 20 | ASAN_TEST_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/sizeof,-runtime/int,-runtime/printf |
Alexey Samsonov | 506b97d | 2012-12-13 12:09:47 +0000 | [diff] [blame] | 21 | ASAN_LIT_TEST_LINT_FILTER=${ASAN_TEST_LINT_FILTER},-whitespace/line_length |
Evgeniy Stepanov | 60a8e5b | 2013-02-08 12:13:43 +0000 | [diff] [blame] | 22 | TSAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER} |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 23 | TSAN_TEST_LINT_FILTER=${TSAN_RTL_LINT_FILTER},-runtime/threadsafe_fn,-runtime/int |
Alexey Samsonov | 8474843 | 2012-12-28 10:06:26 +0000 | [diff] [blame] | 24 | TSAN_LIT_TEST_LINT_FILTER=${TSAN_TEST_LINT_FILTER},-whitespace/line_length |
Evgeniy Stepanov | 60a8e5b | 2013-02-08 12:13:43 +0000 | [diff] [blame] | 25 | MSAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER} |
Sergey Matveev | 48c1d1a | 2013-05-20 11:09:27 +0000 | [diff] [blame] | 26 | LSAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER} |
Sergey Matveev | 39e8a6d | 2013-05-27 11:41:46 +0000 | [diff] [blame] | 27 | LSAN_LIT_TEST_LINT_FILTER=${LSAN_RTL_LINT_FILTER},-whitespace/line_length |
Evgeniy Stepanov | 5fa8fb7 | 2013-02-12 11:34:52 +0000 | [diff] [blame] | 28 | COMMON_RTL_INC_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/int,-runtime/sizeof,-runtime/printf |
Evgeniy Stepanov | 1a2262e | 2013-04-22 13:28:26 +0000 | [diff] [blame] | 29 | SANITIZER_INCLUDES_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/int |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 30 | |
| 31 | cd ${LLVM_CHECKOUT} |
| 32 | |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 33 | EXITSTATUS=0 |
Alexey Samsonov | d875c39 | 2013-08-28 11:27:31 +0000 | [diff] [blame^] | 34 | LOG=$(mktemp) |
Timur Iskhodzhanov | dd052ce | 2013-08-13 13:44:02 +0000 | [diff] [blame] | 35 | |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 36 | run_lint() { |
| 37 | FILTER=$1 |
| 38 | shift |
Alexey Samsonov | d875c39 | 2013-08-28 11:27:31 +0000 | [diff] [blame^] | 39 | if [ "${SILENT}" == "1" ]; then |
| 40 | ${CPPLINT} --filter=${FILTER} "$@" 2>>$LOG |
| 41 | else |
| 42 | ${CPPLINT} --filter=${FILTER} "$@" |
| 43 | fi |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 44 | if [ "$?" != "0" ]; then |
| 45 | EXITSTATUS=1 |
| 46 | fi |
| 47 | } |
| 48 | |
| 49 | run_lint ${LLVM_LINT_FILTER} --filter=${LLVM_LINT_FILTER} \ |
| 50 | lib/Transforms/Instrumentation/*Sanitizer.cpp \ |
| 51 | lib/Transforms/Utils/SpecialCaseList.cpp |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 52 | |
| 53 | COMPILER_RT=projects/compiler-rt |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 54 | # Headers |
| 55 | SANITIZER_INCLUDES=${COMPILER_RT}/include/sanitizer |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 56 | run_lint ${SANITIZER_INCLUDES_LINT_FILTER} ${SANITIZER_INCLUDES}/*.h |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 57 | |
| 58 | # Sanitizer_common |
| 59 | COMMON_RTL=${COMPILER_RT}/lib/sanitizer_common |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 60 | run_lint ${COMMON_RTL_INC_LINT_FILTER} ${COMMON_RTL}/*.{cc,h} \ |
| 61 | ${COMMON_RTL}/tests/*.cc |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 62 | |
Evgeniy Stepanov | 83f05bf | 2012-12-11 12:52:38 +0000 | [diff] [blame] | 63 | # Interception |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 64 | INTERCEPTION=${COMPILER_RT}/lib/interception |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 65 | run_lint ${ASAN_RTL_LINT_FILTER} ${INTERCEPTION}/*.{cc,h} |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 66 | |
| 67 | # ASan |
| 68 | ASAN_RTL=${COMPILER_RT}/lib/asan |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 69 | run_lint ${ASAN_RTL_LINT_FILTER} ${ASAN_RTL}/*.{cc,h} |
| 70 | run_lint ${ASAN_TEST_LINT_FILTER} ${ASAN_RTL}/tests/*.{cc,h} |
| 71 | run_lint ${ASAN_LIT_TEST_LINT_FILTER} ${ASAN_RTL}/lit_tests/*/*.cc |
Alexey Samsonov | 79b3628 | 2012-08-31 08:36:36 +0000 | [diff] [blame] | 72 | |
| 73 | # TSan |
| 74 | TSAN_RTL=${COMPILER_RT}/lib/tsan |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 75 | run_lint ${TSAN_RTL_LINT_FILTER} ${TSAN_RTL}/rtl/*.{cc,h} |
| 76 | run_lint ${TSAN_TEST_LINT_FILTER} ${TSAN_RTL}/tests/rtl/*.{cc,h} \ |
| 77 | ${TSAN_RTL}/tests/unit/*.cc |
| 78 | run_lint ${TSAN_LIT_TEST_LINT_FILTER} ${TSAN_RTL}/lit_tests/*.cc |
Evgeniy Stepanov | c8cde8d | 2013-01-18 15:53:43 +0000 | [diff] [blame] | 79 | |
Evgeniy Stepanov | 83f05bf | 2012-12-11 12:52:38 +0000 | [diff] [blame] | 80 | # MSan |
| 81 | MSAN_RTL=${COMPILER_RT}/lib/msan |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 82 | run_lint ${MSAN_RTL_LINT_FILTER} ${MSAN_RTL}/*.{cc,h} |
Evgeniy Stepanov | c8cde8d | 2013-01-18 15:53:43 +0000 | [diff] [blame] | 83 | |
Sergey Matveev | 48c1d1a | 2013-05-20 11:09:27 +0000 | [diff] [blame] | 84 | # LSan |
| 85 | LSAN_RTL=${COMPILER_RT}/lib/lsan |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 86 | run_lint ${LSAN_RTL_LINT_FILTER} ${LSAN_RTL}/*.{cc,h} |
| 87 | run_lint ${LSAN_RTL_LINT_FILTER} ${LSAN_RTL}/tests/*.{cc,h} |
| 88 | run_lint ${LSAN_LIT_TEST_LINT_FILTER} ${LSAN_RTL}/lit_tests/*/*.cc |
Evgeniy Stepanov | 8a3666f | 2013-01-18 16:24:50 +0000 | [diff] [blame] | 89 | |
Evgeniy Stepanov | c8cde8d | 2013-01-18 15:53:43 +0000 | [diff] [blame] | 90 | # Misc files |
| 91 | FILES=${COMMON_RTL}/*.inc |
| 92 | for FILE in $FILES; do |
Evgeniy Stepanov | 8a3666f | 2013-01-18 16:24:50 +0000 | [diff] [blame] | 93 | TMPFILE=$(mktemp -u ${FILE}.XXXXX).cc |
Evgeniy Stepanov | 8a3666f | 2013-01-18 16:24:50 +0000 | [diff] [blame] | 94 | cp -f $FILE $TMPFILE && \ |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 95 | run_lint ${COMMON_RTL_INC_LINT_FILTER} $TMPFILE |
Evgeniy Stepanov | c8cde8d | 2013-01-18 15:53:43 +0000 | [diff] [blame] | 96 | rm $TMPFILE |
| 97 | done |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 98 | |
Alexey Samsonov | d875c39 | 2013-08-28 11:27:31 +0000 | [diff] [blame^] | 99 | if [ "$EXITSTATUS" != "0" ]; then |
| 100 | cat $LOG | grep -v "Done processing" | grep -v "Total errors found" |
| 101 | fi |
| 102 | |
Alexey Samsonov | 903c325 | 2013-08-23 07:43:56 +0000 | [diff] [blame] | 103 | exit $EXITSTATUS |