public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: reichelt@igpm.rwth-aachen.de To: gcc-gnats@gcc.gnu.org Cc: rveldema@cs.vu.nl Subject: middle-end/8502: wrong code generated for switch statement Date: Fri, 08 Nov 2002 03:16:00 -0000 [thread overview] Message-ID: <20021108111151.4159.qmail@sources.redhat.com> (raw) >Number: 8502 >Category: middle-end >Synopsis: wrong code generated for switch statement >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Fri Nov 08 03:16:00 PST 2002 >Closed-Date: >Last-Modified: >Originator: Volker Reichelt >Release: gcc 3.1, gcc 3.2, 3.2-branch >Organization: >Environment: i686-pc-linux-gnu >Description: Consider the following testcase: --------------------------snip here------------------------- bool foo (int i) { switch (i) { case 0: return false; case 1: return false; case 2: return false; case 3: return false; case 4: return false; } return false; } int main() { return 0; } --------------------------snip here------------------------- Compiling this with gcc 3.1, 3.2 or the 3.2-branch on i686-pc-linux-gnu I get the following error message: /tmp/ccii3YKY.o: In function `foo(int)': /tmp/ccii3YKY.o(.text+0x11): undefined reference to `.L8' collect2: ld returned 1 exit status The assembler code for the function "foo" is: .align 2 .globl _Z3fooi .type _Z3fooi,@function _Z3fooi: .LFB1: pushl %ebp .LCFI0: movl %esp, %ebp .LCFI1: cmpl $4, 8(%ebp) ja .L1 movl 8(%ebp), %eax sall $2, %eax movl .L8(%eax), %eax <--------- !!!!! .L1: movl $0, %eax popl %ebp ret .LFE1: .Lfe1: .size _Z3fooi,.Lfe1-_Z3fooi Note that the problem disappears with only four cases in the switch statement. The problem doesn't arise on the main trunk, though. Because this is a regression from 3.0.x, I rate the PR as "high priority". BTW, the PR is actually a distilled version of PR 6679 of R.S. Veldema, which is quite large and and slightly corrupted. Therefore, I closed PR 6679 and created this one. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted:
next reply other threads:[~2002-11-08 11:16 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2002-11-08 3:16 reichelt [this message] 2002-11-08 3:19 reichelt 2002-11-22 10:57 reichelt
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20021108111151.4159.qmail@sources.redhat.com \ --to=reichelt@igpm.rwth-aachen.de \ --cc=gcc-gnats@gcc.gnu.org \ --cc=rveldema@cs.vu.nl \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).