Message-ID: <001a01c1651f$dfc66fc0$4bd24dd5@piec> From: "Piotr Fusik"

To: Subject: gcc: switch() optimization Date: Sun, 4 Nov 2001 11:56:22 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1250" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 X-Virus-Scanned: by AMaViS perl-11 elektron Reply-To: djgpp AT delorie DOT com Consider following example: int main(int argc, char *argv[]) { switch (argc & 1) { case 0: return 10; case 1: return 20; } } gcc version 2.95.3 20010315/djgpp (release) with -O2 generates a redundant check for the range of (argc & 1). Same is for switch (x & 0xff) with all 256 cases. I'm unsure if it's DJGPP or gcc problem. If it's gcc's, maybe gcc 3.0.0 solves it? If so, when will it be available for DJGPP?