https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70878
Martin Liška <marxin at gcc dot gnu.org> 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 <marxin at gcc dot gnu.org> --- 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.