https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81224
Bug ID: 81224 Summary: ICE in -fsanitize=address w/ a register variable of a vector type Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: marxin at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- Starting from when -fsanitize=address was introduced, we ICE on: $ cat ice.i int a; int b () { register __attribute__ ((__vector_size__ (sizeof (int)))) int c asm("xmm0"); return c[a]; } $ gcc ice.i -c -fsanitize=address during RTL pass: expand ice.i: In function ‘b’: ice.i:6:11: internal compiler error: in expand_expr_addr_expr_1, at expr.c:7792 return c[a]; ~^~~ 0x859acf expand_expr_addr_expr_1 ../../gcc/expr.c:7792 0x859418 expand_expr_addr_expr_1 ../../gcc/expr.c:7830 0x84cb5a expand_expr_addr_expr ../../gcc/expr.c:7905 0x84cb5a expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:11058 0x85a2f3 store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool, tree_node*) ../../gcc/expr.c:5554 0x85baf7 expand_assignment(tree_node*, tree_node*, bool) ../../gcc/expr.c:5323 0x73af78 expand_gimple_stmt_1 ../../gcc/cfgexpand.c:3643 0x73af78 expand_gimple_stmt ../../gcc/cfgexpand.c:3741 0x73cfa7 expand_gimple_basic_block ../../gcc/cfgexpand.c:5745 0x742c86 execute ../../gcc/cfgexpand.c:6354 I'll take a look.