You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Wes McKinney (JIRA)" <ji...@apache.org> on 2017/07/25 18:23:01 UTC

[jira] [Commented] (ARROW-1258) [C++] Suppress dlmalloc warnings on Clang

    [ https://issues.apache.org/jira/browse/ARROW-1258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16100506#comment-16100506 ] 

Wes McKinney commented on ARROW-1258:
-------------------------------------

PR: https://github.com/apache/arrow/pull/889

> [C++] Suppress dlmalloc warnings on Clang
> -----------------------------------------
>
>                 Key: ARROW-1258
>                 URL: https://issues.apache.org/jira/browse/ARROW-1258
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: Plasma (C++)
>            Reporter: Wes McKinney
>            Assignee: Wes McKinney
>             Fix For: 0.6.0
>
>
> {code}
> In file included from ../src/plasma/malloc.cc:45:
> ../src/plasma/thirdparty/dlmalloc.c:592:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> #if USE_LOCKS /* Spin locks for gcc >= 4.1, older gcc on x86, MSC >= 1310 */
>     ^
> ../src/plasma/thirdparty/dlmalloc.c:588:22: note: expanded from macro 'USE_LOCKS'
> #define USE_LOCKS  ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:592:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> ../src/plasma/thirdparty/dlmalloc.c:589:22: note: expanded from macro 'USE_LOCKS'
>                     (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0))
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:648:9: warning: '_GNU_SOURCE' macro redefined [-Wmacro-redefined]
> #define _GNU_SOURCE /* Turns on mremap() definition */
>         ^
> <built-in>:341:9: note: previous definition is here
> #define _GNU_SOURCE 1
>         ^
> In file included from ../src/plasma/malloc.cc:45:
> ../src/plasma/thirdparty/dlmalloc.c:1492:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> #if USE_LOCKS
>     ^
> ../src/plasma/thirdparty/dlmalloc.c:588:22: note: expanded from macro 'USE_LOCKS'
> #define USE_LOCKS  ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:1492:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> ../src/plasma/thirdparty/dlmalloc.c:589:22: note: expanded from macro 'USE_LOCKS'
>                     (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0))
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:1802:6: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> #if !USE_LOCKS
>      ^
> ../src/plasma/thirdparty/dlmalloc.c:588:22: note: expanded from macro 'USE_LOCKS'
> #define USE_LOCKS  ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:1802:6: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> ../src/plasma/thirdparty/dlmalloc.c:589:22: note: expanded from macro 'USE_LOCKS'
>                     (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0))
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:2594:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> #if USE_LOCKS
>     ^
> ../src/plasma/thirdparty/dlmalloc.c:588:22: note: expanded from macro 'USE_LOCKS'
> #define USE_LOCKS  ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:2594:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> ../src/plasma/thirdparty/dlmalloc.c:589:22: note: expanded from macro 'USE_LOCKS'
>                     (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0))
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:2644:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> #if USE_LOCKS
>     ^
> ../src/plasma/thirdparty/dlmalloc.c:588:22: note: expanded from macro 'USE_LOCKS'
> #define USE_LOCKS  ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:2644:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> ../src/plasma/thirdparty/dlmalloc.c:589:22: note: expanded from macro 'USE_LOCKS'
>                     (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0))
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:2740:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> #if USE_LOCKS
>     ^
> ../src/plasma/thirdparty/dlmalloc.c:588:22: note: expanded from macro 'USE_LOCKS'
> #define USE_LOCKS  ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:2740:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> ../src/plasma/thirdparty/dlmalloc.c:589:22: note: expanded from macro 'USE_LOCKS'
>                     (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0))
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:4563:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> #if USE_LOCKS
>     ^
> ../src/plasma/thirdparty/dlmalloc.c:588:22: note: expanded from macro 'USE_LOCKS'
> #define USE_LOCKS  ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \
>                      ^
> ../src/plasma/thirdparty/dlmalloc.c:4563:5: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
> ../src/plasma/thirdparty/dlmalloc.c:589:22: note: expanded from macro 'USE_LOCKS'
>                     (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0))
>                      ^
> 15 warnings generated.
> In file included from ../src/plasma/malloc.cc:45:
> ../src/plasma/thirdparty/dlmalloc.c:3968:853: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
>     if ((((qsize) >> (3U)) < (32U))) { bindex_t I = (bindex_t)((qsize) >> (3U)); mchunkptr B = ((sbinptr)((char*)&((m)->smallbins[(I)<<1]))); mchunkptr F = B; ((qsize >= (((sizeof(mchunk)) + (((size_t)(2 * sizeof(void *))) - ((size_t)1))) & ~(((size_t)(2 * sizeof(void *))) - ((size_t)1)))) ? static_cast<void> (0) : __assert_fail ("qsize >= (((sizeof(mchunk)) + (((size_t)(2 * sizeof(void *))) - ((size_t)1))) & ~(((size_t)(2 * sizeof(void *))) - ((size_t)1)))", "../src/plasma/thirdparty/dlmalloc.c", 3968, __PRETTY_FUNCTION__)); if (!((m)->smallmap & ((binmap_t)(1) << (I)))) ((m)->smallmap |= ((binmap_t)(1) << (I))); else if (__builtin_expect(((char*)(B->fd) >= (m)->least_addr), 1)) F = B->fd; else { abort(); } B->fd = q; F->bk = q; q->fd = F; q->bk = B;} else { tchunkptr TP = (tchunkptr)(q); { tbinptr* H; bindex_t I; { unsigned int X = qsize >> (8U); if (X == 0) I = 0; else if (X > 0xFFFF) I = (32U)-1; else { unsigned int K = (unsigned) sizeof(X)*8 - 1 - (unsigned) __builtin_clz(X); I = (bindex_t)((K << 1) + ((qsize >> (K + ((8U)-1)) & 1))); }}; H = (&((m)->treebins[I])); TP->index = I; TP->child[0] = TP->child[1] = 0; if (!((m)->treemap & ((binmap_t)(1) << (I)))) { ((m)->treemap |= ((binmap_t)(1) << (I))); *H = TP; TP->parent = (tchunkptr)H; TP->fd = TP->bk = TP; } else { tchunkptr T = *H; size_t K = qsize << ((I == (32U)-1)? 0 : (((sizeof(size_t) << 3)-((size_t)1)) - (((I) >> 1) + (8U) - 2))); for (;;) { if (((T)->head & ~(((((size_t)1))|(((size_t)2))|(((size_t)4))))) != qsize) { tchunkptr* C = &(T->child[(K >> ((sizeof(size_t) << 3)-((size_t)1))) & 1]); K <<= 1; if (*C != 0) T = *C; else if (__builtin_expect(((char*)(C) >= (m)->least_addr), 1)) { *C = TP; TP->parent = T; TP->fd = TP->bk = TP; break; } else { abort(); break; } } else { tchunkptr F = T->fd; if (__builtin_expect(((char*)(T) >= (m)->least_addr) && ((char*)(F) >= (m)->least_addr), 1)) { T->fd = F->bk = TP; TP->fd = F; TP->bk = T; TP->parent = 0; break; } else { abort(); break; } } } }}; };
>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ~   ~~~~~~^~~~~~~
> ../src/plasma/thirdparty/dlmalloc.c:4023:853: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
>     if ((((psize) >> (3U)) < (32U))) { bindex_t I = (bindex_t)((psize) >> (3U)); mchunkptr B = ((sbinptr)((char*)&((m)->smallbins[(I)<<1]))); mchunkptr F = B; ((psize >= (((sizeof(mchunk)) + (((size_t)(2 * sizeof(void *))) - ((size_t)1))) & ~(((size_t)(2 * sizeof(void *))) - ((size_t)1)))) ? static_cast<void> (0) : __assert_fail ("psize >= (((sizeof(mchunk)) + (((size_t)(2 * sizeof(void *))) - ((size_t)1))) & ~(((size_t)(2 * sizeof(void *))) - ((size_t)1)))", "../src/plasma/thirdparty/dlmalloc.c", 4023, __PRETTY_FUNCTION__)); if (!((m)->smallmap & ((binmap_t)(1) << (I)))) ((m)->smallmap |= ((binmap_t)(1) << (I))); else if (__builtin_expect(((char*)(B->fd) >= (m)->least_addr), 1)) F = B->fd; else { abort(); } B->fd = q; F->bk = q; q->fd = F; q->bk = B;} else { tchunkptr TP = (tchunkptr)(q); { tbinptr* H; bindex_t I; { unsigned int X = psize >> (8U); if (X == 0) I = 0; else if (X > 0xFFFF) I = (32U)-1; else { unsigned int K = (unsigned) sizeof(X)*8 - 1 - (unsigned) __builtin_clz(X); I = (bindex_t)((K << 1) + ((psize >> (K + ((8U)-1)) & 1))); }}; H = (&((m)->treebins[I])); TP->index = I; TP->child[0] = TP->child[1] = 0; if (!((m)->treemap & ((binmap_t)(1) << (I)))) { ((m)->treemap |= ((binmap_t)(1) << (I))); *H = TP; TP->parent = (tchunkptr)H; TP->fd = TP->bk = TP; } else { tchunkptr T = *H; size_t K = psize << ((I == (32U)-1)? 0 : (((sizeof(size_t) << 3)-((size_t)1)) - (((I) >> 1) + (8U) - 2))); for (;;) { if (((T)->head & ~(((((size_t)1))|(((size_t)2))|(((size_t)4))))) != psize) { tchunkptr* C = &(T->child[(K >> ((sizeof(size_t) << 3)-((size_t)1))) & 1]); K <<= 1; if (*C != 0) T = *C; else if (__builtin_expect(((char*)(C) >= (m)->least_addr), 1)) { *C = TP; TP->parent = T; TP->fd = TP->bk = TP; break; } else { abort(); break; } } else { tchunkptr F = T->fd; if (__builtin_expect(((char*)(T) >= (m)->least_addr) && ((char*)(F) >= (m)->least_addr), 1)) { T->fd = F->bk = TP; TP->fd = F; TP->bk = T; TP->parent = 0; break; } else { abort(); break; } } } }}; };
>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ~   ~~~~~~^~~~~~~
> ../src/plasma/thirdparty/dlmalloc.c:4181:16: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
>       if (((m) == &_gm_))
>            ~~~~^~~~~~~~
> ../src/plasma/thirdparty/dlmalloc.c:4181:16: note: remove extraneous parentheses around the comparison to silence this warning
>       if (((m) == &_gm_))
>           ~    ^       ~
> ../src/plasma/thirdparty/dlmalloc.c:4181:16: note: use '=' to turn this equality comparison into an assignment
>       if (((m) == &_gm_))
>                ^~
>                =
> ../src/plasma/thirdparty/dlmalloc.c:4275:62: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
>           { tbinptr* H; bindex_t I; { unsigned int X = psize >> (8U); if (X == 0) I = 0; else if (X > 0xFFFF) I = (32U)-1; else { unsigned int K = (unsigned) sizeof(X)*8 - 1 - (unsigned) __builtin_clz(X); I = (bindex_t)((K << 1) + ((psize >> (K + ((8U)-1)) & 1))); }}; H = (&((m)->treebins[I])); tp->index = I; tp->child[0] = tp->child[1] = 0; if (!((m)->treemap & ((binmap_t)(1) << (I)))) { ((m)->treemap |= ((binmap_t)(1) << (I))); *H = tp; tp->parent = (tchunkptr)H; tp->fd = tp->bk = tp; } else { tchunkptr T = *H; size_t K = psize << ((I == (32U)-1)? 0 : (((sizeof(size_t) << 3)-((size_t)1)) - (((I) >> 1) + (8U) - 2))); for (;;) { if (((T)->head & ~(((((size_t)1))|(((size_t)2))|(((size_t)4))))) != psize) { tchunkptr* C = &(T->child[(K >> ((sizeof(size_t) << 3)-((size_t)1))) & 1]); K <<= 1; if (*C != 0) T = *C; else if (__builtin_expect(((char*)(C) >= (m)->least_addr), 1)) { *C = tp; tp->parent = T; tp->fd = tp->bk = tp; break; } else { abort(); break; } } else { tchunkptr F = T->fd; if (__builtin_expect(((char*)(T) >= (m)->least_addr) && ((char*)(F) >= (m)->least_addr), 1)) { T->fd = F->bk = tp; tp->fd = F; tp->bk = T; tp->parent = 0; break; } else { abort(); break; } } } }};
>                                                    ~   ~~~~~~^~~~~~~
> ../src/plasma/thirdparty/dlmalloc.c:4419:853: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
>     if ((((psize) >> (3U)) < (32U))) { bindex_t I = (bindex_t)((psize) >> (3U)); mchunkptr B = ((sbinptr)((char*)&((m)->smallbins[(I)<<1]))); mchunkptr F = B; ((psize >= (((sizeof(mchunk)) + (((size_t)(2 * sizeof(void *))) - ((size_t)1))) & ~(((size_t)(2 * sizeof(void *))) - ((size_t)1)))) ? static_cast<void> (0) : __assert_fail ("psize >= (((sizeof(mchunk)) + (((size_t)(2 * sizeof(void *))) - ((size_t)1))) & ~(((size_t)(2 * sizeof(void *))) - ((size_t)1)))", "../src/plasma/thirdparty/dlmalloc.c", 4419, __PRETTY_FUNCTION__)); if (!((m)->smallmap & ((binmap_t)(1) << (I)))) ((m)->smallmap |= ((binmap_t)(1) << (I))); else if (__builtin_expect(((char*)(B->fd) >= (m)->least_addr), 1)) F = B->fd; else { abort(); } B->fd = p; F->bk = p; p->fd = F; p->bk = B;} else { tchunkptr TP = (tchunkptr)(p); { tbinptr* H; bindex_t I; { unsigned int X = psize >> (8U); if (X == 0) I = 0; else if (X > 0xFFFF) I = (32U)-1; else { unsigned int K = (unsigned) sizeof(X)*8 - 1 - (unsigned) __builtin_clz(X); I = (bindex_t)((K << 1) + ((psize >> (K + ((8U)-1)) & 1))); }}; H = (&((m)->treebins[I])); TP->index = I; TP->child[0] = TP->child[1] = 0; if (!((m)->treemap & ((binmap_t)(1) << (I)))) { ((m)->treemap |= ((binmap_t)(1) << (I))); *H = TP; TP->parent = (tchunkptr)H; TP->fd = TP->bk = TP; } else { tchunkptr T = *H; size_t K = psize << ((I == (32U)-1)? 0 : (((sizeof(size_t) << 3)-((size_t)1)) - (((I) >> 1) + (8U) - 2))); for (;;) { if (((T)->head & ~(((((size_t)1))|(((size_t)2))|(((size_t)4))))) != psize) { tchunkptr* C = &(T->child[(K >> ((sizeof(size_t) << 3)-((size_t)1))) & 1]); K <<= 1; if (*C != 0) T = *C; else if (__builtin_expect(((char*)(C) >= (m)->least_addr), 1)) { *C = TP; TP->parent = T; TP->fd = TP->bk = TP; break; } else { abort(); break; } } else { tchunkptr F = T->fd; if (__builtin_expect(((char*)(T) >= (m)->least_addr) && ((char*)(F) >= (m)->least_addr), 1)) { T->fd = F->bk = TP; TP->fd = F; TP->bk = T; TP->parent = 0; break; } else { abort(); break; } } } }}; };
>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ~   ~~~~~~^~~~~~~
> ../src/plasma/thirdparty/dlmalloc.c:4434:25: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
>   { unsigned int X = nb >> (8U); if (X == 0) idx = 0; else if (X > 0xFFFF) idx = (32U)-1; else { unsigned int K = (unsigned) sizeof(X)*8 - 1 - (unsigned) __builtin_clz(X); idx = (bindex_t)((K << 1) + ((nb >> (K + ((8U)-1)) & 1))); }};
>                  ~   ~~~^~~~~~~
> ../src/plasma/thirdparty/dlmalloc.c:4489:859: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
>           if ((((rsize) >> (3U)) < (32U))) { bindex_t I = (bindex_t)((rsize) >> (3U)); mchunkptr B = ((sbinptr)((char*)&((m)->smallbins[(I)<<1]))); mchunkptr F = B; ((rsize >= (((sizeof(mchunk)) + (((size_t)(2 * sizeof(void *))) - ((size_t)1))) & ~(((size_t)(2 * sizeof(void *))) - ((size_t)1)))) ? static_cast<void> (0) : __assert_fail ("rsize >= (((sizeof(mchunk)) + (((size_t)(2 * sizeof(void *))) - ((size_t)1))) & ~(((size_t)(2 * sizeof(void *))) - ((size_t)1)))", "../src/plasma/thirdparty/dlmalloc.c", 4489, __PRETTY_FUNCTION__)); if (!((m)->smallmap & ((binmap_t)(1) << (I)))) ((m)->smallmap |= ((binmap_t)(1) << (I))); else if (__builtin_expect(((char*)(B->fd) >= (m)->least_addr), 1)) F = B->fd; else { abort(); } B->fd = r; F->bk = r; r->fd = F; r->bk = B;} else { tchunkptr TP = (tchunkptr)(r); { tbinptr* H; bindex_t I; { unsigned int X = rsize >> (8U); if (X == 0) I = 0; else if (X > 0xFFFF) I = (32U)-1; else { unsigned int K = (unsigned) sizeof(X)*8 - 1 - (unsigned) __builtin_clz(X); I = (bindex_t)((K << 1) + ((rsize >> (K + ((8U)-emap & ((binmap_t)(1) << (I)))) { ((m)->treemap |= ((binmap_t)(1) << (I))); *H = TP; TP->parent = (tchunkptr)H; TP->fd = TP->bk = TP; } else { tchunkptr T = *H; size_t K = rsize << ((I == (32U)-1)? 0 : (((sizeof(size_t) << 3)-((size_t)1)) - (((I) >> 1) + (8U) - 2))); for (;;) { if (((T)->head & ~(((((size_t)1))|(((size_t)2))|(((size_t)4))))) != rsize) { tchunkptr* C = &(T->child[(K >> ((sizeof(size_t) << 3)-((size_t)1))) & 1]); K <<= 1; if (*C != 0) T = *C; else if (__builtin_expect(((char*)(C) >= (m)->least_addr), 1)) { *C = TP; TP->parent = T; TP->fd = TP->bk = TP; break; } else { abort(); break; } } else { tchunkptr F = T->fd; if (__builtin_expect(((char*)(T) >= (m)->least_addr) && ((char*)(F) >= (m)->least_addr), 1)) { T->fd = F->bk = TP; TP->fd = F; TP->bk = T; TP->parent = 0; break; } else { abort(); break; } } } }}; };
>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ~   ~~~~~~^~~~~~~
> ../src/plasma/thirdparty/dlmalloc.c:4767:64: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Wshorten-64-to-32]
>             { tbinptr* H; bindex_t I; { unsigned int X = psize >> (8U); if (X == 0) I = 0; else if (X > 0xFFFF) I = (32U)-1; else { unsigned int K = (unsigned) sizeof(X)*8 - 1 - (unsigned) __builtin_clz(X); I = (bindex_t)((K << 1) + ((psize >> (K + ((8U)-1)) & 1))); }}; H = (&(((&_gm_))->treebins[I])); tp->index = I; tp->child[0] = tp->child[1] = 0; if (!(((&_gm_))->treemap & ((binmap_t)(1) << (I)))) { (((&_gm_))->treemap |= ((binmap_t)(1) << (I))); *H = tp; tp->parent = (tchunkptr)H; tp->fd = tp->bk = tp; } else { tchunkptr T = *H; size_t K = psize << ((I == (32U)-1)? 0 : (((sizeof(size_t) << 3)-((size_t)1)) - (((I) >> 1) + (8U) - 2))); for (;;) { if (((T)->head & ~(((((size_t)1))|(((size_t)2))|(((size_t)4))))) != psize) { tchunkptr* C = &(T->child[(K >> ((sizeof(size_t) << 3)-((size_t)1))) & 1]); K <<= 1; if (*C != 0) T = *C; else if (__builtin_expect(((char*)(C) >= ((&_gm_))->least_addr), 1)) { *C = tp; tp->parent = T; tp->fd = tp->bk = tp; break; } else { abort(); break; } } else { tchunkptr F = T->fd; if (__builtin_expect(((char*)(T) >= ((&_gm_))->least_addr) && ((char*)(F) >= ((&_gm_))->least_addr), 1)) { T->fd = F->bk = tp; tp->fd = F; tp->bk = T; tp->parent = 0; break; } else { abort(); break; } } } }};
>                                                      ~   ~~~~~~^~~~~~~
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)