This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c/3665: ICE in merge_blocks_move_predecessor_nojumps, at flow.c:2341
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c/3665: ICE in merge_blocks_move_predecessor_nojumps, at flow.c:2341
- From: Franz dot Sirl-kernel at lauterbach dot com
- Date: 12 Jul 2001 21:14:21 -0000
- Cc: Andrew Haley <aph at cambridge dot redhat dot com>
- Reply-To: Franz dot Sirl-kernel at lauterbach dot com
>Number: 3665
>Category: c
>Synopsis: ICE in merge_blocks_move_predecessor_nojumps, at flow.c:2341
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Thu Jul 12 14:16:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Franz.Sirl-kernel@lauterbach.com
>Release: gcc-3.0, current gcc-3.0.1, current gcc-3.1
>Organization:
>Environment:
powerpc-linux-gnu, arm-linux-gnu
>Description:
The folllowing code snippet lets gcc-3.0 and gcc-3.0.1 ICE like that:
[fsirl@enzo:/cvsx/rawhide/BUILD/unixODBC-2.0.7/Drivers/template]$ gcc -O2 -fPIC bug.c
bug.c: In function `SQLSetConnectOption':
bug.c:43: Internal compiler error in merge_blocks_move_predecessor_nojumps, at flow.c:2341
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
With current gcc-3.1 CVS the ICE is different:
[fsirl@entropy:~]$ ~/obj/gccm/gcc/stage1/xgcc -B ~/obj/gccm/gcc/stage1/ -O2 -fPIC -c flowbug.c
flowbug.c: In function `SQLSetConnectOption':
flowbug.c:42: Return not followed by barrier
(jump_insn 152 151 71 (parallel[
(return)
(use (reg:SI 65 lr))
] ) -1 (nil)
(nil))
flowbug.c:42: Internal compiler error in verify_flow_info, at flow.c:8082
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
gcc-2.95.3 compiles this just fine, so this is a regression.
>How-To-Repeat:
compile with -O2 -fPIC:
typedef struct tDRVDBC
{
void * hLog;
} *HDRVDBC;
int logPushMsg( void* hLog, char *pszModule, char *pszFunctionName, int nLine, int nSeverity, int nCode, char *pszMsg );
signed short int SQLSetConnectOption(void * hDrvDbc,
unsigned short int nOption,
unsigned long int vParam)
{
HDRVDBC hDbc = (HDRVDBC)hDrvDbc;
if ( hDbc == 0 )
return (-2);
switch ( nOption )
{
case 106:
case 107:
case 110:
case 104:
switch ( vParam )
{
case 1UL:
case 0UL:
default:
;
}
break;
case 105:
case 101:
case 102:
default:
;
}
logPushMsg( hDbc->hLog, "SQLSetConnectOption.c", "SQLSetConnectOption.c", 49, 1, 1,
"SQL_SUCCESS_WITH_INFO Function not fully implemented" );
return 1;
}
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: