| Summary: | [4.0 Regression] ICE in get_parm_info with werid attribute | ||
|---|---|---|---|
| Product: | gcc | Reporter: | Drea Pinski <pinskia> |
| Component: | c | Assignee: | Not yet assigned to anyone <unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | gcc-bugs |
| Priority: | P2 | Keywords: | ice-on-invalid-code |
| Version: | 4.0.0 | ||
| Target Milestone: | 4.0.0 | ||
| Host: | Target: | ||
| Build: | Known to work: | 3.4.3 | |
| Known to fail: | 4.0.0 | Last reconfirmed: | 2004-10-30 22:57:19 |
Confirmed. : Search converges between 2004-03-01-trunk (#446) and 2004-04-01-trunk (#447). We have a function_decl at this point for vector_size. The C++ front-end rejects the code out right. Subject: Re: [4.0 Regression] ICE in get_parm_info with werid
attribute
On Mon, 1 Nov 2004, pinskia at gcc dot gnu dot org wrote:
> The C++ front-end rejects the code out right.
But the bug can be triggered on valid C90 code:
int f (int [sizeof(g())]);
I'm now looking at fixing it.
Subject: Bug 18239 CVSROOT: /cvs/gcc Module name: gcc Changes by: jsm28@gcc.gnu.org 2004-11-01 19:49:56 Modified files: gcc : ChangeLog c-decl.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/gcc.dg: parm-impl-decl-1.c parm-impl-decl-2.c Log message: PR c/18239 * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst parameter declarations. testsuite: * gcc.dg/parm-impl-decl-1.c, gcc.dg/parm-impl-decl-2.c: New tests. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.6123&r2=2.6124 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-decl.c.diff?cvsroot=gcc&r1=1.605&r2=1.606 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4530&r2=1.4531 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/parm-impl-decl-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/parm-impl-decl-2.c.diff?cvsroot=gcc&r1=NONE&r2=1.1 Fixed, JSM thanks for fixing this. |
int foo (int __attribute__ ((__mode__ (vector_size(8)))) i) { return (long long) i; }