<div dir="ltr">Thanks! <br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 30, 2015 at 5:22 PM, Vedant Kumar via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=llvm-commits@lists.llvm.org&cc=&bcc=&su=&body=','_blank');return false;">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: vedantk<br>
Date: Wed Sep 30 19:22:21 2015<br>
New Revision: 248966<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=248966&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=248966&view=rev</a><br>
Log:<br>
[compiler-rt] Apply modernize-use-nullptr fixes in sanitizers<br>
<br>
- Trim spaces.<br>
- Use nullptr in place of 0 for pointer variables.<br>
- Use '!p' in place of 'p == 0' for null pointer checks.<br>
- Add blank lines to separate function definitions.<br>
- Add 'extern "C"' or 'namespace foo' comments after the appropriate<br>
closing brackets<br>
<br>
This is a continuation of work from 409b7b82. The focus here is on the<br>
various sanitizers (not sanitizer_common, as before).<br>
<br>
Patch by Eugene Zelenko!<br>
<br>
Differential Revision: <a href="http://reviews.llvm.org/D13225" rel="noreferrer" target="_blank">http://reviews.llvm.org/D13225</a><br>
<br>
Modified:<br>
compiler-rt/trunk/lib/asan/asan_allocator.cc<br>
compiler-rt/trunk/lib/asan/asan_debugging.cc<br>
compiler-rt/trunk/lib/asan/asan_fake_stack.cc<br>
compiler-rt/trunk/lib/asan/asan_globals.cc<br>
compiler-rt/trunk/lib/asan/asan_interceptors.cc<br>
compiler-rt/trunk/lib/asan/asan_linux.cc<br>
compiler-rt/trunk/lib/asan/asan_report.cc<br>
compiler-rt/trunk/lib/asan/asan_rtl.cc<br>
compiler-rt/trunk/lib/asan/asan_stack.h<br>
compiler-rt/trunk/lib/asan/asan_thread.cc<br>
compiler-rt/trunk/lib/asan/asan_thread.h<br>
compiler-rt/trunk/lib/dfsan/dfsan_custom.cc<br>
compiler-rt/trunk/lib/lsan/lsan_allocator.cc<br>
compiler-rt/trunk/lib/lsan/lsan_common.cc<br>
compiler-rt/trunk/lib/lsan/lsan_common_linux.cc<br>
compiler-rt/trunk/lib/lsan/lsan_interceptors.cc<br>
compiler-rt/trunk/lib/lsan/lsan_thread.cc<br>
compiler-rt/trunk/lib/msan/msan.cc<br>
compiler-rt/trunk/lib/msan/msan_allocator.cc<br>
compiler-rt/trunk/lib/msan/msan_chained_origin_depot.cc<br>
compiler-rt/trunk/lib/msan/msan_interceptors.cc<br>
compiler-rt/trunk/lib/msan/msan_linux.cc<br>
compiler-rt/trunk/lib/msan/msan_thread.h<br>
compiler-rt/trunk/lib/safestack/safestack.cc<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_allocator.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_allocator.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_allocator.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_allocator.cc (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_allocator.cc Wed Sep 30 19:22:21 2015<br>
@@ -14,8 +14,8 @@<br>
// with ThreadSanitizer and MemorySanitizer.<br>
//<br>
//===----------------------------------------------------------------------===//<br>
-#include "asan_allocator.h"<br>
<br>
+#include "asan_allocator.h"<br>
#include "asan_mapping.h"<br>
#include "asan_poisoning.h"<br>
#include "asan_report.h"<br>
@@ -541,7 +541,7 @@ struct Allocator {<br>
u8 chunk_state = m->chunk_state;<br>
if (chunk_state != CHUNK_ALLOCATED)<br>
ReportInvalidFree(old_ptr, chunk_state, stack);<br>
- CHECK_NE(REAL(memcpy), (void*)0);<br>
+ CHECK_NE(REAL(memcpy), nullptr);<br>
uptr memcpy_size = Min(new_size, m->UsedSize());<br>
// If realloc() races with free(), we may start copying freed memory.<br>
// However, we will report racy double-free later anyway.<br>
@@ -579,7 +579,7 @@ struct Allocator {<br>
<br>
// Assumes alloc_beg == allocator.GetBlockBegin(alloc_beg).<br>
AsanChunk *GetAsanChunk(void *alloc_beg) {<br>
- if (!alloc_beg) return 0;<br>
+ if (!alloc_beg) return nullptr;<br>
if (!allocator.FromPrimary(alloc_beg)) {<br>
uptr *meta = reinterpret_cast<uptr *>(allocator.GetMetaData(alloc_beg));<br>
AsanChunk *m = reinterpret_cast<AsanChunk *>(meta[1]);<br>
@@ -619,7 +619,7 @@ struct Allocator {<br>
// The address is in the chunk's left redzone, so maybe it is actually<br>
// a right buffer overflow from the other chunk to the left.<br>
// Search a bit to the left to see if there is another chunk.<br>
- AsanChunk *m2 = 0;<br>
+ AsanChunk *m2 = nullptr;<br>
for (uptr l = 1; l < GetPageSizeCached(); l++) {<br>
m2 = GetAsanChunkByAddr(addr - l);<br>
if (m2 == m1) continue; // Still the same chunk.<br>
@@ -653,7 +653,7 @@ static AsanAllocator &get_allocator() {<br>
}<br>
<br>
bool AsanChunkView::IsValid() {<br>
- return chunk_ != 0 && chunk_->chunk_state != CHUNK_AVAILABLE;<br>
+ return chunk_ && chunk_->chunk_state != CHUNK_AVAILABLE;<br>
}<br>
uptr AsanChunkView::Beg() { return chunk_->Beg(); }<br>
uptr AsanChunkView::End() { return Beg() + UsedSize(); }<br>
@@ -723,11 +723,11 @@ void *asan_calloc(uptr nmemb, uptr size,<br>
}<br>
<br>
void *asan_realloc(void *p, uptr size, BufferedStackTrace *stack) {<br>
- if (p == 0)<br>
+ if (!p)<br>
return instance.Allocate(size, 8, stack, FROM_MALLOC, true);<br>
if (size == 0) {<br>
instance.Deallocate(p, 0, stack, FROM_MALLOC);<br>
- return 0;<br>
+ return nullptr;<br>
}<br>
return instance.Reallocate(p, size, stack);<br>
}<br>
@@ -755,7 +755,7 @@ int asan_posix_memalign(void **memptr, u<br>
}<br>
<br>
uptr asan_malloc_usable_size(void *ptr, uptr pc, uptr bp) {<br>
- if (ptr == 0) return 0;<br>
+ if (!ptr) return 0;<br>
uptr usable_size = instance.AllocationSize(reinterpret_cast<uptr>(ptr));<br>
if (flags()->check_malloc_usable_size && (usable_size == 0)) {<br>
GET_STACK_TRACE_FATAL(pc, bp);<br>
@@ -780,7 +780,7 @@ void AsanSoftRssLimitExceededCallback(bo<br>
instance.allocator.SetRssLimitIsExceeded(exceeded);<br>
}<br>
<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
// --- Implementation of LSan-specific functions --- {{{1<br>
namespace __lsan {<br>
@@ -881,7 +881,7 @@ int __sanitizer_get_ownership(const void<br>
}<br>
<br>
uptr __sanitizer_get_allocated_size(const void *p) {<br>
- if (p == 0) return 0;<br>
+ if (!p) return 0;<br>
uptr ptr = reinterpret_cast<uptr>(p);<br>
uptr allocated_size = instance.AllocationSize(ptr);<br>
// Die if p is not malloced or if it is already freed.<br>
@@ -904,5 +904,5 @@ SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_<br>
void __sanitizer_free_hook(void *ptr) {<br>
(void)ptr;<br>
}<br>
-} // extern "C"<br>
+} // extern "C"<br>
#endif<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_debugging.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_debugging.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_debugging.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_debugging.cc (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_debugging.cc Wed Sep 30 19:22:21 2015<br>
@@ -108,14 +108,14 @@ static uptr AsanGetStack(uptr addr, uptr<br>
return 0;<br>
}<br>
<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
using namespace __asan;<br>
<br>
SANITIZER_INTERFACE_ATTRIBUTE<br>
const char *__asan_locate_address(uptr addr, char *name, uptr name_size,<br>
uptr *region_address, uptr *region_size) {<br>
- AddressDescription descr = { name, name_size, 0, 0, 0 };<br>
+ AddressDescription descr = { name, name_size, 0, 0, nullptr };<br>
AsanLocateAddress(addr, &descr);<br>
if (region_address) *region_address = descr.region_address;<br>
if (region_size) *region_size = descr.region_size;<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_fake_stack.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_fake_stack.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_fake_stack.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_fake_stack.cc (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_fake_stack.cc Wed Sep 30 19:22:21 2015<br>
@@ -11,6 +11,7 @@<br>
//<br>
// FakeStack is used to detect use-after-return bugs.<br>
//===----------------------------------------------------------------------===//<br>
+<br>
#include "asan_allocator.h"<br>
#include "asan_poisoning.h"<br>
#include "asan_thread.h"<br>
@@ -32,7 +33,7 @@ ALWAYS_INLINE void SetShadow(uptr ptr, u<br>
if (class_id <= 6) {<br>
for (uptr i = 0; i < (1U << class_id); i++) {<br>
shadow[i] = magic;<br>
- SanitizerBreakOptimization(0); // Make sure this does not become memset.<br>
+ SanitizerBreakOptimization(nullptr); // Make sure this does not become memset.<br>
}<br>
} else {<br>
// The size class is too big, it's cheaper to poison only size bytes.<br>
@@ -108,7 +109,7 @@ FakeFrame *FakeStack::Allocate(uptr stac<br>
*SavedFlagPtr(reinterpret_cast<uptr>(res), class_id) = &flags[pos];<br>
return res;<br>
}<br>
- return 0; // We are out of fake stack.<br>
+ return nullptr; // We are out of fake stack.<br>
}<br>
<br>
uptr FakeStack::AddrIsInFakeStack(uptr ptr, uptr *frame_beg, uptr *frame_end) {<br>
@@ -185,7 +186,7 @@ void SetTLSFakeStack(FakeStack *fs) { }<br>
<br>
static FakeStack *GetFakeStack() {<br>
AsanThread *t = GetCurrentThread();<br>
- if (!t) return 0;<br>
+ if (!t) return nullptr;<br>
return t->fake_stack();<br>
}<br>
<br>
@@ -193,7 +194,7 @@ static FakeStack *GetFakeStackFast() {<br>
if (FakeStack *fs = GetTLSFakeStack())<br>
return fs;<br>
if (!__asan_option_detect_stack_use_after_return)<br>
- return 0;<br>
+ return nullptr;<br>
return GetFakeStack();<br>
}<br>
<br>
@@ -214,7 +215,7 @@ ALWAYS_INLINE void OnFree(uptr ptr, uptr<br>
SetShadow(ptr, size, class_id, kMagic8);<br>
}<br>
<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
// ---------------------- Interface ---------------- {{{1<br>
using namespace __asan;<br>
@@ -247,13 +248,13 @@ SANITIZER_INTERFACE_ATTRIBUTE<br>
void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg,<br>
void **end) {<br>
FakeStack *fs = reinterpret_cast<FakeStack*>(fake_stack);<br>
- if (!fs) return 0;<br>
+ if (!fs) return nullptr;<br>
uptr frame_beg, frame_end;<br>
FakeFrame *frame = reinterpret_cast<FakeFrame *>(fs->AddrIsInFakeStack(<br>
reinterpret_cast<uptr>(addr), &frame_beg, &frame_end));<br>
- if (!frame) return 0;<br>
+ if (!frame) return nullptr;<br>
if (frame->magic != kCurrentStackFrameMagic)<br>
- return 0;<br>
+ return nullptr;<br>
if (beg) *beg = reinterpret_cast<void*>(frame_beg);<br>
if (end) *end = reinterpret_cast<void*>(frame_end);<br>
return reinterpret_cast<void*>(frame->real_stack);<br>
@@ -278,4 +279,4 @@ void __asan_allocas_unpoison(uptr top, u<br>
REAL(memset)(reinterpret_cast<void*>(MemToShadow(top)), 0,<br>
(bottom - top) / SHADOW_GRANULARITY);<br>
}<br>
-} // extern "C"<br>
+} // extern "C"<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_globals.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_globals.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_globals.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_globals.cc (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_globals.cc Wed Sep 30 19:22:21 2015<br>
@@ -11,6 +11,7 @@<br>
//<br>
// Handle globals.<br>
//===----------------------------------------------------------------------===//<br>
+<br>
#include "asan_interceptors.h"<br>
#include "asan_internal.h"<br>
#include "asan_mapping.h"<br>
@@ -167,7 +168,7 @@ static void RegisterGlobal(const Global<br>
l->next = list_of_all_globals;<br>
list_of_all_globals = l;<br>
if (g->has_dynamic_init) {<br>
- if (dynamic_init_globals == 0) {<br>
+ if (!dynamic_init_globals) {<br>
dynamic_init_globals = new(allocator_for_globals)<br>
VectorOfGlobals(kDynamicInitGlobalsInitialCapacity);<br>
}<br>
@@ -206,7 +207,7 @@ void StopInitOrderChecking() {<br>
}<br>
}<br>
<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
// ---------------------- Interface ---------------- {{{1<br>
using namespace __asan; // NOLINT<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_interceptors.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_interceptors.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_interceptors.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_interceptors.cc (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_interceptors.cc Wed Sep 30 19:22:21 2015<br>
@@ -11,8 +11,8 @@<br>
//<br>
// Intercept various libc functions.<br>
//===----------------------------------------------------------------------===//<br>
-#include "asan_interceptors.h"<br>
<br>
+#include "asan_interceptors.h"<br>
#include "asan_allocator.h"<br>
#include "asan_internal.h"<br>
#include "asan_mapping.h"<br>
@@ -109,7 +109,7 @@ static inline bool RangesOverlap(const c<br>
<br>
static inline uptr MaybeRealStrnlen(const char *s, uptr maxlen) {<br>
#if ASAN_INTERCEPT_STRNLEN<br>
- if (REAL(strnlen) != 0) {<br>
+ if (REAL(strnlen)) {<br>
return REAL(strnlen)(s, maxlen);<br>
}<br>
#endif<br>
@@ -127,7 +127,7 @@ int OnExit() {<br>
return 0;<br>
}<br>
<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
// ---------------------- Wrappers ---------------- {{{1<br>
using namespace __asan; // NOLINT<br>
@@ -220,7 +220,7 @@ static thread_return_t THREAD_CALLING_CO<br>
ThreadStartParam *param = reinterpret_cast<ThreadStartParam *>(arg);<br>
AsanThread *t = nullptr;<br>
while ((t = reinterpret_cast<AsanThread *>(<br>
- atomic_load(¶m->t, memory_order_acquire))) == 0)<br>
+ atomic_load(¶m->t, memory_order_acquire))) == nullptr)<br>
internal_sched_yield();<br>
SetCurrentThread(t);<br>
return t->ThreadStart(GetTid(), ¶m->is_registered);<br>
@@ -235,7 +235,7 @@ INTERCEPTOR(int, pthread_create, void *t<br>
StopInitOrderChecking();<br>
GET_STACK_TRACE_THREAD;<br>
int detached = 0;<br>
- if (attr != 0)<br>
+ if (attr)<br>
REAL(pthread_attr_getdetachstate)(attr, &detached);<br>
ThreadStartParam param;<br>
atomic_store(¶m.t, 0, memory_order_relaxed);<br>
@@ -280,7 +280,7 @@ INTERCEPTOR(void*, signal, int signum, v<br>
if (!IsDeadlySignal(signum) || common_flags()->allow_user_segv_handler) {<br>
return REAL(signal)(signum, handler);<br>
}<br>
- return 0;<br>
+ return nullptr;<br>
}<br>
<br>
INTERCEPTOR(int, sigaction, int signum, const struct sigaction *act,<br>
@@ -296,7 +296,7 @@ int real_sigaction(int signum, const voi<br>
return REAL(sigaction)(signum, (const struct sigaction *)act,<br>
(struct sigaction *)oldact);<br>
}<br>
-} // namespace __sanitizer<br>
+} // namespace __sanitizer<br>
<br>
#elif SANITIZER_POSIX<br>
// We need to have defined REAL(sigaction) on posix systems.<br>
@@ -713,7 +713,7 @@ INTERCEPTOR(int, __cxa_atexit, void (*fu<br>
#endif<br>
ENSURE_ASAN_INITED();<br>
int res = REAL(__cxa_atexit)(func, arg, dso_handle);<br>
- REAL(__cxa_atexit)(AtCxaAtexit, 0, 0);<br>
+ REAL(__cxa_atexit)(AtCxaAtexit, nullptr, nullptr);<br>
return res;<br>
}<br>
#endif // ASAN_INTERCEPT___CXA_ATEXIT<br>
@@ -817,4 +817,4 @@ void InitializeAsanInterceptors() {<br>
VReport(1, "AddressSanitizer: libc interceptors initialized\n");<br>
}<br>
<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_linux.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_linux.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_linux.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_linux.cc (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_linux.cc Wed Sep 30 19:22:21 2015<br>
@@ -117,7 +117,7 @@ void AsanCheckDynamicRTPrereqs() {<br>
return;<br>
<br>
// Ensure that dynamic RT is the first DSO in the list<br>
- const char *first_dso_name = 0;<br>
+ const char *first_dso_name = nullptr;<br>
dl_iterate_phdr(FindFirstDSOCallback, &first_dso_name);<br>
if (first_dso_name && !IsDynamicRTName(first_dso_name)) {<br>
Report("ASan runtime does not come first in initial library list; "<br>
@@ -142,7 +142,8 @@ void AsanCheckIncompatibleRT() {<br>
// system libraries, causing crashes later in ASan initialization.<br>
MemoryMappingLayout proc_maps(/*cache_enabled*/true);<br>
char filename[128];<br>
- while (proc_maps.Next(0, 0, 0, filename, sizeof(filename), 0)) {<br>
+ while (proc_maps.Next(nullptr, nullptr, nullptr, filename,<br>
+ sizeof(filename), nullptr)) {<br>
if (IsDynamicRTName(filename)) {<br>
Report("Your application is linked against "<br>
"incompatible ASan runtimes.\n");<br>
@@ -155,7 +156,7 @@ void AsanCheckIncompatibleRT() {<br>
}<br>
}<br>
}<br>
-#endif // SANITIZER_ANDROID<br>
+#endif // SANITIZER_ANDROID<br>
<br>
#if !SANITIZER_ANDROID<br>
void ReadContextStack(void *context, uptr *stack, uptr *ssize) {<br>
@@ -173,6 +174,6 @@ void *AsanDlSymNext(const char *sym) {<br>
return dlsym(RTLD_NEXT, sym);<br>
}<br>
<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
-#endif // SANITIZER_FREEBSD || SANITIZER_LINUX<br>
+#endif // SANITIZER_FREEBSD || SANITIZER_LINUX<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_report.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_report.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_report.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_report.cc (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_report.cc Wed Sep 30 19:22:21 2015<br>
@@ -11,6 +11,7 @@<br>
//<br>
// This file contains error reporting code.<br>
//===----------------------------------------------------------------------===//<br>
+<br>
#include "asan_flags.h"<br>
#include "asan_internal.h"<br>
#include "asan_mapping.h"<br>
@@ -27,7 +28,7 @@ namespace __asan {<br>
<br>
// -------------------- User-specified callbacks ----------------- {{{1<br>
static void (*error_report_callback)(const char*);<br>
-static char *error_message_buffer = 0;<br>
+static char *error_message_buffer = nullptr;<br>
static uptr error_message_buffer_pos = 0;<br>
static uptr error_message_buffer_size = 0;<br>
<br>
@@ -373,7 +374,7 @@ static void PrintAccessAndVarIntersectio<br>
uptr next_var_beg) {<br>
uptr var_end = var.beg + var.size;<br>
uptr addr_end = addr + access_size;<br>
- const char *pos_descr = 0;<br>
+ const char *pos_descr = nullptr;<br>
// If the variable [var.beg, var_end) is the nearest variable to the<br>
// current memory access, indicate it in the log.<br>
if (addr >= var.beg) {<br>
@@ -544,7 +545,7 @@ void DescribeHeapAddress(uptr addr, uptr<br>
StackTrace alloc_stack = chunk.GetAllocStack();<br>
char tname[128];<br>
Decorator d;<br>
- AsanThreadContext *free_thread = 0;<br>
+ AsanThreadContext *free_thread = nullptr;<br>
if (chunk.FreeTid() != kInvalidTid) {<br>
free_thread = GetThreadContextByTidLocked(chunk.FreeTid());<br>
Printf("%sfreed by thread T%d%s here:%s\n", d.Allocation(),<br>
@@ -958,7 +959,7 @@ void ReportMacCfReallocUnknown(uptr addr<br>
DescribeHeapAddress(addr, 1);<br>
}<br>
<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
// --------------------------- Interface --------------------- {{{1<br>
using namespace __asan; // NOLINT<br>
@@ -1117,7 +1118,7 @@ SANITIZER_INTERFACE_ATTRIBUTE<br>
void __sanitizer_ptr_cmp(void *a, void *b) {<br>
CheckForInvalidPointerPair(a, b);<br>
}<br>
-} // extern "C"<br>
+} // extern "C"<br>
<br>
#if !SANITIZER_SUPPORTS_WEAK_HOOKS<br>
// Provide default implementation of __asan_on_error that does nothing<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_rtl.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_rtl.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_rtl.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_rtl.cc (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_rtl.cc Wed Sep 30 19:22:21 2015<br>
@@ -11,6 +11,7 @@<br>
//<br>
// Main file of the ASan run-time library.<br>
//===----------------------------------------------------------------------===//<br>
+<br>
#include "asan_activation.h"<br>
#include "asan_allocator.h"<br>
#include "asan_interceptors.h"<br>
@@ -254,15 +255,15 @@ static NOINLINE void force_interface_sym<br>
case 22: __asan_report_exp_store8(0, 0); break;<br>
case 23: __asan_report_exp_store16(0, 0); break;<br>
case 24: __asan_report_exp_store_n(0, 0, 0); break;<br>
- case 25: __asan_register_globals(0, 0); break;<br>
- case 26: __asan_unregister_globals(0, 0); break;<br>
- case 27: __asan_set_death_callback(0); break;<br>
- case 28: __asan_set_error_report_callback(0); break;<br>
+ case 25: __asan_register_globals(nullptr, 0); break;<br>
+ case 26: __asan_unregister_globals(nullptr, 0); break;<br>
+ case 27: __asan_set_death_callback(nullptr); break;<br>
+ case 28: __asan_set_error_report_callback(nullptr); break;<br>
case 29: __asan_handle_no_return(); break;<br>
- case 30: __asan_address_is_poisoned(0); break;<br>
- case 31: __asan_poison_memory_region(0, 0); break;<br>
- case 32: __asan_unpoison_memory_region(0, 0); break;<br>
- case 34: __asan_before_dynamic_init(0); break;<br>
+ case 30: __asan_address_is_poisoned(nullptr); break;<br>
+ case 31: __asan_poison_memory_region(nullptr, 0); break;<br>
+ case 32: __asan_unpoison_memory_region(nullptr, 0); break;<br>
+ case 34: __asan_before_dynamic_init(nullptr); break;<br>
case 35: __asan_after_dynamic_init(); break;<br>
case 36: __asan_poison_stack_memory(0, 0); break;<br>
case 37: __asan_unpoison_stack_memory(0, 0); break;<br>
@@ -541,7 +542,7 @@ public: // NOLINT<br>
static AsanInitializer asan_initializer;<br>
#endif // ASAN_DYNAMIC<br>
<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
// ---------------------- Interface ---------------- {{{1<br>
using namespace __asan; // NOLINT<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_stack.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_stack.h?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_stack.h?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_stack.h (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_stack.h Wed Sep 30 19:22:21 2015<br>
@@ -11,6 +11,7 @@<br>
//<br>
// ASan-private header for asan_stack.cc.<br>
//===----------------------------------------------------------------------===//<br>
+<br>
#ifndef ASAN_STACK_H<br>
#define ASAN_STACK_H<br>
<br>
@@ -48,15 +49,15 @@ void GetStackTraceWithPcBpAndContext(Buf<br>
uptr stack_bottom = t->stack_bottom();<br>
ScopedUnwinding unwind_scope(t);<br>
stack->Unwind(max_depth, pc, bp, context, stack_top, stack_bottom, fast);<br>
- } else if (t == 0 && !fast) {<br>
+ } else if (!t && !fast) {<br>
/* If GetCurrentThread() has failed, try to do slow unwind anyways. */<br>
stack->Unwind(max_depth, pc, bp, context, 0, 0, false);<br>
}<br>
}<br>
-#endif // SANITIZER_WINDOWS<br>
+#endif // SANITIZER_WINDOWS<br>
}<br>
<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
// NOTE: A Rule of thumb is to retrieve stack trace in the interceptors<br>
// as early as possible (in functions exposed to the user), as we generally<br>
@@ -115,4 +116,4 @@ void GetStackTraceWithPcBpAndContext(Buf<br>
stack.Print(); \<br>
}<br>
<br>
-#endif // ASAN_STACK_H<br>
+#endif // ASAN_STACK_H<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_thread.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_thread.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_thread.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_thread.cc (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_thread.cc Wed Sep 30 19:22:21 2015<br>
@@ -42,7 +42,7 @@ void AsanThreadContext::OnCreated(void *<br>
<br>
void AsanThreadContext::OnFinished() {<br>
// Drop the link to the AsanThread object.<br>
- thread = 0;<br>
+ thread = nullptr;<br>
}<br>
<br>
// MIPS requires aligned address<br>
@@ -125,7 +125,7 @@ void AsanThread::Destroy() {<br>
FakeStack *AsanThread::AsyncSignalSafeLazyInitFakeStack() {<br>
uptr stack_size = this->stack_size();<br>
if (stack_size == 0) // stack_size is not yet available, don't use FakeStack.<br>
- return 0;<br>
+ return nullptr;<br>
uptr old_val = 0;<br>
// fake_stack_ has 3 states:<br>
// 0 -- not initialized<br>
@@ -146,11 +146,11 @@ FakeStack *AsanThread::AsyncSignalSafeLa<br>
SetTLSFakeStack(fake_stack_);<br>
return fake_stack_;<br>
}<br>
- return 0;<br>
+ return nullptr;<br>
}<br>
<br>
void AsanThread::Init() {<br>
- fake_stack_ = 0; // Will be initialized lazily if needed.<br>
+ fake_stack_ = nullptr; // Will be initialized lazily if needed.<br>
CHECK_EQ(this->stack_size(), 0U);<br>
SetThreadStackAndTls();<br>
CHECK_GT(this->stack_size(), 0U);<br>
@@ -166,7 +166,7 @@ void AsanThread::Init() {<br>
thread_return_t AsanThread::ThreadStart(<br>
uptr os_id, atomic_uintptr_t *signal_thread_is_registered) {<br>
Init();<br>
- asanThreadRegistry().StartThread(tid(), os_id, 0);<br>
+ asanThreadRegistry().StartThread(tid(), os_id, nullptr);<br>
if (signal_thread_is_registered)<br>
atomic_store(signal_thread_is_registered, 1, memory_order_release);<br>
<br>
@@ -276,7 +276,7 @@ AsanThread *GetCurrentThread() {<br>
return tctx->thread;<br>
}<br>
}<br>
- return 0;<br>
+ return nullptr;<br>
}<br>
return context->thread;<br>
}<br>
@@ -301,7 +301,7 @@ AsanThread *FindThreadByStackAddress(upt<br>
AsanThreadContext *tctx = static_cast<AsanThreadContext *>(<br>
asanThreadRegistry().FindThreadContextLocked(ThreadStackContainsAddress,<br>
(void *)addr));<br>
- return tctx ? tctx->thread : 0;<br>
+ return tctx ? tctx->thread : nullptr;<br>
}<br>
<br>
void EnsureMainThreadIDIsCorrect() {<br>
@@ -314,10 +314,10 @@ void EnsureMainThreadIDIsCorrect() {<br>
__asan::AsanThread *GetAsanThreadByOsIDLocked(uptr os_id) {<br>
__asan::AsanThreadContext *context = static_cast<__asan::AsanThreadContext *>(<br>
__asan::asanThreadRegistry().FindThreadContextByOsIDLocked(os_id));<br>
- if (!context) return 0;<br>
+ if (!context) return nullptr;<br>
return context->thread;<br>
}<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
// --- Implementation of LSan-specific functions --- {{{1<br>
namespace __lsan {<br>
@@ -354,4 +354,4 @@ void UnlockThreadRegistry() {<br>
void EnsureMainThreadIDIsCorrect() {<br>
__asan::EnsureMainThreadIDIsCorrect();<br>
}<br>
-} // namespace __lsan<br>
+} // namespace __lsan<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_thread.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_thread.h?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_thread.h?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_thread.h (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_thread.h Wed Sep 30 19:22:21 2015<br>
@@ -11,6 +11,7 @@<br>
//<br>
// ASan-private header for asan_thread.cc.<br>
//===----------------------------------------------------------------------===//<br>
+<br>
#ifndef ASAN_THREAD_H<br>
#define ASAN_THREAD_H<br>
<br>
@@ -36,7 +37,7 @@ class AsanThreadContext : public ThreadC<br>
explicit AsanThreadContext(int tid)<br>
: ThreadContextBase(tid), announced(false),<br>
destructor_iterations(GetPthreadDestructorIterations()), stack_id(0),<br>
- thread(0) {}<br>
+ thread(nullptr) {}<br>
bool announced;<br>
u8 destructor_iterations;<br>
u32 stack_id;<br>
@@ -84,8 +85,8 @@ class AsanThread {<br>
void DeleteFakeStack(int tid) {<br>
if (!fake_stack_) return;<br>
FakeStack *t = fake_stack_;<br>
- fake_stack_ = 0;<br>
- SetTLSFakeStack(0);<br>
+ fake_stack_ = nullptr;<br>
+ SetTLSFakeStack(nullptr);<br>
t->Destroy(tid);<br>
}<br>
<br>
@@ -95,7 +96,7 @@ class AsanThread {<br>
<br>
FakeStack *fake_stack() {<br>
if (!__asan_option_detect_stack_use_after_return)<br>
- return 0;<br>
+ return nullptr;<br>
if (!has_fake_stack())<br>
return AsyncSignalSafeLazyInitFakeStack();<br>
return fake_stack_;<br>
@@ -179,6 +180,6 @@ AsanThread *FindThreadByStackAddress(upt<br>
<br>
// Used to handle fork().<br>
void EnsureMainThreadIDIsCorrect();<br>
-} // namespace __asan<br>
+} // namespace __asan<br>
<br>
-#endif // ASAN_THREAD_H<br>
+#endif // ASAN_THREAD_H<br>
<br>
Modified: compiler-rt/trunk/lib/dfsan/dfsan_custom.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/dfsan/dfsan_custom.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/dfsan/dfsan_custom.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/dfsan/dfsan_custom.cc (original)<br>
+++ compiler-rt/trunk/lib/dfsan/dfsan_custom.cc Wed Sep 30 19:22:21 2015<br>
@@ -85,7 +85,7 @@ SANITIZER_INTERFACE_ATTRIBUTE char *__df<br>
*ret_label = dfsan_union(dfsan_read_label(s, i + 1),<br>
dfsan_union(s_label, c_label));<br>
}<br>
- return s[i] == 0 ? 0 : const_cast<char *>(s+i);<br>
+ return s[i] == 0 ? nullptr : const_cast<char *>(s+i);<br>
}<br>
}<br>
}<br>
@@ -848,8 +848,8 @@ typedef void (*write_trampoline_t)(<br>
// Calls to dfsan_set_write_callback() set the values in this struct.<br>
// Calls to the custom version of write() read (and invoke) them.<br>
static struct {<br>
- write_trampoline_t write_callback_trampoline = NULL;<br>
- void *write_callback = NULL;<br>
+ write_trampoline_t write_callback_trampoline = nullptr;<br>
+ void *write_callback = nullptr;<br>
} write_callback_info;<br>
<br>
SANITIZER_INTERFACE_ATTRIBUTE void<br>
@@ -866,7 +866,7 @@ SANITIZER_INTERFACE_ATTRIBUTE int<br>
__dfsw_write(int fd, const void *buf, size_t count,<br>
dfsan_label fd_label, dfsan_label buf_label,<br>
dfsan_label count_label, dfsan_label *ret_label) {<br>
- if (write_callback_info.write_callback != NULL) {<br>
+ if (write_callback_info.write_callback) {<br>
write_callback_info.write_callback_trampoline(<br>
write_callback_info.write_callback,<br>
fd, buf, count,<br>
@@ -876,7 +876,7 @@ __dfsw_write(int fd, const void *buf, si<br>
*ret_label = 0;<br>
return write(fd, buf, count);<br>
}<br>
-}<br>
+} // namespace __dfsan<br>
<br>
// Type used to extract a dfsan_label with va_arg()<br>
typedef int dfsan_label_va;<br>
@@ -1132,4 +1132,4 @@ int __dfsw_snprintf(char *str, size_t si<br>
va_end(ap);<br>
return ret;<br>
}<br>
-}<br>
+} // extern "C"<br>
<br>
Modified: compiler-rt/trunk/lib/lsan/lsan_allocator.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/lsan/lsan_allocator.cc (original)<br>
+++ compiler-rt/trunk/lib/lsan/lsan_allocator.cc Wed Sep 30 19:22:21 2015<br>
@@ -91,7 +91,7 @@ void *Allocate(const StackTrace &stack,<br>
size = 1;<br>
if (size > kMaxAllowedMallocSize) {<br>
Report("WARNING: LeakSanitizer failed to allocate %zu bytes\n", size);<br>
- return 0;<br>
+ return nullptr;<br>
}<br>
void *p = allocator.Allocate(&cache, size, alignment, false);<br>
// Do not rely on the allocator to clear the memory (it's slow).<br>
@@ -114,7 +114,7 @@ void *Reallocate(const StackTrace &stack<br>
if (new_size > kMaxAllowedMallocSize) {<br>
Report("WARNING: LeakSanitizer failed to allocate %zu bytes\n", new_size);<br>
allocator.Deallocate(&cache, p);<br>
- return 0;<br>
+ return nullptr;<br>
}<br>
p = allocator.Reallocate(&cache, p, new_size, alignment);<br>
RegisterAllocation(stack, p, new_size);<br>
@@ -212,7 +212,7 @@ IgnoreObjectResult IgnoreObjectLocked(co<br>
return kIgnoreObjectInvalid;<br>
}<br>
}<br>
-} // namespace __lsan<br>
+} // namespace __lsan<br>
<br>
using namespace __lsan;<br>
<br>
@@ -241,10 +241,10 @@ SANITIZER_INTERFACE_ATTRIBUTE<br>
uptr __sanitizer_get_estimated_allocated_size(uptr size) { return size; }<br>
<br>
SANITIZER_INTERFACE_ATTRIBUTE<br>
-int __sanitizer_get_ownership(const void *p) { return Metadata(p) != 0; }<br>
+int __sanitizer_get_ownership(const void *p) { return Metadata(p) != nullptr; }<br>
<br>
SANITIZER_INTERFACE_ATTRIBUTE<br>
uptr __sanitizer_get_allocated_size(const void *p) {<br>
return GetMallocUsableSize(p);<br>
}<br>
-} // extern "C"<br>
+} // extern "C"<br>
<br>
Modified: compiler-rt/trunk/lib/lsan/lsan_common.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/lsan/lsan_common.cc (original)<br>
+++ compiler-rt/trunk/lib/lsan/lsan_common.cc Wed Sep 30 19:22:21 2015<br>
@@ -243,8 +243,8 @@ static void ProcessRootRegion(Frontier *<br>
MemoryMappingLayout proc_maps(/*cache_enabled*/true);<br>
uptr begin, end, prot;<br>
while (proc_maps.Next(&begin, &end,<br>
- /*offset*/ 0, /*filename*/ 0, /*filename_size*/ 0,<br>
- &prot)) {<br>
+ /*offset*/ nullptr, /*filename*/ nullptr,<br>
+ /*filename_size*/ 0, &prot)) {<br>
uptr intersection_begin = Max(root_begin, begin);<br>
uptr intersection_end = Min(end, root_end);<br>
if (intersection_begin >= intersection_end) continue;<br>
@@ -484,7 +484,7 @@ static Suppression *GetSuppressionForSta<br>
StackTrace::GetPreviousInstructionPc(stack.trace[i]));<br>
if (s) return s;<br>
}<br>
- return 0;<br>
+ return nullptr;<br>
}<br>
<br>
///// LeakReport implementation. /////<br>
@@ -612,8 +612,8 @@ uptr LeakReport::UnsuppressedLeakCount()<br>
return result;<br>
}<br>
<br>
-} // namespace __lsan<br>
-#endif // CAN_SANITIZE_LEAKS<br>
+} // namespace __lsan<br>
+#endif // CAN_SANITIZE_LEAKS<br>
<br>
using namespace __lsan; // NOLINT<br>
<br>
@@ -634,7 +634,7 @@ void __lsan_ignore_object(const void *p)<br>
"heap object at %p is already being ignored\n", p);<br>
if (res == kIgnoreObjectSuccess)<br>
VReport(1, "__lsan_ignore_object(): ignoring heap object at %p\n", p);<br>
-#endif // CAN_SANITIZE_LEAKS<br>
+#endif // CAN_SANITIZE_LEAKS<br>
}<br>
<br>
SANITIZER_INTERFACE_ATTRIBUTE<br>
@@ -645,7 +645,7 @@ void __lsan_register_root_region(const v<br>
RootRegion region = {begin, size};<br>
root_regions->push_back(region);<br>
VReport(1, "Registered root region at %p of size %llu\n", begin, size);<br>
-#endif // CAN_SANITIZE_LEAKS<br>
+#endif // CAN_SANITIZE_LEAKS<br>
}<br>
<br>
SANITIZER_INTERFACE_ATTRIBUTE<br>
@@ -672,7 +672,7 @@ void __lsan_unregister_root_region(const<br>
begin, size);<br>
Die();<br>
}<br>
-#endif // CAN_SANITIZE_LEAKS<br>
+#endif // CAN_SANITIZE_LEAKS<br>
}<br>
<br>
SANITIZER_INTERFACE_ATTRIBUTE<br>
@@ -698,7 +698,7 @@ void __lsan_do_leak_check() {<br>
#if CAN_SANITIZE_LEAKS<br>
if (common_flags()->detect_leaks)<br>
__lsan::DoLeakCheck();<br>
-#endif // CAN_SANITIZE_LEAKS<br>
+#endif // CAN_SANITIZE_LEAKS<br>
}<br>
<br>
SANITIZER_INTERFACE_ATTRIBUTE<br>
@@ -706,7 +706,7 @@ int __lsan_do_recoverable_leak_check() {<br>
#if CAN_SANITIZE_LEAKS<br>
if (common_flags()->detect_leaks)<br>
return __lsan::DoRecoverableLeakCheck();<br>
-#endif // CAN_SANITIZE_LEAKS<br>
+#endif // CAN_SANITIZE_LEAKS<br>
return 0;<br>
}<br>
<br>
@@ -716,4 +716,4 @@ int __lsan_is_turned_off() {<br>
return 0;<br>
}<br>
#endif<br>
-} // extern "C"<br>
+} // extern "C"<br>
<br>
Modified: compiler-rt/trunk/lib/lsan/lsan_common_linux.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common_linux.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common_linux.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/lsan/lsan_common_linux.cc (original)<br>
+++ compiler-rt/trunk/lib/lsan/lsan_common_linux.cc Wed Sep 30 19:22:21 2015<br>
@@ -29,7 +29,7 @@ static const char kLinkerName[] = "ld";<br>
// We request 2 modules matching "ld", so we can print a warning if there's more<br>
// than one match. But only the first one is actually used.<br>
static char linker_placeholder[2 * sizeof(LoadedModule)] ALIGNED(64);<br>
-static LoadedModule *linker = 0;<br>
+static LoadedModule *linker = nullptr;<br>
<br>
static bool IsLinker(const char* full_name) {<br>
return LibraryNameIs(full_name, kLinkerName);<br>
@@ -49,7 +49,7 @@ void InitializePlatformSpecificModules()<br>
else if (num_matches > 1)<br>
VReport(1, "LeakSanitizer: Multiple modules match \"%s\". "<br>
"TLS will not be handled correctly.\n", kLinkerName);<br>
- linker = 0;<br>
+ linker = nullptr;<br>
}<br>
<br>
static int ProcessGlobalRegionsCallback(struct dl_phdr_info *info, size_t size,<br>
@@ -174,5 +174,6 @@ void DoStopTheWorld(StopTheWorldCallback<br>
dl_iterate_phdr(DoStopTheWorldCallback, ¶m);<br>
}<br>
<br>
-} // namespace __lsan<br>
-#endif // CAN_SANITIZE_LEAKS && SANITIZER_LINUX<br>
+} // namespace __lsan<br>
+<br>
+#endif // CAN_SANITIZE_LEAKS && SANITIZER_LINUX<br>
<br>
Modified: compiler-rt/trunk/lib/lsan/lsan_interceptors.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_interceptors.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/lsan/lsan_interceptors.cc (original)<br>
+++ compiler-rt/trunk/lib/lsan/lsan_interceptors.cc Wed Sep 30 19:22:21 2015<br>
@@ -71,7 +71,7 @@ INTERCEPTOR(void*, calloc, uptr nmemb, u<br>
CHECK(allocated < kCallocPoolSize);<br>
return mem;<br>
}<br>
- if (CallocShouldReturnNullDueToOverflow(size, nmemb)) return 0;<br>
+ if (CallocShouldReturnNullDueToOverflow(size, nmemb)) return nullptr;<br>
ENSURE_LSAN_INITED;<br>
GET_STACK_TRACE_MALLOC;<br>
size *= nmemb;<br>
@@ -226,7 +226,7 @@ INTERCEPTOR(int, pthread_create, void *t<br>
ENSURE_LSAN_INITED;<br>
EnsureMainThreadIDIsCorrect();<br>
__sanitizer_pthread_attr_t myattr;<br>
- if (attr == 0) {<br>
+ if (!attr) {<br>
pthread_attr_init(&myattr);<br>
attr = &myattr;<br>
}<br>
@@ -284,4 +284,4 @@ void InitializeInterceptors() {<br>
}<br>
}<br>
<br>
-} // namespace __lsan<br>
+} // namespace __lsan<br>
<br>
Modified: compiler-rt/trunk/lib/lsan/lsan_thread.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_thread.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_thread.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/lsan/lsan_thread.cc (original)<br>
+++ compiler-rt/trunk/lib/lsan/lsan_thread.cc Wed Sep 30 19:22:21 2015<br>
@@ -79,7 +79,7 @@ void ThreadContext::OnFinished() {<br>
<br>
u32 ThreadCreate(u32 parent_tid, uptr user_id, bool detached) {<br>
return thread_registry->CreateThread(user_id, detached, parent_tid,<br>
- /* arg */ 0);<br>
+ /* arg */ nullptr);<br>
}<br>
<br>
void ThreadStart(u32 tid, uptr os_id) {<br>
@@ -99,9 +99,9 @@ void ThreadFinish() {<br>
}<br>
<br>
ThreadContext *CurrentThreadContext() {<br>
- if (!thread_registry) return 0;<br>
+ if (!thread_registry) return nullptr;<br>
if (GetCurrentThread() == kInvalidTid)<br>
- return 0;<br>
+ return nullptr;<br>
// No lock needed when getting current thread.<br>
return (ThreadContext *)thread_registry->GetThreadLocked(GetCurrentThread());<br>
}<br>
@@ -120,7 +120,7 @@ u32 ThreadTid(uptr uid) {<br>
<br>
void ThreadJoin(u32 tid) {<br>
CHECK_NE(tid, kInvalidTid);<br>
- thread_registry->JoinThread(tid, /* arg */0);<br>
+ thread_registry->JoinThread(tid, /* arg */nullptr);<br>
}<br>
<br>
void EnsureMainThreadIDIsCorrect() {<br>
@@ -157,4 +157,4 @@ void UnlockThreadRegistry() {<br>
thread_registry->Unlock();<br>
}<br>
<br>
-} // namespace __lsan<br>
+} // namespace __lsan<br>
<br>
Modified: compiler-rt/trunk/lib/msan/msan.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/msan/msan.cc (original)<br>
+++ compiler-rt/trunk/lib/msan/msan.cc Wed Sep 30 19:22:21 2015<br>
@@ -223,9 +223,9 @@ void GetStackTrace(BufferedStackTrace *s<br>
if (!t || !StackTrace::WillUseFastUnwind(request_fast_unwind)) {<br>
// Block reports from our interceptors during _Unwind_Backtrace.<br>
SymbolizerScope sym_scope;<br>
- return stack->Unwind(max_s, pc, bp, 0, 0, 0, request_fast_unwind);<br>
+ return stack->Unwind(max_s, pc, bp, nullptr, 0, 0, request_fast_unwind);<br>
}<br>
- stack->Unwind(max_s, pc, bp, 0, t->stack_top(), t->stack_bottom(),<br>
+ stack->Unwind(max_s, pc, bp, nullptr, t->stack_top(), t->stack_bottom(),<br>
request_fast_unwind);<br>
}<br>
<br>
@@ -305,7 +305,7 @@ u32 ChainOrigin(u32 id, StackTrace *stac<br>
return chained.raw_id();<br>
}<br>
<br>
-} // namespace __msan<br>
+} // namespace __msan<br>
<br>
// Interface.<br>
<br>
@@ -417,7 +417,7 @@ void __msan_init() {<br>
<br>
MsanAllocatorInit();<br>
<br>
- MsanThread *main_thread = MsanThread::Create(0, 0);<br>
+ MsanThread *main_thread = MsanThread::Create(nullptr, nullptr);<br>
SetCurrentThread(main_thread);<br>
main_thread->ThreadStart();<br>
<br>
@@ -641,4 +641,4 @@ void __sanitizer_print_stack_trace() {<br>
GET_FATAL_STACK_TRACE_PC_BP(StackTrace::GetCurrentPc(), GET_CURRENT_FRAME());<br>
stack.Print();<br>
}<br>
-} // extern "C"<br>
+} // extern "C"<br>
<br>
Modified: compiler-rt/trunk/lib/msan/msan_allocator.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_allocator.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_allocator.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/msan/msan_allocator.cc (original)<br>
+++ compiler-rt/trunk/lib/msan/msan_allocator.cc Wed Sep 30 19:22:21 2015<br>
@@ -165,7 +165,7 @@ void MsanDeallocate(StackTrace *stack, v<br>
void *MsanCalloc(StackTrace *stack, uptr nmemb, uptr size) {<br>
if (CallocShouldReturnNullDueToOverflow(size, nmemb))<br>
return allocator.ReturnNullOrDie();<br>
- return MsanReallocate(stack, 0, nmemb * size, sizeof(u64), true);<br>
+ return MsanReallocate(stack, nullptr, nmemb * size, sizeof(u64), true);<br>
}<br>
<br>
void *MsanReallocate(StackTrace *stack, void *old_p, uptr new_size,<br>
@@ -174,7 +174,7 @@ void *MsanReallocate(StackTrace *stack,<br>
return MsanAllocate(stack, new_size, alignment, zeroise);<br>
if (!new_size) {<br>
MsanDeallocate(stack, old_p);<br>
- return 0;<br>
+ return nullptr;<br>
}<br>
Metadata *meta = reinterpret_cast<Metadata*>(allocator.GetMetaData(old_p));<br>
uptr old_size = meta->requested_size;<br>
@@ -204,14 +204,14 @@ void *MsanReallocate(StackTrace *stack,<br>
}<br>
<br>
static uptr AllocationSize(const void *p) {<br>
- if (p == 0) return 0;<br>
+ if (!p) return 0;<br>
const void *beg = allocator.GetBlockBegin(p);<br>
if (beg != p) return 0;<br>
Metadata *b = (Metadata *)allocator.GetMetaData(p);<br>
return b->requested_size;<br>
}<br>
<br>
-} // namespace __msan<br>
+} // namespace __msan<br>
<br>
using namespace __msan;<br>
<br>
<br>
Modified: compiler-rt/trunk/lib/msan/msan_chained_origin_depot.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_chained_origin_depot.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_chained_origin_depot.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/msan/msan_chained_origin_depot.cc (original)<br>
+++ compiler-rt/trunk/lib/msan/msan_chained_origin_depot.cc Wed Sep 30 19:22:21 2015<br>
@@ -28,12 +28,15 @@ struct ChainedOriginDepotNode {<br>
u32 prev_id;<br>
<br>
typedef ChainedOriginDepotDesc args_type;<br>
+<br>
bool eq(u32 hash, const args_type &args) const {<br>
return here_id == args.here_id && prev_id == args.prev_id;<br>
}<br>
+<br>
static uptr storage_size(const args_type &args) {<br>
return sizeof(ChainedOriginDepotNode);<br>
}<br>
+<br>
/* This is murmur2 hash for the 64->32 bit case.<br>
It does not behave all that well because the keys have a very biased<br>
distribution (I've seen 7-element buckets with the table only 14% full).<br>
@@ -76,19 +79,22 @@ struct ChainedOriginDepotNode {<br>
here_id = args.here_id;<br>
prev_id = args.prev_id;<br>
}<br>
+<br>
args_type load() const {<br>
args_type ret = {here_id, prev_id};<br>
return ret;<br>
}<br>
+<br>
struct Handle {<br>
ChainedOriginDepotNode *node_;<br>
- Handle() : node_(0) {}<br>
+ Handle() : node_(nullptr) {}<br>
explicit Handle(ChainedOriginDepotNode *node) : node_(node) {}<br>
bool valid() { return node_; }<br>
u32 id() { return node_->id; }<br>
int here_id() { return node_->here_id; }<br>
int prev_id() { return node_->prev_id; }<br>
};<br>
+<br>
Handle get_handle() { return Handle(this); }<br>
<br>
typedef Handle handle_type;<br>
@@ -123,4 +129,4 @@ void ChainedOriginDepotUnlockAll() {<br>
chainedOriginDepot.UnlockAll();<br>
}<br>
<br>
-} // namespace __msan<br>
+} // namespace __msan<br>
<br>
Modified: compiler-rt/trunk/lib/msan/msan_interceptors.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_interceptors.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_interceptors.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/msan/msan_interceptors.cc (original)<br>
+++ compiler-rt/trunk/lib/msan/msan_interceptors.cc Wed Sep 30 19:22:21 2015<br>
@@ -166,7 +166,7 @@ INTERCEPTOR(int, posix_memalign, void **<br>
GET_MALLOC_STACK_TRACE;<br>
CHECK_EQ(alignment & (alignment - 1), 0);<br>
CHECK_NE(memptr, 0);<br>
- *memptr = MsanReallocate(&stack, 0, size, alignment, false);<br>
+ *memptr = MsanReallocate(&stack, nullptr, size, alignment, false);<br>
CHECK_NE(*memptr, 0);<br>
__msan_unpoison(memptr, sizeof(*memptr));<br>
return 0;<br>
@@ -176,7 +176,7 @@ INTERCEPTOR(int, posix_memalign, void **<br>
INTERCEPTOR(void *, memalign, SIZE_T boundary, SIZE_T size) {<br>
GET_MALLOC_STACK_TRACE;<br>
CHECK_EQ(boundary & (boundary - 1), 0);<br>
- void *ptr = MsanReallocate(&stack, 0, size, boundary, false);<br>
+ void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false);<br>
return ptr;<br>
}<br>
#define MSAN_MAYBE_INTERCEPT_MEMALIGN INTERCEPT_FUNCTION(memalign)<br>
@@ -187,21 +187,21 @@ INTERCEPTOR(void *, memalign, SIZE_T bou<br>
INTERCEPTOR(void *, aligned_alloc, SIZE_T boundary, SIZE_T size) {<br>
GET_MALLOC_STACK_TRACE;<br>
CHECK_EQ(boundary & (boundary - 1), 0);<br>
- void *ptr = MsanReallocate(&stack, 0, size, boundary, false);<br>
+ void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false);<br>
return ptr;<br>
}<br>
<br>
INTERCEPTOR(void *, __libc_memalign, SIZE_T boundary, SIZE_T size) {<br>
GET_MALLOC_STACK_TRACE;<br>
CHECK_EQ(boundary & (boundary - 1), 0);<br>
- void *ptr = MsanReallocate(&stack, 0, size, boundary, false);<br>
+ void *ptr = MsanReallocate(&stack, nullptr, size, boundary, false);<br>
DTLS_on_libc_memalign(ptr, size * boundary);<br>
return ptr;<br>
}<br>
<br>
INTERCEPTOR(void *, valloc, SIZE_T size) {<br>
GET_MALLOC_STACK_TRACE;<br>
- void *ptr = MsanReallocate(&stack, 0, size, GetPageSizeCached(), false);<br>
+ void *ptr = MsanReallocate(&stack, nullptr, size, GetPageSizeCached(), false);<br>
return ptr;<br>
}<br>
<br>
@@ -214,7 +214,7 @@ INTERCEPTOR(void *, pvalloc, SIZE_T size<br>
// pvalloc(0) should allocate one page.<br>
size = PageSize;<br>
}<br>
- void *ptr = MsanReallocate(&stack, 0, size, PageSize, false);<br>
+ void *ptr = MsanReallocate(&stack, nullptr, size, PageSize, false);<br>
return ptr;<br>
}<br>
#define MSAN_MAYBE_INTERCEPT_PVALLOC INTERCEPT_FUNCTION(pvalloc)<br>
@@ -224,14 +224,14 @@ INTERCEPTOR(void *, pvalloc, SIZE_T size<br>
<br>
INTERCEPTOR(void, free, void *ptr) {<br>
GET_MALLOC_STACK_TRACE;<br>
- if (ptr == 0) return;<br>
+ if (!ptr) return;<br>
MsanDeallocate(&stack, ptr);<br>
}<br>
<br>
#if !SANITIZER_FREEBSD<br>
INTERCEPTOR(void, cfree, void *ptr) {<br>
GET_MALLOC_STACK_TRACE;<br>
- if (ptr == 0) return;<br>
+ if (!ptr) return;<br>
MsanDeallocate(&stack, ptr);<br>
}<br>
#define MSAN_MAYBE_INTERCEPT_CFREE INTERCEPT_FUNCTION(cfree)<br>
@@ -1000,7 +1000,7 @@ INTERCEPTOR(void *, realloc, void *ptr,<br>
<br>
INTERCEPTOR(void *, malloc, SIZE_T size) {<br>
GET_MALLOC_STACK_TRACE;<br>
- return MsanReallocate(&stack, 0, size, sizeof(u64), false);<br>
+ return MsanReallocate(&stack, nullptr, size, sizeof(u64), false);<br>
}<br>
<br>
void __msan_allocated_memory(const void *data, uptr size) {<br>
@@ -1029,7 +1029,7 @@ INTERCEPTOR(void *, mmap, void *addr, SI<br>
*__errno_location() = errno_EINVAL;<br>
return (void *)-1;<br>
} else {<br>
- addr = 0;<br>
+ addr = nullptr;<br>
}<br>
}<br>
void *res = REAL(mmap)(addr, length, prot, flags, fd, offset);<br>
@@ -1047,7 +1047,7 @@ INTERCEPTOR(void *, mmap64, void *addr,<br>
*__errno_location() = errno_EINVAL;<br>
return (void *)-1;<br>
} else {<br>
- addr = 0;<br>
+ addr = nullptr;<br>
}<br>
}<br>
void *res = REAL(mmap64)(addr, length, prot, flags, fd, offset);<br>
@@ -1083,7 +1083,7 @@ INTERCEPTOR(int, dladdr, void *addr, dli<br>
INTERCEPTOR(char *, dlerror, int fake) {<br>
ENSURE_MSAN_INITED();<br>
char *res = REAL(dlerror)(fake);<br>
- if (res != 0) __msan_unpoison(res, REAL(strlen)(res) + 1);<br>
+ if (res) __msan_unpoison(res, REAL(strlen)(res) + 1);<br>
return res;<br>
}<br>
<br>
@@ -1180,7 +1180,7 @@ INTERCEPTOR(int, sigaction, int signo, c<br>
CHECK_LT(signo, kMaxSignals);<br>
uptr old_cb = atomic_load(&sigactions[signo], memory_order_relaxed);<br>
__sanitizer_sigaction new_act;<br>
- __sanitizer_sigaction *pnew_act = act ? &new_act : 0;<br>
+ __sanitizer_sigaction *pnew_act = act ? &new_act : nullptr;<br>
if (act) {<br>
REAL(memcpy)(pnew_act, act, sizeof(__sanitizer_sigaction));<br>
uptr cb = (uptr)pnew_act->sigaction;<br>
@@ -1237,7 +1237,7 @@ INTERCEPTOR(int, pthread_create, void *t<br>
void * param) {<br>
ENSURE_MSAN_INITED(); // for GetTlsSize()<br>
__sanitizer_pthread_attr_t myattr;<br>
- if (attr == 0) {<br>
+ if (!attr) {<br>
pthread_attr_init(&myattr);<br>
attr = &myattr;<br>
}<br>
@@ -1376,7 +1376,7 @@ int OnExit() {<br>
return 0;<br>
}<br>
<br>
-} // namespace __msan<br>
+} // namespace __msan<br>
<br>
// A version of CHECK_UNPOISONED using a saved scope value. Used in common<br>
// interceptors.<br>
@@ -1634,4 +1634,4 @@ void InitializeInterceptors() {<br>
<br>
inited = 1;<br>
}<br>
-} // namespace __msan<br>
+} // namespace __msan<br>
<br>
Modified: compiler-rt/trunk/lib/msan/msan_linux.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_linux.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_linux.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/msan/msan_linux.cc (original)<br>
+++ compiler-rt/trunk/lib/msan/msan_linux.cc Wed Sep 30 19:22:21 2015<br>
@@ -56,7 +56,7 @@ static bool CheckMemoryRangeAvailability<br>
static bool ProtectMemoryRange(uptr beg, uptr size, const char *name) {<br>
if (size > 0) {<br>
void *addr = MmapNoAccess(beg, size, name);<br>
- if (beg == 0 && addr != 0) {<br>
+ if (beg == 0 && addr) {<br>
// Depending on the kernel configuration, we may not be able to protect<br>
// the page at address zero.<br>
uptr gap = 16 * GetPageSizeCached();<br>
@@ -204,6 +204,6 @@ void MsanTSDDtor(void *tsd) {<br>
MsanThread::TSDDtor(tsd);<br>
}<br>
<br>
-} // namespace __msan<br>
+} // namespace __msan<br>
<br>
-#endif // SANITIZER_FREEBSD || SANITIZER_LINUX<br>
+#endif // SANITIZER_FREEBSD || SANITIZER_LINUX<br>
<br>
Modified: compiler-rt/trunk/lib/msan/msan_thread.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_thread.h?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/msan_thread.h?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/msan/msan_thread.h (original)<br>
+++ compiler-rt/trunk/lib/msan/msan_thread.h Wed Sep 30 19:22:21 2015<br>
@@ -32,7 +32,7 @@ class MsanThread {<br>
uptr stack_bottom() { return stack_bottom_; }<br>
uptr tls_begin() { return tls_begin_; }<br>
uptr tls_end() { return tls_end_; }<br>
- bool IsMainThread() { return start_routine_ == 0; }<br>
+ bool IsMainThread() { return start_routine_ == nullptr; }<br>
<br>
bool AddrIsInStack(uptr addr) {<br>
return addr >= stack_bottom_ && addr < stack_top_;<br>
<br>
Modified: compiler-rt/trunk/lib/safestack/safestack.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/safestack/safestack.cc?rev=248966&r1=248965&r2=248966&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/safestack/safestack.cc?rev=248966&r1=248965&r2=248966&view=diff</a><br>
==============================================================================<br>
--- compiler-rt/trunk/lib/safestack/safestack.cc (original)<br>
+++ compiler-rt/trunk/lib/safestack/safestack.cc Wed Sep 30 19:22:21 2015<br>
@@ -171,7 +171,7 @@ INTERCEPTOR(int, pthread_create, pthread<br>
size_t size = 0;<br>
size_t guard = 0;<br>
<br>
- if (attr != NULL) {<br>
+ if (attr) {<br>
pthread_attr_getstacksize(attr, &size);<br>
pthread_attr_getguardsize(attr, &guard);<br>
} else {<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=llvm-commits@lists.llvm.org&cc=&bcc=&su=&body=','_blank');return false;">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>