From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id DE5BE3857818 for ; Fri, 29 Oct 2021 16:20:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DE5BE3857818 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com IronPort-SDR: /e6XK/zG3C7oUEk+1Ubv6V6pacJWMGVEBp0uM03bQART2UQcq+Y1EIrNKvWqnqI0Qkd7Fc4ru4 Y/7xKsXrsQEQIPEo0/f2yodpRtRHTCzyj31YLCTZgftfndI3kCjTpEWU64hin6klFkvtuAUfjP nVWwdDn6GdYQD+sEK3p+Zj5jWPAHCrV0A1mzsT1lmfgiF46YaMfcbU/by9wXdkH/z5/CoUwCu7 pEjhkq2HOxMHGwJa6S2QOyDPvIUhgzDRaXQV/syS8E/vurrlDRTL5wK6b4h0tZagjo/fvL2vYk IF/9ArsP5xqX0juKvHUXnCmp X-IronPort-AV: E=Sophos;i="5.87,193,1631606400"; d="diff'?scan'208";a="67644614" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 29 Oct 2021 08:20:24 -0800 IronPort-SDR: XzeFOMSyfVnYNctAGvUCegRH0ymtCW1twy33YPHVIsNmz08tg5nylu8d67cJWB3MBjnkZLilJw l6+rEemg0XBEBKdAJU84ZvLKv+qcGJmtrmayQ/0GZnmm0eJvQxunEHfqs9niZNRfey34eVNdOt ZxLnszm3XwY7CZTtBZZKei2O5q2ZrRGxIJhZwR9mXh2FDnGeSlLam3eliMvZ0H3sl7y6TmWiux s+FaE9UBSFpmMo+npTKQFCx0BBsy2hBRm5OSnsu7/Il61imrh/0CSYrFhT2C0aUUz7D2tijXDW ARQ= Content-Type: multipart/mixed; boundary="------------quhxrOl7nvVujFP9RFbYFV7j" Message-ID: <37d2ddba-478e-9d69-e918-e7d2f8c0063f@codesourcery.com> Date: Fri, 29 Oct 2021 18:20:15 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Subject: Re: [Patch] libcpp: Fix _Pragma expansion [PR102409] Content-Language: en-US To: Jakub Jelinek CC: gcc-patches , Joseph Myers , David Malcolm References: <012cb5da-5255-ac5e-c7dc-f7eb2bd34955@codesourcery.com> <20211029110641.GY304296@tucnak> From: Tobias Burnus In-Reply-To: <20211029110641.GY304296@tucnak> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: SVR-IES-MBX-07.mgc.mentorg.com (139.181.222.7) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, NICE_REPLY_A, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Oct 2021 16:20:27 -0000 --------------quhxrOl7nvVujFP9RFbYFV7j Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable On 29.10.21 13:06, Jakub Jelinek wrote: > On Thu, Oct 28, 2021 at 05:51:59PM +0200, Tobias Burnus wrote: >> libcpp/ChangeLog: >> >> PR c++/102409 >> * directives.c (destringize_and_run): Add PRAGMA_OP to the >> CPP_PRAGMA token's flags to mark is as coming from _Pragma. >> * include/cpplib.h (PRAGMA_OP): #define, to be used with token flag= s. >> * macro.c (collect_args): Only handle CPP_PRAGMA special if PRAGMA_= OP >> is set. >> > The patch itself looks reasonable to me, but it should come up with > testsuite coverage. And the testsuite coverage should include both norma= l > testcases that do use integrated preprocessor, and the same with > -save-temps to make sure that even when preprocessing separately it works > too. Yes, I realized myself that I missed to include a testcase =E2=80=93 thanks= for the -save-temps suggestion! Updated patch enclosed. Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------quhxrOl7nvVujFP9RFbYFV7j Content-Type: text/x-patch; charset="UTF-8"; name="fix-pragma-v2.diff" Content-Disposition: attachment; filename="fix-pragma-v2.diff" Content-Transfer-Encoding: base64 bGliY3BwOiBGaXggX1ByYWdtYSBleHBhbnNpb24gW1BSMTAyNDA5XQoKQm90aCAjcHJhZ21h IGFuZCBfUHJhZ21hIGVuZGVkIHVwIGFzIENQUF9QUkFHTUEuIFByZXN1bWFibHkgc2luY2UK cjEzMTgxOSAoMjAwOCwgR0NDIDQuMykgZm9yIFBSMzQ2OTIsIHByYWdtYXMgYXJlIG5vdCBl eHBhbmRlZCBpbgptYWNybyBhcmd1bWVudHMgYnV0IGFyZSBvdXRwdXQgYXMgaXMgYmVmb3Jl LiBGcm9tIHRoZSBvbGQgYnVnIHJlcG9ydCwKdGhhdCB3YXMgdG8gZml4IHVzYWdlIGxpa2UK ICBGT08gKAogICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYwogICkKSG93ZXZlciwgdGhhdCBj aGFuZ2UgYWxzbyBhZmZlY3RlZCBfUHJhZ21hIHN1Y2ggdGhhdAogIEJBUiAoCiAgICAiMSI7 CiAgICBfUHJhZ21hKCJvbXAgLi4uIik7ICkKeWllbGRlZAogICNwcmFnbWEgb21wIC4uLgpm b2xsb3dlZCBieSB3aGF0IEJBUiBleHBhbmRlZCB0b28sIHBvc3NpYmx5IGluY2x1ZGluZyAn IjEiOycuCgpUaGlzIGNvbW1pdCBhZGRzIGEgZmxhZywgUFJBR01BX09QLCB0byB0b2tlbnMg dG8gbWFrZSB0aGUgdHdvCmRpc3Rpbmd1aXNoYWJsZSAtIGFuZCBpbmNsdWRlIGFnYWluIF9Q cmFnbWEgaW4gdGhlIGV4cGFuZGVkIGFyZ3VtZW50cy4KCmxpYmNwcC9DaGFuZ2VMb2c6CgoJ UFIgYysrLzEwMjQwOQoJKiBkaXJlY3RpdmVzLmMgKGRlc3RyaW5naXplX2FuZF9ydW4pOiBB ZGQgUFJBR01BX09QIHRvIHRoZQoJQ1BQX1BSQUdNQSB0b2tlbidzIGZsYWdzIHRvIG1hcmsg aXMgYXMgY29taW5nIGZyb20gX1ByYWdtYS4KCSogaW5jbHVkZS9jcHBsaWIuaCAoUFJBR01B X09QKTogI2RlZmluZSwgdG8gYmUgdXNlZCB3aXRoIHRva2VuIGZsYWdzLgoJKiBtYWNyby5j IChjb2xsZWN0X2FyZ3MpOiBPbmx5IGhhbmRsZSBDUFBfUFJBR01BIHNwZWNpYWwgaWYgUFJB R01BX09QCglpcyBzZXQuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCgkqIGMtYysrLWNv bW1vbi9nb21wL3ByYWdtYS0xLmM6IE5ldyB0ZXN0LgoJKiBjLWMrKy1jb21tb24vZ29tcC9w cmFnbWEtMi5jOiBOZXcgdGVzdC4KCiBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21w L3ByYWdtYS0xLmMgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGdjYy90 ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvcHJhZ21hLTIuYyB8IDUwICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogbGliY3BwL2RpcmVjdGl2ZXMuYyAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKysKIGxpYmNwcC9pbmNsdWRlL2NwcGxpYi5oICAgICAgICAgICAg ICAgICAgICB8ICAxICsKIGxpYmNwcC9tYWNyby5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29t cC9wcmFnbWEtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9wcmFnbWEt MS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMzMwZjE3MjA0 YQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAv cHJhZ21hLTEuYwpAQCAtMCwwICsxLDUwIEBACisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9u cyAiLWZkdW1wLXRyZWUtb3JpZ2luYWwiIH0gICovCisvKiBQUiBjKysvNTE0ODQgICovCisK KyNkZWZpbmUgVEVTVChUKSB7IFwKKyAgaW50IGZhaWwgPSAwLCB0cmlhbDsgXAorICBmb3Ig KGludCB0cmlhbCA9IDA7IHRyaWFsIDwgVFJJQUxTICYmIGZhaWwgPT0gMDsgdHJpYWwrKykg eyBcCisgICAgX1ByYWdtYSgib21wIHRhcmdldCB0ZWFtcyBudW1fdGVhbXMoMSkgdGhyZWFk X2xpbWl0KDEwMjQpIikgXAorICAgICB7VH0gXAorICB9IFwKK30KKworI2RlZmluZSBUUklB TFMgKDEpCisjZGVmaW5lIE4gKDEwMjQqMykKKworaW50IG1haW4odm9pZCkgeworCisgIGRv dWJsZSBDW05dLCBEW05dOworICBkb3VibGUgU1tOXTsKKyAgZG91YmxlIHBbMl07CisgIGlu dCBpOyAKKyAgZm9yIChpID0gMDsgaSA8IE47IGkrKykKKyAge0NbaV0gPSAxOyBEW2ldID0g aTt9CisKKyAgaW50IG1heF90aHJlYWRzID0gMjI0OworCisjZGVmaW5lIFBBUkFMTEVMKFgp IFRFU1QoeyBcCitfUHJhZ21hKCJvbXAgcGFyYWxsZWwgaWYodGhyZWFkc1swXSA+IDEpIG51 bV90aHJlYWRzKHRocmVhZHNbMF0pIikgXAoreyBcCitfUHJhZ21hKCJvbXAgZm9yIG9yZGVy ZWQiKSBcCisgIFggIFwKK19QcmFnbWEoIm9tcCBmb3Igc2NoZWR1bGUoYXV0bykgb3JkZXJl ZCIpIFwKKyAgWCAgXAorfSBcCit9KQorCisgIGZvciAoaW50IHQgPSAwOyB0IDw9IG1heF90 aHJlYWRzOyB0ICs9IG1heF90aHJlYWRzKSB7CisgICAgaW50IHRocmVhZHNbMV07IHRocmVh ZHNbMF0gPSB0OworICAgIFNbMF0gPSAwOworICAgIFBBUkFMTEVMKAorICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgTjsgaSsrKSB7IFwKKyAgICAgIF9QcmFnbWEoIm9tcCBvcmRlcmVkIikg XAorICAgICAgU1swXSArPSBDW2ldICsgRFtpXTsgXAorICAgIH0pCisgIH0KKyAgcmV0dXJu IDA7Cit9CisKKy8qIE9uIGV4cGFuc2lvbiwgdGhlIF9QcmFnbWEgd2VyZSB3cm9uZ2x5IHBs YWNlZCwgZW5zdXJlIHRoZSBvcmRlciBpcyBub3cgY29ycmVjdDogKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcCAiI3ByYWdtYSBvbXAgdGFyZ2V0LiojcHJhZ21hIG9tcCB0 ZWFtcyBudW1fdGVhbXNcXCgxXFwpIHRocmVhZF9saW1pdFxcKDEwMjRcXCkuKiNwcmFnbWEg b21wIHBhcmFsbGVsIG51bV90aHJlYWRzXFwodGhyZWFkc1xcXFswXFxcXVxcKSBpZlxcKHRo cmVhZHNcXFxbMFxcXF0gPiAxXFwpLiojcHJhZ21hIG9tcCBmb3Igb3JkZXJlZC4qI3ByYWdt YSBvbXAgb3JkZXJlZC4qI3ByYWdtYSBvbXAgZm9yIG9yZGVyZWQgc2NoZWR1bGVcXChhdXRv XFwpLiojcHJhZ21hIG9tcCBvcmRlcmVkIiAib3JpZ2luYWwiIH0gfSAqLworCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3ByYWdtYS0yLmMgYi9nY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL3ByYWdtYS0yLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUzNThmODc1OTU5Ci0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vZ29tcC9wcmFnbWEtMi5jCkBAIC0wLDAg KzEsNTAgQEAKKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1vcmln aW5hbCAtc2F2ZS10ZW1wcyIgfSAgKi8KKy8qIFBSIGMrKy81MTQ4NCAgKi8KKworI2RlZmlu ZSBURVNUKFQpIHsgXAorICBpbnQgZmFpbCA9IDAsIHRyaWFsOyBcCisgIGZvciAoaW50IHRy aWFsID0gMDsgdHJpYWwgPCBUUklBTFMgJiYgZmFpbCA9PSAwOyB0cmlhbCsrKSB7IFwKKyAg ICBfUHJhZ21hKCJvbXAgdGFyZ2V0IHRlYW1zIG51bV90ZWFtcygxKSB0aHJlYWRfbGltaXQo MTAyNCkiKSBcCisgICAgIHtUfSBcCisgIH0gXAorfQorCisjZGVmaW5lIFRSSUFMUyAoMSkK KyNkZWZpbmUgTiAoMTAyNCozKQorCitpbnQgbWFpbih2b2lkKSB7CisKKyAgZG91YmxlIENb Tl0sIERbTl07CisgIGRvdWJsZSBTW05dOworICBkb3VibGUgcFsyXTsKKyAgaW50IGk7IAor ICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKQorICB7Q1tpXSA9IDE7IERbaV0gPSBpO30KKwor ICBpbnQgbWF4X3RocmVhZHMgPSAyMjQ7CisKKyNkZWZpbmUgUEFSQUxMRUwoWCkgVEVTVCh7 IFwKK19QcmFnbWEoIm9tcCBwYXJhbGxlbCBpZih0aHJlYWRzWzBdID4gMSkgbnVtX3RocmVh ZHModGhyZWFkc1swXSkiKSBcCit7IFwKK19QcmFnbWEoIm9tcCBmb3Igb3JkZXJlZCIpIFwK KyAgWCAgXAorX1ByYWdtYSgib21wIGZvciBzY2hlZHVsZShhdXRvKSBvcmRlcmVkIikgXAor ICBYICBcCit9IFwKK30pCisKKyAgZm9yIChpbnQgdCA9IDA7IHQgPD0gbWF4X3RocmVhZHM7 IHQgKz0gbWF4X3RocmVhZHMpIHsKKyAgICBpbnQgdGhyZWFkc1sxXTsgdGhyZWFkc1swXSA9 IHQ7CisgICAgU1swXSA9IDA7CisgICAgUEFSQUxMRUwoCisgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBOOyBpKyspIHsgXAorICAgICAgX1ByYWdtYSgib21wIG9yZGVyZWQiKSBcCisgICAg ICBTWzBdICs9IENbaV0gKyBEW2ldOyBcCisgICAgfSkKKyAgfQorICByZXR1cm4gMDsKK30K KworLyogT24gZXhwYW5zaW9uLCB0aGUgX1ByYWdtYSB3ZXJlIHdyb25nbHkgcGxhY2VkLCBl bnN1cmUgdGhlIG9yZGVyIGlzIG5vdyBjb3JyZWN0OiAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wICIjcHJhZ21hIG9tcCB0YXJnZXQuKiNwcmFnbWEgb21wIHRlYW1zIG51 bV90ZWFtc1xcKDFcXCkgdGhyZWFkX2xpbWl0XFwoMTAyNFxcKS4qI3ByYWdtYSBvbXAgcGFy YWxsZWwgbnVtX3RocmVhZHNcXCh0aHJlYWRzXFxcWzBcXFxdXFwpIGlmXFwodGhyZWFkc1xc XFswXFxcXSA+IDFcXCkuKiNwcmFnbWEgb21wIGZvciBvcmRlcmVkLiojcHJhZ21hIG9tcCBv cmRlcmVkLiojcHJhZ21hIG9tcCBmb3Igb3JkZXJlZCBzY2hlZHVsZVxcKGF1dG9cXCkuKiNw cmFnbWEgb21wIG9yZGVyZWQiICJvcmlnaW5hbCIgfSB9ICovCisKZGlmZiAtLWdpdCBhL2xp YmNwcC9kaXJlY3RpdmVzLmMgYi9saWJjcHAvZGlyZWN0aXZlcy5jCmluZGV4IGI0YmM4YjRk ZjMwLi4zNGY3Njc3ZjcxOCAxMDA2NDQKLS0tIGEvbGliY3BwL2RpcmVjdGl2ZXMuYworKysg Yi9saWJjcHAvZGlyZWN0aXZlcy5jCkBAIC0xOTA3LDYgKzE5MDcsOCBAQCBkZXN0cmluZ2l6 ZV9hbmRfcnVuIChjcHBfcmVhZGVyICpwZmlsZSwgY29uc3QgY3BwX3N0cmluZyAqaW4sCiAg IHNhdmVfZGlyZWN0aXZlID0gcGZpbGUtPmRpcmVjdGl2ZTsKICAgcGZpbGUtPmRpcmVjdGl2 ZSA9ICZkdGFibGVbVF9QUkFHTUFdOwogICBkb19wcmFnbWEgKHBmaWxlKTsKKyAgaWYgKHBm aWxlLT5kaXJlY3RpdmVfcmVzdWx0LnR5cGUgPT0gQ1BQX1BSQUdNQSkKKyAgICBwZmlsZS0+ ZGlyZWN0aXZlX3Jlc3VsdC5mbGFncyB8PSBQUkFHTUFfT1A7CiAgIGVuZF9kaXJlY3RpdmUg KHBmaWxlLCAxKTsKICAgcGZpbGUtPmRpcmVjdGl2ZSA9IHNhdmVfZGlyZWN0aXZlOwogCmRp ZmYgLS1naXQgYS9saWJjcHAvaW5jbHVkZS9jcHBsaWIuaCBiL2xpYmNwcC9pbmNsdWRlL2Nw cGxpYi5oCmluZGV4IDZlMmZjYjZiMWYyLi41NmIwN2FjYzFkNyAxMDA2NDQKLS0tIGEvbGli Y3BwL2luY2x1ZGUvY3BwbGliLmgKKysrIGIvbGliY3BwL2luY2x1ZGUvY3BwbGliLmgKQEAg LTE5OCw2ICsxOTgsNyBAQCBzdHJ1Y3QgR1RZKCgpKSBjcHBfc3RyaW5nIHsKIAkJCQkgICAg b3BlcmF0b3IsIG9yIGJlZm9yZSB0aGlzIHRva2VuCiAJCQkJICAgIGFmdGVyIGEgIyBvcGVy YXRvci4gICovCiAjZGVmaW5lIE5PX0VYUEFORAkoMSA8PCAxMCkgLyogRG8gbm90IG1hY3Jv LWV4cGFuZCB0aGlzIHRva2VuLiAgKi8KKyNkZWZpbmUgUFJBR01BX09QCSgxIDw8IDExKSAv KiBfUHJhZ21hIHRva2VuLiAgKi8KIAogLyogU3BlY2lmeSB3aGljaCBmaWVsZCwgaWYgYW55 LCBvZiB0aGUgY3BwX3Rva2VuIHVuaW9uIGlzIHVzZWQuICAqLwogCmRpZmYgLS1naXQgYS9s aWJjcHAvbWFjcm8uYyBiL2xpYmNwcC9tYWNyby5jCmluZGV4IGYyMTQ1NDhkZTFlLi5iMmY3 OTdjYWUzNSAxMDA2NDQKLS0tIGEvbGliY3BwL21hY3JvLmMKKysrIGIvbGliY3BwL21hY3Jv LmMKQEAgLTEyNTksNyArMTI1OSw3IEBAIGNvbGxlY3RfYXJncyAoY3BwX3JlYWRlciAqcGZp bGUsIGNvbnN0IGNwcF9oYXNobm9kZSAqbm9kZSwKIAkgIGVsc2UgaWYgKHRva2VuLT50eXBl ID09IENQUF9FT0YKIAkJICAgfHwgKHRva2VuLT50eXBlID09IENQUF9IQVNIICYmIHRva2Vu LT5mbGFncyAmIEJPTCkpCiAJICAgIGJyZWFrOwotCSAgZWxzZSBpZiAodG9rZW4tPnR5cGUg PT0gQ1BQX1BSQUdNQSkKKwkgIGVsc2UgaWYgKHRva2VuLT50eXBlID09IENQUF9QUkFHTUEg JiYgISh0b2tlbi0+ZmxhZ3MgJiBQUkFHTUFfT1ApKQogCSAgICB7CiAJICAgICAgY3BwX3Rv a2VuICpuZXd0b2sgPSBfY3BwX3RlbXBfdG9rZW4gKHBmaWxlKTsKIAo= --------------quhxrOl7nvVujFP9RFbYFV7j--