Path: utzoo!utgpu!watmath!uunet!cs.utexas.edu!ut-emx!dell!raid.dell.com!james From: james@raid.dell.com (James Van Artsdalen) Newsgroups: gnu.gcc.bug Subject: gcc 1.36 i386v bug Message-ID: <4236@dell.dell.com> Date: 14 Nov 89 21:45:29 GMT Sender: news@dell.dell.com Reply-To: james@raid.dell.com (James Van Artsdalen) Distribution: gnu Organization: Institute for Applied Cosmology Lines: 123 config.gcc i386v. If the following file is compiled by gcc without optimization, gcc aborts. If any short in struct a, or any local int in k(), is deleted, gcc gets a segmentation fault. If f() or k() are removed, gcc does not abort or get a fault. ----- struct a { short b; short c; short d; short e; }; f() { struct { struct a g, h, i; } j; } int k() { int l; int m; int n; struct a *o; struct { struct a p, q, r; } s; } ----- raid:/usr/local/src/gcc-1.36/i386> gdb cc1 GDB 3.3, Copyright (C) 1989 Free Software Foundation, Inc. There is ABSOLUTELY NO WARRANTY for GDB; type "info warranty" for details. GDB is free software and you are welcome to distribute copies of it under certain conditions; type "info copying" to see the conditions. Reading symbol data from /usr/local/src/gcc-1.36/i386/cc1...done. Breakpoint 1 at 0x73160 Type "help" for a list of commands. (gdb) run -version q.i Starting program: /usr/local/src/gcc-1.36/i386/cc1 -version q.i GNU C version 1.36 (80386, ATT syntax) compiled by GNU C version 1.36. default target switches: -m80387 f k Bpt 1, 0x73160 in abort () (gdb) bt #0 0x73160 in abort () #1 0x1ec5d in convert_move (to=(rtx) 0x40c5e0, from=(rtx) 0xce, unsignedp=0) (expr.c line 601) #2 0x2023c in store_expr (exp=(union tree_node *) 0x40c3ac, target=(rtx) 0x40c5e0, suggest_reg=0, 28) (expr.c line 1851) #3 0x20d40 in expand_expr (exp=(union tree_node *) 0x40c5c4, target=(rtx) 0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL) (expr.c line 2268) #4 0x19066 in variable_size () #5 0x19e13 in layout_type () #6 0xc071 in finish_struct () #7 0x46dd in yyparse () #8 0x139ba in compile_file (2147482978) #9 0x1503d in main (Error reading memory address 0x253bd82a: I/O error (5). (gdb) fr 1 #1 0x1ec5d in convert_move (to=(rtx) 0x40c5e0, from=(rtx) 0xce, unsignedp=0) (expr.c line 601) 601 abort (); (gdb) list 596 #endif 597 abort (); 598 } 599 600 /* Mode combination is not recognized. */ 601 abort (); 602 } 603 604 /* Return an rtx for a value that would result 605 from converting X to mode MODE. (gdb) p to $1 = (rtx) 0x40c5e0 (gdb) pr (reg:L 10) (gdb) p from $2 = (rtx) 0xce (gdb) info locals to = (rtx) 0x40c5e0 from = (rtx) 0xce (gdb) fr 2 #2 0x2023c in store_expr (exp=(union tree_node *) 0x40c3ac, target=(rtx) 0x40c5e0, suggest_reg=0, 28) (expr.c line 1851) 1851 convert_move (target, temp, unsignedp); (gdb) info locals unsignedp = 0 temp = (rtx) 0xce dont_return_target = 0 exp = (union tree_node *) 0x40c3ac target = (rtx) 0x40c5e0 (gdb) p target $3 = (rtx) 0x40c5e0 (gdb) pr (reg:L 10) (gdb) fr 3 #3 0x20d40 in expand_expr (exp=(union tree_node *) 0x40c5c4, target=(rtx) 0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL) (expr.c line 2268) 2268 store_expr (TREE_OPERAND (exp, 0), reg, 0); (gdb) info locals reg = (rtx) 0x40c5e0 op0 = (rtx) 0x40c578 op1 = (rtx) 0x0 temp = (rtx) 0x0 type = (union tree_node *) 0xfffffff4 mode = MAX_MACHINE_MODE code = SAVE_EXPR this_optab = (optab) 0x72 negate_1 = 91391 subtarget = (rtx) 0x0 original_target = (rtx) 0x0 ignore = 0 exp = (union tree_node *) 0x40c5c4 (gdb) p reg $4 = (rtx) 0x40c5e0 (gdb) pr (reg:L 10) (gdb) p op0 $5 = (rtx) 0x40c578 (gdb) pr (L (nil) NOTE_INSN_FUNCTION_BEGswitch format wrong in rtl.print_rtx(). format was: t. Bpt 1, 0x73160 in abort (4220604, 117638, 116) Cannot continue previously requested operation. Unable to restore previously selected frame. (gdb) -- James R. Van Artsdalen james@raid.dell.com "Live Free or Die" DCC Corporation 9505 Arboretum Blvd Austin TX 78759 512-338-8789