Bug ID | 121 |
---|---|
Summary | ICE when initializing immutable char to void |
Product | GDC |
Version | 4.8.x |
Hardware | All |
OS | All |
Status | NEW |
Severity | minor |
Priority | Normal |
Component | gdc |
Assignee | ibuclaw@gdcproject.org |
Reporter | slavo5150@yahoo.com |
The following code... import std.stdio; immutable char c = void; void main() { writeln(c); } .. causes GDC to ICE: internal compiler error: in gimplify_init_constructor, at gimplify.c:4269 0x7b3be3 gimplify_init_constructor ../../gcc-4.8.2/gcc/gimplify.c:4269 0x7b445b gimplify_modify_expr_rhs ../../gcc-4.8.2/gcc/gimplify.c:4468 0x7b47af gimplify_modify_expr ../../gcc-4.8.2/gcc/gimplify.c:4861 0x7af1ab gimplify_expr(tree_node**, gimple_statement_d**, gimple_statement_d**, bool (*)(tree_node*), int) ../../gcc-4.8.2/gcc/gimplify.c:7193 0x7b0f86 gimplify_stmt(tree_node**, gimple_statement_d**) ../../gcc-4.8.2/gcc/gimplify.c:5725 0x7b1d25 gimplify_and_add ../../gcc-4.8.2/gcc/gimplify.c:370 0x7b1d25 internal_get_tmp_var ../../gcc-4.8.2/gcc/gimplify.c:636 0x7ae668 gimplify_expr(tree_node**, gimple_statement_d**, gimple_statement_d**, bool (*)(tree_node*), int) ../../gcc-4.8.2/gcc/gimplify.c:8023 0x7b329b gimplify_call_expr ../../gcc-4.8.2/gcc/gimplify.c:2669 0x7aec6d gimplify_expr(tree_node**, gimple_statement_d**, gimple_statement_d**, bool (*)(tree_node*), int) ../../gcc-4.8.2/gcc/gimplify.c:7164 0x7b0f86 gimplify_stmt(tree_node**, gimple_statement_d**) ../../gcc-4.8.2/gcc/gimplify.c:5725 0x7aedbb gimplify_statement_list ../../gcc-4.8.2/gcc/gimplify.c:1561 0x7aedbb gimplify_expr(tree_node**, gimple_statement_d**, gimple_statement_d**, bool (*)(tree_node*), int) ../../gcc-4.8.2/gcc/gimplify.c:7582 0x7b0f86 gimplify_stmt(tree_node**, gimple_statement_d**) ../../gcc-4.8.2/gcc/gimplify.c:5725 0x7b1652 gimplify_bind_expr ../../gcc-4.8.2/gcc/gimplify.c:1253 0x7aec4a gimplify_expr(tree_node**, gimple_statement_d**, gimple_statement_d**, bool (*)(tree_node*), int) ../../gcc-4.8.2/gcc/gimplify.c:7364 0x7b0f86 gimplify_stmt(tree_node**, gimple_statement_d**) ../../gcc-4.8.2/gcc/gimplify.c:5725 0x7aedbb gimplify_statement_list ../../gcc-4.8.2/gcc/gimplify.c:1561 0x7aedbb gimplify_expr(tree_node**, gimple_statement_d**, gimple_statement_d**, bool (*)(tree_node*), int) ../../gcc-4.8.2/gcc/gimplify.c:7582 0x7b0f86 gimplify_stmt(tree_node**, gimple_statement_d**) ../../gcc-4.8.2/gcc/gimplify.c:5725 I was creating use cases to try and figure out what section the compiler puts variables in when I found this bug. I don't know why anyone would want to do such a thing, but the compiler shouldn't crash. DMD 2.065 handles it fine.