lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 5 Apr 2022 14:23:31 +0200 From: Peter Zijlstra <peterz@...radead.org> To: Borislav Petkov <bp@...en8.de> Cc: linux-toolchains@...r.kernel.org, Michael Matz <matz@...e.de>, Richard Biener <rguenther@...e.de>, lkml <linux-kernel@...r.kernel.org> Subject: Re: older gccs and case labels producing integer constants On Tue, Apr 05, 2022 at 11:50:35AM +0200, Borislav Petkov wrote: > Hi folks, > > I'm starting to see failures like this on allmodconfig builds: > > sound/usb/midi.c: In function ‘snd_usbmidi_out_endpoint_create’: > sound/usb/midi.c:1389:2: error: case label does not reduce to an integer constant > case (((0xfc08) << 16) | (0x0101)): > ^~~~ > > (The case statement is a macro but it evaluates to what I have there) > > and that thing fails with > > $ gcc --version > gcc (SUSE Linux) 7.5.0 > > although it doesn't have any problems building with newer compilers. > > I'm presuming older gccs consider those case statements signed ints and > the following fixes it: > > case ((((unsigned int)0xfc08) << 16) | (0x0101)): > > and I guess we can whack the couple of occurrences but what I'm > wondering is why does this work with newer gccs? IIRC GCC-8 fixed a bunch of -wrapv issues. Could be this is one of them I suppose.
Powered by blists - more mailing lists