Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:104592 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 31420 invoked from network); 6 Mar 2019 03:39:31 -0000 Received: from unknown (HELO mail-pg1-f180.google.com) (209.85.215.180) by pb1.pair.com with SMTP; 6 Mar 2019 03:39:31 -0000 Received: by mail-pg1-f180.google.com with SMTP id q206so6852289pgq.4 for ; Tue, 05 Mar 2019 16:27:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:openpgp:autocrypt:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=hi9GuR3fVSShyEULgvw6e3kdqMsDSAQyQ8w68yRP1WQ=; b=ROJ9DgUzE3QMhWnR3HLFlEGo0AiEGPzCKFpvIostHr+zQbI7IV14f7VTLmnn1fNAHz mCQmM4YUgC+tJAnamWSb16X5UIDPeV6FSNjqcu6HVyXX4W07MQdRuYOUkxXQVuFbK9xk 2am0EsF9LEUfQIv+rIX2tfsDPYkDBaftPL01kCUnzE47i5s/5iiNFM87DSX7KRro8uDX O+oEpk4q2HzIwnTLQKYLyLo//JbjEc/sy8AF6rz3Y2Ifc6fgOnI4sUZtrmYlh6vFCd1G XV7pmB76Ft37SA4T58OxvA1w8Mf/yhJY6kTWlO6oL360XiWdnyR9wJeLGAWKpRLdNLuy mDQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:openpgp:autocrypt:message-id :date:user-agent:mime-version:content-language :content-transfer-encoding; bh=hi9GuR3fVSShyEULgvw6e3kdqMsDSAQyQ8w68yRP1WQ=; b=fGVFM4LgHC+hfC7GKv26sqiRWAKc9MEwXPUFSMasewIvI2H2JTmAW+GtZRHNpWAZ7h VUvuKAeJ1CWaPo6/MojIiyw67vLSojrzhb/u0LOTWf8zxRu6Os/Bd//PPll9KgKTNAjA V3FihpzTRuLOq1X6JqkXD8Wh0JEZrWaUbL5n14D41vj+BZIjGQOyQQgU8as6qlhOhdBT uUCWFuC868vdrfKHEJLmCX97sQPE1U6h//z777F9wbCmSO+siPinDXJFAEh4pCpwTrAt 8K/NNzTuwZWrkmphmxgD9U8pqGEkVE6xKIoyQDCV9B6zrLlRkTF/RxxeP45BDOZgpGho pBaw== X-Gm-Message-State: APjAAAXFwHbBwDjSkTg64E5L3FbwkJ3B9JMakN5FsGPO97T5MsMYBaYI qohubay2tdLnY/kXFk4N4gRWZKs= X-Google-Smtp-Source: APXvYqzWXwpy10ugcRqxfDVvb0Dh9MteR5M76EHfd06zfQ46/iLTRdNob7XGvYTRBVezR9amtZ0E9w== X-Received: by 2002:a62:398d:: with SMTP id u13mr4469809pfj.32.1551832065808; Tue, 05 Mar 2019 16:27:45 -0800 (PST) Received: from Stas-Pro-2016.local (c-24-4-176-254.hsd1.ca.comcast.net. [24.4.176.254]) by smtp.gmail.com with ESMTPSA id i14sm109891pgt.82.2019.03.05.16.27.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Mar 2019 16:27:45 -0800 (PST) To: PHP Internals , Dmitry Stogov Openpgp: preference=signencrypt Autocrypt: addr=smalyshev@gmail.com; prefer-encrypt=mutual; keydata= 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 Message-ID: Date: Tue, 5 Mar 2019 16:27:43 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Weird bitset shift offset in zend_alloc From: smalyshev@gmail.com (Stanislav Malyshev) Hi! I've been working on running PHP with undefined behavior sanitizer (http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) and I've encountered a weird error while running PHP: /src/php-src/Zend/zend_alloc.c:585:9: runtime error: shift exponent 138 is too large for 64-bit type 'zend_mm_bitset' (aka 'unsigned long') #0 0x86dada in zend_mm_bitset_is_set /src/php-src/Zend/zend_alloc.c:585:9 #1 0x86dada in zend_mm_bitset_is_free_range /src/php-src/Zend/zend_alloc.c:665 #2 0x86dada in zend_mm_realloc_heap /src/php-src/Zend/zend_alloc.c:1670 #3 0x86dada in _erealloc2 /src/php-src/Zend/zend_alloc.c:2577 Looks like the code is doing it intentionally: /* x86 instructions BT, SHL, SHR don't require masking */ #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) || defined(ZEND_WIN32) # define ZEND_BIT_TEST(bits, bit) (((bits)[(bit) / (sizeof((bits)[0])*8)] >> (bit)) & 1) #else # define ZEND_BIT_TEST(bits, bit) (((bits)[(bit) / (sizeof((bits)[0])*8)] >> ((bit) & (sizeof((bits)[0])*8-1))) & 1) #endif But I'm not sure how it's supposed to work. Is it correct that on GCC (and clang, presumably, since it defines __GNUC__) accept long bitshifts and do the right thing with argument like 138? Is it documented anywhere? Or is there a bug here? Thanks, -- Stas Malyshev smalyshev@gmail.com