public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/42310]  New: ICE on converting target-dependent PSImode variable
@ 2009-12-06 16:44 lyudalev at gmail dot com
  2009-12-06 18:03 ` [Bug c/42310] " jsm28 at gcc dot gnu dot org
  0 siblings, 1 reply; 2+ messages in thread
From: lyudalev at gmail dot com @ 2009-12-06 16:44 UTC (permalink / raw)
  To: gcc-bugs

The exact version of GCC: 4.4.1 

The system type: Linux version 2.6.9-67.EL (Red Hat 3.4.6-8)

The options given when GCC was configured/built: ../../gcc/configure
--target=testtarget --prefix=/usr/local/testtarget --enable-target-optspace
--enable-checking --disable-nls --enable-languages=c,c++
Thread model: single

The complete command line that triggers the bug: testtarget-gcc -c loop.c

I'm trying to define a nonstandard type for 12-bit scalar variables based on a
target-dependent PSI mode.

In my backend's testtarget-modes.def I have:
  PARTIAL_INT_MODE (SI);

In my backend's testtarget_init_builtins() function (TARGET_INIT_BUILTINS) I
have the following:
  /* Create builtin type for 12-bit integer numbers (partial int) */
  tree t = make_unsigned_type (9);
  (*lang_hooks.types.register_builtin_type) (t, "mybit12_t");
  SET_TYPE_MODE (t, PSImode);

the compiler output:
testtarget-gcc: Internal error: Segmentation fault (program cc1)
Please submit a full bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

The resulting gcc compiler crashes (ICE) when it tries to convert any integer
into my new type.
I tried to debug it and what I see is that it goes back and forth until the
stack is exhausted between two functions: convert and convert_to_integer:

#0  convert_to_integer (type=0xb7eb20d0, expr=0xb7e3caf0) at
../../../gcc/gcc/convert.c:389
#1  0x08079974 in convert (type=0xb7eb20d0, expr=0xb7e3caf0) at
../../../gcc/gcc/c-convert.c:101
#2  0x08080edc in convert_and_check (type=0xb7eb20d0, expr=0xb7e3caf0) at
../../../gcc/gcc/c-common.c:1812
#3  0x08068c5c in convert_for_assignment (type=0xb7eb20d0, rhs=0xb7e3caf0,
errtype=ic_assign, fundecl=0x0, function=0x0, parmnum=0) at
../../../gcc/gcc/c-typeck.c:4212
#4  0x080720b6 in build_modify_expr (location=1619, lhs=0xb7ec0000,
modifycode=NOP_EXPR, rhs=0xb7e3caf0) at ../../../gcc/gcc/c-typeck.c:3948
#5  0x080a984c in c_parser_expr_no_commas (parser=0xb7ebe0fc, after=0x0) at
../../../gcc/gcc/c-parser.c:4421
#6  0x080a9914 in c_parser_expression (parser=0xb7e3caf0) at
../../../gcc/gcc/c-parser.c:5664
#7  0x080af9fd in c_parser_for_statement (parser=0xb7ebe0fc) at
../../../gcc/gcc/c-parser.c:4101
#8  0x080a63de in c_parser_statement_after_labels (parser=0xb7ebe0fc) at
../../../gcc/gcc/c-parser.c:3700
#9  0x080a71b5 in c_parser_compound_statement_nostart (parser=0xb7ebe0fc) at
../../../gcc/gcc/c-parser.c:3470
#10 0x080aec1b in c_parser_compound_statement (parser=0xb7ebe0fc) at
../../../gcc/gcc/c-parser.c:3318
#11 0x080af1e7 in c_parser_declaration_or_fndef (parser=0xb7ebe0fc, fndef_ok=1
'\001', empty_ok=1 '\001', nested=0 '\0', start_attr_ok=Variable
"start_attr_ok" is not available.
) at ../../../gcc/gcc/c-parser.c:1307
#12 0x080b0e95 in c_parser_external_declaration (parser=0xb7ebe0fc) at
../../../gcc/gcc/c-parser.c:1076
#13 0x080b1c79 in c_parse_file () at ../../../gcc/gcc/c-parser.c:979
#14 0x0809af6c in c_common_parse_file (set_yydebug=0) at
../../../gcc/gcc/c-opts.c:1252
#15 0x0832a409 in toplev_main (argc=12, argv=0xbff91014) at
../../../gcc/gcc/toplev.c:970
#16 0x080bddb7 in main (argc=12, argv=0xbff91014) at ../../../gcc/gcc/main.c:35

The preprocessed file that triggers the bug:
int main (int argc, char *argv[]) {
  mybit12_t i;
  for (i = 0; i < 20; i++)
    printf ("%d", i);
  return 0;
}


-- 
           Summary: ICE on converting target-dependent PSImode variable
           Product: gcc
           Version: 4.4.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: lyudalev at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42310


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug c/42310] ICE on converting target-dependent PSImode variable
  2009-12-06 16:44 [Bug c/42310] New: ICE on converting target-dependent PSImode variable lyudalev at gmail dot com
@ 2009-12-06 18:03 ` jsm28 at gcc dot gnu dot org
  0 siblings, 0 replies; 2+ messages in thread
From: jsm28 at gcc dot gnu dot org @ 2009-12-06 18:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from jsm28 at gcc dot gnu dot org  2009-12-06 18:03 -------
Do not report bugs in modified versions of GCC here (for example,
versions with a target you have added).  Bug reports must be reproducible
using GCC built from unmodified FSF sources, without needing any
patches (which in this case you have not provided) applied.  If you think
there is a bug which is latent with all targets supported in the FSF
sources, send a patch with detailed explanation to gcc-patches.


-- 

jsm28 at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42310


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-12-06 18:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-06 16:44 [Bug c/42310] New: ICE on converting target-dependent PSImode variable lyudalev at gmail dot com
2009-12-06 18:03 ` [Bug c/42310] " jsm28 at gcc dot gnu dot org

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).