From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5864 invoked by alias); 27 Feb 2018 00:05:23 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 5850 invoked by uid 89); 27 Feb 2018 00:05:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.1 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,KAM_SHORT,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy= X-HELO: userp2120.oracle.com Received: from userp2120.oracle.com (HELO userp2120.oracle.com) (156.151.31.85) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 27 Feb 2018 00:05:20 +0000 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w1R04IUN139597; Tue, 27 Feb 2018 00:05:17 GMT Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by userp2120.oracle.com with ESMTP id 2gcvfg802c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 27 Feb 2018 00:05:17 +0000 Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserv0021.oracle.com (8.14.4/8.14.4) with ESMTP id w1R05GCl018483 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 27 Feb 2018 00:05:16 GMT Received: from abhmp0010.oracle.com (abhmp0010.oracle.com [141.146.116.16]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id w1R05F2U019680; Tue, 27 Feb 2018 00:05:15 GMT Received: from [10.39.202.186] (/10.39.202.186) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 26 Feb 2018 16:05:15 -0800 From: dave.pagan@oracle.com Subject: [PATCH] PR c/46921 Lost side effect when struct initializer expression uses comma operator To: Gcc Patch List Cc: Joseph Myers Message-ID: Date: Tue, 27 Feb 2018 00:05:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------0E71077749A0C75695BB4D8B" X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8816 signatures=668680 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1802260301 X-IsSubscribed: yes X-SW-Source: 2018-02/txt/msg01471.txt.bz2 This is a multi-part message in MIME format. --------------0E71077749A0C75695BB4D8B Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 550 This patch fixes improper handling of comma operator expression in a struct field initializer as described in: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46921 Currently, function output_init_element () does not evaluate the left hand expression in a comma operator that's used for a struct initializer field if the right hand side is zero-sized. However, the left hand expression must be evaluated if it's found to have side effects (for example, a function call). Patch was successfully bootstrapped and tested on x86_64-linux. --Dave --------------0E71077749A0C75695BB4D8B Content-Type: text/plain; charset=UTF-8; name="CL-46921" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="CL-46921" Content-length: 399 L2MKMjAxOC0wMi0yNiAgRGF2aWQgUGFnYW4gIDxkYXZlLnBhZ2FuQG9yYWNs ZS5jb20+CgoJUFIgYy80NjkyMQoJKiBjLXR5cGVjay5jIChvdXRwdXRfaW5p dF9lbGVtZW50KTogRW5zdXJlIGZpZWxkIGluaXRpYWxpemVyIAoJZXhwcmVz c2lvbiBpcyBhbHdheXMgZXZhbHVhdGVkIGlmIHRoZXJlIGFyZSBzaWRlIGVm ZmVjdHMuCgovdGVzdHN1aXRlCjIwMTgtMDItMjYgIERhdmlkIFBhZ2FuICA8 ZGF2ZS5wYWdhbkBvcmFjbGUuY29tPgoKCVBSIGMvNDY5MjEKCSogZ2NjLmRn L3ByNDY5MjEuYzogTmV3IHRlc3QuCg== --------------0E71077749A0C75695BB4D8B Content-Type: text/plain; charset=UTF-8; name="PATCH-46921" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="PATCH-46921" Content-length: 2562 SW5kZXg6IGdjYy9jL2MtdHlwZWNrLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZ2NjL2MvYy10eXBlY2suYwkocmV2aXNpb24gMjU3OTc1KQorKysg Z2NjL2MvYy10eXBlY2suYwkod29ya2luZyBjb3B5KQpAQCAtOTIwOCwxMiAr OTIwOCwxNCBAQCBvdXRwdXRfaW5pdF9lbGVtZW50IChsb2NhdGlvbl90IGxv YywgdHJlZSB2YWx1ZSwgdAogCQkgICAgICAiZW51bSBjb252ZXJzaW9uIGlu IGluaXRpYWxpemF0aW9uIGlzIGludmFsaWQgaW4gQysrIik7CiAgICAgfQog Ci0gIC8qIElmIHRoaXMgZmllbGQgaXMgZW1wdHkgKGFuZCBub3QgYXQgdGhl IGVuZCBvZiBzdHJ1Y3R1cmUpLAotICAgICBkb24ndCBkbyBhbnl0aGluZyBv dGhlciB0aGFuIGNoZWNraW5nIHRoZSBpbml0aWFsaXplci4gICovCisgIC8q IElmIHRoaXMgZmllbGQgaXMgZW1wdHkgYW5kIGRvZXMgbm90IGhhdmUgc2lk ZSBlZmZlY3RzIChhbmQgaXMgbm90IGF0IAorICAgICB0aGUgZW5kIG9mIHN0 cnVjdHVyZSksIGRvbid0IGRvIGFueXRoaW5nIG90aGVyIHRoYW4gY2hlY2tp bmcgdGhlIAorICAgICBpbml0aWFsaXplci4gICovCiAgIGlmIChmaWVsZAog ICAgICAgJiYgKFRSRUVfVFlQRSAoZmllbGQpID09IGVycm9yX21hcmtfbm9k ZQogCSAgfHwgKENPTVBMRVRFX1RZUEVfUCAoVFJFRV9UWVBFIChmaWVsZCkp CiAJICAgICAgJiYgaW50ZWdlcl96ZXJvcCAoVFlQRV9TSVpFIChUUkVFX1RZ UEUgKGZpZWxkKSkpCisJICAgICAgJiYgIVRSRUVfU0lERV9FRkZFQ1RTIChu ZXdfdmFsdWUpCiAJICAgICAgJiYgKFRSRUVfQ09ERSAoY29uc3RydWN0b3Jf dHlwZSkgPT0gQVJSQVlfVFlQRQogCQkgIHx8IERFQ0xfQ0hBSU4gKGZpZWxk KSkpKSkKICAgICByZXR1cm47CkluZGV4OiBnY2MvdGVzdHN1aXRlL2djYy5k Zy9wcjQ2OTIxLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvcHI0NjkyMS5jCShyZXZpc2lvbiAwKQorKysgZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvcHI0NjkyMS5jCSh3b3JraW5nIGNvcHkpCkBA IC0wLDAgKzEsNDAgQEAKKy8qIFBSIGMvNDY5MjEgIGxvc3Qgc2lkZSBlZmZl Y3Qgd2hlbiBzdHJ1Y3QgaW5pdGlhbGl6ZXIgZXhwciB1c2VzIGNvbW1hCisg ICAgICBvcGVyYXRvciAgKi8KKworLyogeyBkZy1kbyBydW4gfSAqLworLyog eyBkZy1vcHRpb25zICIiIH0gKi8KKworZXh0ZXJuIGludCBwcmludGYoY29u c3QgY2hhciAqLCAuLi4pOworZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOwor Cit0eXBlZGVmIHN0cnVjdCBfX3V3c18wIHsgfSB1d191bml0OwordXdfdW5p dCB1d191bml0X3YgPSB7fTsKKworc3RydWN0IF9fdXdzXzEgCit7CisgIHN0 cnVjdCBfX3V3c18wIF9fdXdmXzE7CisgIHN0cnVjdCBfX3V3c18xKiBfX3V3 Zl8yOworfTsKKworc3RhdGljIGludCBsZWZ0X2hhbmRfZXZhbCA9IDA7CisK K3N0YXRpYyB2b2lkCitmb28gKGNvbnN0IGNoYXIgKnMpCit7CisgICsrbGVm dF9oYW5kX2V2YWw7CisgIHByaW50ZigiJXMiLCBzKTsKK30KKworaW50Citt YWluICgpCit7CisgIHN0cnVjdCBfX3V3c18xIHRtcCA9IHsoZm9vKCJJbm5l clxuIiksIHV3X3VuaXRfdil9OworICAKKyAgcHJpbnRmKCJPdXRlclxuIik7 CisgIC8qIGxlZnQgaGFuZCBleHByZXNzaW9uIGluIGNvbW1hIG9wZXJhdG9y IGluaXRpYWxpemVyIG11c3QgYWx3YXlzIGJlCisgICAgIGV2YWx1YXRlZCBp ZiB0aGVyZSBhcmUgc2lkZSBlZmZlY3RzLiAgKi8KKyAgaWYgKCFsZWZ0X2hh bmRfZXZhbCkKKyAgICBhYm9ydCAoKTsKKyAgCisgIHJldHVybiAwOworfQo= --------------0E71077749A0C75695BB4D8B--