https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70878
Martin Liška changed:
What|Removed |Added
Keywords||ice-on-valid-code
Target|spu |spu, x86_64-linux-gnu
CC||mpolacek at gcc dot gnu.org
Known to fail||5.4.0, 6.3.0, 7.0
--- Comment #1 from Martin Liška ---
Started with r216099, where -fsanitize=object-size was added.
I was able to come up with x86_64-linux-gnu test-case:
$ cat pr70878.c
void * sbrk ()
{
volatile register unsigned int sp_r1 __asm__ ("ebx");
return __builtin_strcat (sp_r1, 0);
}
$ gcc pr70878.c -fsanitize=object-size
pr70878.c: In function ‘sbrk’:
pr70878.c:4:27: warning: passing argument 1 of ‘__builtin_strcat’ makes pointer
from integer without a cast [-Wint-conversion]
return __builtin_strcat (sp_r1, 0);
^
pr70878.c:4:27: note: expected ‘char *’ but argument is of type ‘unsigned int’
pr70878.c:1:8: internal compiler error: in expand_expr_addr_expr_1, at
expr.c:7790
void * sbrk ()
^~~~
0x9ba0e7 expand_expr_addr_expr_1
../../gcc/expr.c:7790
0x9ad6fb expand_expr_addr_expr
../../gcc/expr.c:7903
0x9ad6fb expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc/expr.c:11047
0x9c42b0 expand_expr
../../gcc/expr.h:276
0x9c42b0 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier)
../../gcc/expr.c:8301
0x89bd92 expand_gimple_stmt_1
../../gcc/cfgexpand.c:3676
0x89bd92 expand_gimple_stmt
../../gcc/cfgexpand.c:3737
0x89e53e expand_gimple_basic_block
../../gcc/cfgexpand.c:5744
0x8a4606 execute
../../gcc/cfgexpand.c:6357
I'll try to take a look.