From patchwork Sun Mar 19 21:44:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Justin Brewer X-Patchwork-Id: 19653 Received: (qmail 15062 invoked by alias); 19 Mar 2017 21:44:42 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 15005 invoked by uid 89); 19 Mar 2017 21:44:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:ip*192.168.1.2, H*Ad:D*auburn.edu, H*F:D*auburn.edu, HX-Microsoft-Antispam-PRVS:sk:SN1PR02 X-HELO: NAM03-DM3-obe.outbound.protection.outlook.com Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=auburn.edu; To: From: Justin Brewer Subject: [PATCH] Fix assert() warning in gcc < 4.8 [BZ# 21242] Message-ID: <6619e7e2-248e-08bc-6dc5-7b4d11bea3df@auburn.edu> Date: Sun, 19 Mar 2017 17:44:31 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 X-ClientProxiedBy: CY4PR22CA0045.namprd22.prod.outlook.com (10.172.142.159) To SN1PR02MB2093.namprd02.prod.outlook.com (10.165.227.153) X-MS-Office365-Filtering-Correlation-Id: c7f31e3e-cb54-41ad-5ac5-08d46f1121b4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:SN1PR02MB2093; X-Microsoft-Exchange-Diagnostics: 1; SN1PR02MB2093; 3:oxONeRfdKaIglsxhgif17OXCR7LhN+vLfY86viBYSodoV7lYf5/koHQSu7P0xVMvtHQp3m4ZPNLFlSZSQcuSsvebac8zSMZK+qmA1Kec84eqIWkEOOuFuKluochQMSMiozLZGytV7/t5zg9Kx21fB2AVRCjkxAc8lJb+usDqDDUeTDmeMNzCstcSZF1/xJSVogqPANyiPthD0g3aMiok+UdiV6673O59EHLkHBLO4PJ6OKOXjYBQIrHhpBv7ohFCETrO32pE9ghuqIGtW9E05Q==; 25:G95v++l+880uqof7Qd6SMXAIWyhthnlsw1oFI0z4xtfiow1BOX2DAyXZ3cILO1rAUUmjeHOW3o3Dodc4eytqmib3gZHChtbPz3bRid0gJAEb7MkOjOwh635ZvdPjJ+rUTE2D5zb1oZYJrHwd2QiCUYDALngCxIpOunA6Dh2Tg7xVm8VEkY9Uv4HZ0Nr1Iv7/CoTJrTU8m9caWvjLvjqOLwZFnBjPWFikfK0W8WK4P4Q4qPr4jgnyve/LeApu+JW9r/ypIdaKGfpEqKlITKoRlGPsUpL4HmKnSOTJ2+K0t0j+1I2/6xBaNszsZXuS06plcrnB9Ey+Cs1I2/YbTYuqXslz6nRVuEusoy91OgXnqdxj1B6oxRmI2FZrnbYT9is5O0HmYGaQYNS/blmMXhBvJNe9pfbbXafBjjs9p0k1ndRt+1z13Twxzt3JAzxEHUPGEvbGhGJzQQ7EZqwi31B+IQ== X-Microsoft-Exchange-Diagnostics: 1; SN1PR02MB2093; 31:2li3en8F2sbtKqiF+jUA0DoHQ0lWv4I6YOwAX/z8odtvpT0Jbdy87A57b1oaigdvRafiJQYAAcZJzCTU7Sy7ffd6ctfY1gTQ1ptkr7AWP2HSBYHMQoflBIEKlVxO4ksrgjIH7vOA57REFvZotZmC1VGMFVSMSwkkeHhI37I/HuM8eLbXpMVWXPRo4TW3+NB4j2moZ68tn6k5+GT/1MvZxns6EONNRwFZDxFraVpdYDYe4CBK2jSxfuJi9CVie5kWfrYR4JSmBU5qEuxDqF91RwePva3BChpXxG0Fiqjgfbs=; 20:astgD+TDgDNn2nrYYf1K3MvlLPWZ+il8lqDsuO1+00MVz/BoIqRxuEwk3DjD91MF/r3/LjNrfwRFhZ+1XCPVRmTv4FrM07L78/nAYM5NY/ol+BNYYktoSM/v4eFFaekR8pC2LBTJ7GhH79dIpkj2Vxrj2a175nmtQXIM337ASGU2y6muV7rvfPQWOE6CTUv9Qz/NvB9XoNq6woJHB5bBB7FgtLxkcVqDy6nID6AzUGXdxDj+9iL/GC9uDo7aKfGza5FjhK0dmwzVGuywHCDwgrHdEdnI+ahr0E5Y8e4BIkGKL9XF2L1p5hMUhwoWY3+9Dj7eR8wdOOt9dG49PPs0MyEL6AQZxDnA88M3E+P0enHKAmF3tXeGJaERnz5dqb9mj/4mZgrrhr1BhecvYkLkDx877iH91pSrtbsQwRgLFtwRU26GPhj2ew0RdNUY0A9DkELgsYVjih6A73xXQrCR8zC9s7XTywyG6u2vzBvpKWydTNmj4B/rs6+q7DDUK6lq X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123555025)(20161123558025)(20161123562025)(20161123564025)(20161123560025)(6072148); SRVR:SN1PR02MB2093; BCL:0; PCL:0; RULEID:; SRVR:SN1PR02MB2093; X-Microsoft-Exchange-Diagnostics: 1; SN1PR02MB2093; 4:i5Vm/5WQ2a9R8GF6R3gIjpQjNY2NZKRWgLqV/S/Do4Aw3EqAxNxUncBexwNll62OWjjqfezumy0HsDWSi7+r5CVGEy1EU9XcHiaM/Wdl54FXOlbyp6UC15E12JD/TFM+16aT2cRdsrSPlvX9OtkcbdFCYURHAVnmhXNxER0crfonu3lPAfVy+3xsvCwi1Ltf4MMA77dk/8M+raY2cdMKlnhtIcVNMJzdVpL6LVCBPekEtcH8N8W0iawxDlLwydpckZUNqDq66ROLIU6VkoLDO1iDDDf/8qKopAsNUu5ZK4q128cZIkFbLGrlPu8kBnxMTf3hhvLF95oSSLboq1tmDMcnRno9kqA5WjC701Ee3jaoG6KnMqwBWzmkJwUW6eFTykeheEgSAB3w5XLcvAaY4wAF3pC9eLjS4b7xZ3urAabCqdtbCYDkRdTiP9kgHr5vHiytzNRb0i0DdA2LomkiSdW8hjNzYfh1HOP8wd+WWiP0zdJX9xgJzgCNvrE23kscwT+M8rI5K5oxndYFrkCuDv8lSmmEtc4Gr6DO6oGdI1htIZ8glCzUl88Pfzb1WpIH9rwmSTRsOiZFcaTneKLZ9/JlB0CBW3r8LTaAZwmdoUo= X-Forefront-PRVS: 025100C802 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(979002)(6009001)(6049001)(39450400003)(77096006)(23676002)(33646002)(25786008)(90366009)(6916009)(6486002)(75432002)(53936002)(4001350100001)(3846002)(6116002)(50466002)(5660300001)(65806001)(305945005)(64126003)(65826007)(66066001)(65956001)(31696002)(8676002)(7736002)(83506001)(2906002)(47776003)(189998001)(110136004)(38730400002)(50986999)(54356999)(81166006)(42186005)(31686004)(2351001)(36756003)(2870700001)(88552002)(117156001)(42262002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:SN1PR02MB2093; H:[192.168.1.2]; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjAyTUIyMDkzOzIzOktBVGpaZ0dQSFdGSEZ3ZlVwVUh4YjNwNG1O?= =?utf-8?B?Nm1FQnduWEdQMFJFKzdLOUdweGUycDNHeWYxd1VEOVgzSDRMbHY0bkRLZERV?= =?utf-8?B?eU1sbDhnRGpQSGEyeEQ4dnRGcCtGYkhUMkIvTTB0aVNiYmlZTjY4SFhUUjM4?= =?utf-8?B?UlU0aVd1TTV0WmxTdjFtVkVGR0h1c0pXWEh5REFOVElmNG4rS05mRUtndGI3?= =?utf-8?B?Y1lteGpDWXUxdG1wa29Nbit2RTZTRVpkZXRnOGEvQzZ5RUJCSDE2a2J0RWlK?= =?utf-8?B?RVJsRzhadjRaQ1hLelZOSG5tcDJSWWhEb3BlNzRyVCtlREp6dzhGanRRVENo?= =?utf-8?B?YWR2NE5xZHJ1WFRhdllSamZpdW5FYWxQSVF6Zk5iVDI2RmMvRFJ4TWFTV2Yy?= =?utf-8?B?YlJTWm1lNzYrVkJhaU12YW56ZlU2ZTV6SVJuSXY5cXpGVmcyL1R0WlJyTHFH?= =?utf-8?B?L1BOMi9qWThKdnQ4TEJHdm9zck1sQ0h4aUNUdGFZOFNVMi9UY3pTYTUrOXoz?= =?utf-8?B?K1hTZzg2dll5UVQrcXJQZmM5aWNJR2tqZ2wxOUtKTHhxRXdXRUlNQ0RWN2ZR?= =?utf-8?B?OENiaFVmMkZBWUFqVEVpZG5tRzVQMWFVQlZSZm1kZWJ3bVhmMU5ha24wNjFC?= =?utf-8?B?K1RKWmZCT2NtRW5yZlpSUUp4V09KQ1ltOTRuVHBvbHJUZVlSWUxxL0tzRWFs?= =?utf-8?B?dHBJTFNnYmc3ZkhveVZ5cGZzMmlyU3hwYnJVMDVoY254aTZRQzZBRk52SW1P?= =?utf-8?B?c1gxMURBdHhUckRsaWhwOWsxS29PT2F5dVFYdVZGTkVobHBEUEZqK1VvQ2ps?= =?utf-8?B?NC9YQndUSlVwVXlsSzFGT1FtSlVXcmRRUUtyVktDeWhwejRGWk43eGRGcHVI?= =?utf-8?B?MzZHUWduVURmN0p4Wm4yTXVFclNqdlhmc0YzVnA5ZU9CQkZLN1VETjFpd2ps?= =?utf-8?B?ZXRhMVJFS1hkLzArUjNWUzN5Uk9rWG16NFRiYmJZcVQyamdVNGRTQUV4WXpM?= =?utf-8?B?TWVUWkhZc05XZWRKcmU0d0dKWko5ZjdaYy85L3B4aEN6MXpHeFpvQ1JYUThV?= =?utf-8?B?enUrNXdRc0Y0ZldmdW1jdG15VDZQQWllOC9KYTkvQjh4bXFTdHZiMnFITUx5?= =?utf-8?B?NVdTN2YrdDM0eHdNb1QxNUJIaHhKZ3Eyd0lQNGZHNjFHZHdwc3V1K1Y4Q0M0?= =?utf-8?B?aXI5WmpkSE5WQXQyd0RFdVdpSXllMjVvVjBOZkFoOTJsYXdHU2ZnMWIweDNw?= =?utf-8?B?NFB2TmQwK3A5Um1rOHZvYWVHSVBIU212Z2VhWHFmbUo3Y1ludXFDS2hCMnlV?= =?utf-8?B?YXVFc3kzN1c0Yi9jVFZXV0lHYjhUN1pUaWxiSWpaa1RTV3grK0IvZm1KSVpr?= =?utf-8?B?VWh3WVZOai9yMUhIbVpZd0Mrbnp0elltR1ExejJ2QW93WE5XNlNuMnlMNm9v?= =?utf-8?B?Q0xoU0tJQjJ4S0VGeVBPeERDTnpEVnZQQTVPNC9xSjJxWVA2ZVY2WURiR0Rn?= =?utf-8?B?bFpSNFA3RmhwbjkxbmZhckFHV0VMTUQ4Z3ptV3VhL3JYNTRBNVorR2QzYjZU?= =?utf-8?Q?GOBH5WYCKX3fNhUzVfnVlbvArCov9Hy4ETDUSa6SM5tg=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR02MB2093; 6:BxQuCHjCYvjaJkzMVP5agX57/pLRLNz0gpOxBH7BMqYMRnOpLZjNsFCbTh9Y4Lgk1W3esGjSN3lL9OgbASSoILWAaOC+hlk+eWG34PCDMBaweTQMomy3ZLJIOorNJ/RYsQEkAMPiNY1j9pPPoEtfgTTukGK3PUaBlnK2wuYN/GGUbcgQKDrOiMQE07TnM6uSFBoA/YWV2iSz+AmvnGTlVH6dqxNbDjJJ/Bps0p3QJ46eSC+KCMvJhq3d0aQA1/iNsouZse/JJqUCUImhfCaGHJ91gtzUfojXOvhyPo7FHPBvKqBfCAbpQCd3DICFbmURm9hp9xjyrhmZKyBpDylL5roLdCfRyInrNm+dEZQnfrfuOEp1o60fFMmdnvtWhBz5xWyAwhn8KMjxxfb/6xGA6w==; 5:lLQP/QZgyzxrcgggjApmuXCiUgl8qf/I6fnb0L6KveQHW/5XZimZQo9InSE2YBUXnnTsP3rJL8+5l11owFe4HOK2o4tEgwOotXJYi/58PAd9IOxWdsVqtkb0U0M6DEpdWIagCHiEe7uEEO2ZCTiiwQ==; 24:VnakJ/pypg3CRm4VMBNMVs4pHfLKetxoWS1Y6JeZ5ZSr9ERR7QDXad+Wqp05iPSFli/KKLYVaubh+PitUpQu0ANgBpyfSIkMtTXWg0AvXOw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR02MB2093; 7:nhj1VnJJ3c1RLY329W0YR3MVUJ3RIQg9NXSgrNDjQ2OuRAD7i9fP8QGAREoslH6/1O208qPvZmCGosGVkL+C/hjUk2vFtomsZKW4yNM5B83NnIqqh0tFUMZnQMmUHoDxxF0C/JJoQUD+WYix4Wz7NhChl2xv0qN/bAVHeFLfJVsnU40PhImevMxbXWgGgWuA0MZsZ6apz6/zdIIDSjVEVx3+XhhECUyUoOa8lcIQVNBqnC6a4g1hHmA4V6mfRkRgjtPfO9gMDo4fwZ1XKAQVMJA3bvUx5sWFLxx/9asf13pRpx0Qrdn0tTkD+RWSvTTBxIOkQwQ/J8I80aK7L9QWUA==; 20:02+uZ3ViXdJMa4/mSZ5eAKWQe14F5CoV6KOezhWmhWI1IEH2Jogo7Cim15sNn7OgBL53DFGV/a/URmOr29ms2fBJdNqR4iuS5npKdJKDNZLp05goYRVCVN9Ltz4JOZIHmjO6+MUMslb+RJU54+VM7rTW4syDexY6jIb8kycDN40= X-OriginatorOrg: auburn.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2017 21:44:33.3805 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR02MB2093 When compiling with gcc-4.7 and earlier, with -pedantic but without -ansi, a warning is produced due to the braced group in the assert macro. This warning also occurs in the latest clang. In gcc >= 4.8, no warning is produced. Therefore, further restrict the usage of the braced group version of the macro to gcc 4.8 and later. This patch also fixes the warning in clang, since clang-3.9 sets the __GNUC_* version macros to mimic gcc 4.2.1 main.c: #include int main() { assert(1); } Without patched assert.h: $ gcc-4.8 -pedantic main.c $ gcc-4.7 -pedantic main.c main.c: In function ‘main’: main.c:2:14: warning: ISO C forbids braced-groups within expressions [-pedantic] $ gcc-4.4 -pedantic main.c main.c: In function ‘main’: main.c:2: warning: ISO C forbids braced-groups within expressions $ clang-3.9 -pedantic main.c main.c:2:14: warning: use of GNU statement expression extension [-Wgnu-statement-expression] int main() { assert(1); } ^ /usr/include/assert.h:95:6: note: expanded from macro 'assert' ({ \ ^ 1 warning generated. With patched assert.h: $ gcc-4.8 -pedantic main.c $ gcc-4.7 -pedantic main.c $ gcc-4.4 -pedantic main.c $ clang-3.9 -pedantic main.c --- assert/assert.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assert/assert.h b/assert/assert.h index 22f019537c..88dde76414 100644 --- a/assert/assert.h +++ b/assert/assert.h @@ -85,7 +85,7 @@ __END_DECLS /* When possible, define assert so that it does not add extra parentheses around EXPR. Otherwise, those added parentheses would suppress warnings we'd expect to be detected by gcc's -Wparentheses. */ -# if !defined __GNUC__ || defined __STRICT_ANSI__ +# if !(defined __GNUC__ && __GNUC_PREREQ(4,8)) || defined __STRICT_ANSI__ # define assert(expr) \ ((expr) \ ? __ASSERT_VOID_CAST (0) \