On Apr 6, 2013 1:43 AM, "Kostya Serebryany" <kcc at google.com> wrote:
>
> Author: kcc
> Date: Fri Apr 5 09:40:25 2013
> New Revision: 178872
>
> URL: http://llvm.org/viewvc/llvm-project?rev=178872&view=rev
> Log:
> [sanitizer] found a bug by code inspection: CHECK(a=b) instead of
CHECK(a==b). Was puzzled why lint did not catch it. Turns out this check
was disabled for asan source. fix all cases and enable the check
I'm somewhat worried why /clang/ didn't catch this. (Probably some
necessary suppression due to macros, but perhaps we could tweak it further)
could you file a bug, perhaps?
>
> Modified:
> compiler-rt/trunk/lib/asan/asan_fake_stack.cc
> compiler-rt/trunk/lib/asan/asan_interceptors.cc
> compiler-rt/trunk/lib/asan/asan_mac.cc
> compiler-rt/trunk/lib/asan/asan_poisoning.cc
> compiler-rt/trunk/lib/asan/asan_posix.cc
> compiler-rt/trunk/lib/asan/asan_report.cc
> compiler-rt/trunk/lib/asan/asan_rtl.cc
> compiler-rt/trunk/lib/asan/asan_stats.cc
> compiler-rt/trunk/lib/asan/asan_thread.cc
> compiler-rt/trunk/lib/msan/msan_interceptors.cc
> compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh
>
> Modified: compiler-rt/trunk/lib/asan/asan_fake_stack.cc
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_fake_stack.cc?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_fake_stack.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_fake_stack.cc Fri Apr 5 09:40:25 2013
> @@ -18,7 +18,7 @@
> namespace __asan {
>
> FakeStack::FakeStack() {
> - CHECK(REAL(memset) != 0);
> + CHECK(REAL(memset));
> REAL(memset)(this, 0, sizeof(*this));
> }
>
> @@ -150,9 +150,9 @@ void FakeStack::DeallocateFrame(FakeFram
>
> void FakeStack::OnFree(uptr ptr, uptr size, uptr real_stack) {
> FakeFrame *fake_frame = (FakeFrame*)ptr;
> - CHECK(fake_frame->magic = kRetiredStackFrameMagic);
> - CHECK(fake_frame->descr != 0);
> - CHECK(fake_frame->size_minus_one == size - 1);
> + CHECK_EQ(fake_frame->magic, kRetiredStackFrameMagic);
> + CHECK_NE(fake_frame->descr, 0);
> + CHECK_EQ(fake_frame->size_minus_one, size - 1);
> PoisonShadow(ptr, size, kAsanStackAfterReturnMagic);
> }
>
>
> Modified: compiler-rt/trunk/lib/asan/asan_interceptors.cc
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_interceptors.cc?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_interceptors.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_interceptors.cc Fri Apr 5 09:40:25
2013
> @@ -522,7 +522,7 @@ static inline bool IsValidStrtolBase(int
> }
>
> static inline void FixRealStrtolEndptr(const char *nptr, char **endptr) {
> - CHECK(endptr != 0);
> + CHECK(endptr);
> if (nptr == *endptr) {
> // No digits were found at strtol call, we need to find out the last
> // symbol accessed by strtoll on our own.
>
> Modified: compiler-rt/trunk/lib/asan/asan_mac.cc
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_mac.cc?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_mac.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_mac.cc Fri Apr 5 09:40:25 2013
> @@ -58,9 +58,9 @@ int GetMacosVersion() {
> uptr len = 0, maxlen = sizeof(version) / sizeof(version[0]);
> for (uptr i = 0; i < maxlen; i++) version[i] = '\0';
> // Get the version length.
> - CHECK(sysctl(mib, 2, 0, &len, 0, 0) != -1);
> - CHECK(len < maxlen);
> - CHECK(sysctl(mib, 2, version, &len, 0, 0) != -1);
> + CHECK_NE(sysctl(mib, 2, 0, &len, 0, 0), -1);
> + CHECK_LT(len, maxlen);
> + CHECK_NE(sysctl(mib, 2, version, &len, 0, 0), -1);
> switch (version[0]) {
> case '9': return MACOS_VERSION_LEOPARD;
> case '1': {
>
> Modified: compiler-rt/trunk/lib/asan/asan_poisoning.cc
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_poisoning.cc?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_poisoning.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_poisoning.cc Fri Apr 5 09:40:25 2013
> @@ -23,7 +23,7 @@ void PoisonShadow(uptr addr, uptr size,
> CHECK(AddrIsInMem(addr));
> CHECK(AddrIsAlignedByGranularity(addr + size));
> CHECK(AddrIsInMem(addr + size - SHADOW_GRANULARITY));
> - CHECK(REAL(memset) != 0);
> + CHECK(REAL(memset));
> FastPoisonShadow(addr, size, value);
> }
>
>
> Modified: compiler-rt/trunk/lib/asan/asan_posix.cc
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_posix.cc?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_posix.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_posix.cc Fri Apr 5 09:40:25 2013
> @@ -43,7 +43,7 @@ static void MaybeInstallSigaction(int si
> sigact.sa_sigaction = handler;
> sigact.sa_flags = SA_SIGINFO;
> if (flags()->use_sigaltstack) sigact.sa_flags |= SA_ONSTACK;
> - CHECK(0 == REAL(sigaction)(signum, &sigact, 0));
> + CHECK_EQ(0, REAL(sigaction)(signum, &sigact, 0));
> if (flags()->verbosity >= 1) {
> Report("Installed the sigaction for signal %d\n", signum);
> }
> @@ -60,7 +60,7 @@ static void ASAN_OnSIGSEGV(int, sigi
>
> void SetAlternateSignalStack() {
> stack_t altstack, oldstack;
> - CHECK(0 == sigaltstack(0, &oldstack));
> + CHECK_EQ(0, sigaltstack(0, &oldstack));
> // If the alternate stack is already in place, do nothing.
> if ((oldstack.ss_flags & SS_DISABLE) == 0) return;
> // TODO(glider): the mapped stack should have the MAP_STACK flag in the
> @@ -70,7 +70,7 @@ void SetAlternateSignalStack() {
> altstack.ss_sp = base;
> altstack.ss_flags = 0;
> altstack.ss_size = kAltStackSize;
> - CHECK(0 == sigaltstack(&altstack, 0));
> + CHECK_EQ(0, sigaltstack(&altstack, 0));
> if (flags()->verbosity > 0) {
> Report("Alternative stack for T%d set: [%p,%p)\n",
> GetCurrentTidOrInvalid(),
> @@ -83,7 +83,7 @@ void UnsetAlternateSignalStack() {
> altstack.ss_sp = 0;
> altstack.ss_flags = SS_DISABLE;
> altstack.ss_size = 0;
> - CHECK(0 == sigaltstack(&altstack, &oldstack));
> + CHECK_EQ(0, sigaltstack(&altstack, &oldstack));
> UnmapOrDie(oldstack.ss_sp, oldstack.ss_size);
> }
>
> @@ -103,7 +103,7 @@ static bool tsd_key_inited = false;
> void AsanTSDInit(void (*destructor)(void *tsd)) {
> CHECK(!tsd_key_inited);
> tsd_key_inited = true;
> - CHECK(0 == pthread_key_create(&tsd_key, destructor));
> + CHECK_EQ(0, pthread_key_create(&tsd_key, destructor));
> }
>
> void *AsanTSDGet() {
>
> Modified: compiler-rt/trunk/lib/asan/asan_report.cc
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_report.cc?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_report.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_report.cc Fri Apr 5 09:40:25 2013
> @@ -298,7 +298,7 @@ bool DescribeAddressIfStack(uptr addr, u
> // Report the number of stack objects.
> char *p;
> uptr n_objects = internal_simple_strtoll(frame_descr, &p, 10);
> - CHECK(n_objects > 0);
> + CHECK_GT(n_objects, 0);
> Printf(" This frame has %zu object(s):\n", n_objects);
> // Report all objects in this frame.
> for (uptr i = 0; i < n_objects; i++) {
>
> Modified: compiler-rt/trunk/lib/asan/asan_rtl.cc
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_rtl.cc?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_rtl.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_rtl.cc Fri Apr 5 09:40:25 2013
> @@ -92,7 +92,7 @@ static void ParseFlagsFromString(Flags *
> ParseFlag(str, &f->symbolize, "symbolize");
> ParseFlag(str, &f->verbosity, "verbosity");
> ParseFlag(str, &f->redzone, "redzone");
> - CHECK(f->redzone >= 16);
> + CHECK_GE(f->redzone, 16);
> CHECK(IsPowerOfTwo(f->redzone));
>
> ParseFlag(str, &f->debug, "debug");
> @@ -207,8 +207,8 @@ void ShowStatsAndAbort() {
> // ---------------------- mmap -------------------- {{{1
> // Reserve memory range [beg, end].
> static void ReserveShadowMemoryRange(uptr beg, uptr end) {
> - CHECK((beg % GetPageSizeCached()) == 0);
> - CHECK(((end + 1) % GetPageSizeCached()) == 0);
> + CHECK_EQ((beg % GetPageSizeCached()), 0);
> + CHECK_EQ(((end + 1) % GetPageSizeCached()), 0);
> uptr size = end - beg + 1;
> void *res = MmapFixedNoReserve(beg, size);
> if (res != (void*)beg) {
>
> Modified: compiler-rt/trunk/lib/asan/asan_stats.cc
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_stats.cc?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_stats.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_stats.cc Fri Apr 5 09:40:25 2013
> @@ -21,7 +21,7 @@
> namespace __asan {
>
> AsanStats::AsanStats() {
> - CHECK(REAL(memset) != 0);
> + CHECK(REAL(memset));
> REAL(memset)(this, 0, sizeof(AsanStats));
> }
>
>
> Modified: compiler-rt/trunk/lib/asan/asan_thread.cc
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_thread.cc?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/asan/asan_thread.cc (original)
> +++ compiler-rt/trunk/lib/asan/asan_thread.cc Fri Apr 5 09:40:25 2013
> @@ -129,7 +129,7 @@ thread_return_t AsanThread::ThreadStart(
> // start_routine_ == 0 if we're on the main thread or on one of the
> // OS X libdispatch worker threads. But nobody is supposed to call
> // ThreadStart() for the worker threads.
> - CHECK(tid() == 0);
> + CHECK_EQ(tid(), 0);
> return 0;
> }
>
>
> Modified: compiler-rt/trunk/lib/msan/msan_interceptors.cc
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_interceptors.cc?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/msan/msan_interceptors.cc (original)
> +++ compiler-rt/trunk/lib/msan/msan_interceptors.cc Fri Apr 5 09:40:25
2013
> @@ -829,7 +829,7 @@ static uptr sigactions[kMaxSignals];
> static StaticSpinMutex sigactions_mu;
>
> static void SignalHandler(int signo) {
> - typedef void (*signal_cb)(int);
> + typedef void (*signal_cb)(int x);
> signal_cb cb = (signal_cb)sigactions[signo];
> cb(signo);
> }
>
> Modified: compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh
> URL:
http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh?rev=178872&r1=178871&r2=178872&view=diff
>
==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh
(original)
> +++ compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh Fri Apr
5 09:40:25 2013
> @@ -23,7 +23,7 @@ CPPLINT=${SCRIPT_DIR}/cpplint/cpplint.py
> # TODO: remove some of these filters
>
COMMON_LINT_FILTER=-build/include,-build/header_guard,-legal/copyright,-whitespace/comments,-readability/casting,\
> -build/namespaces
>
-ASAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER},-readability/check,-runtime/int
> +ASAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/int
>
ASAN_TEST_LINT_FILTER=${COMMON_LINT_FILTER},-runtime/sizeof,-runtime/int,-runtime/printf
>
ASAN_LIT_TEST_LINT_FILTER=${ASAN_TEST_LINT_FILTER},-whitespace/line_length
> TSAN_RTL_LINT_FILTER=${COMMON_LINT_FILTER}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130428/8091dd04/attachment.html>