https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79783
Bug ID: 79783 Summary: [7 Regression] ICE on valid C++ with -fsanitize=address Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned 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 Target Milestone: --- Ok, after creating many issues for others, I've just found one mine: $ cat ~/Programming/testcases/ice.C struct a { static void b (const char &) { } }; class c { struct C { C (char); } e; public: c () : e (0) { a::b (char()); } }; template <typename d> class f { virtual d h () const; }; template <typename d> d f<d>::h () const { c g; } main () { f<int> i; } ./xg++ -B. -O2 -fsanitize=address -c -fno-tree-dce ~/Programming/testcases/ice.C -c /home/marxin/Programming/testcases/ice.C: In member function ‘d f<d>::h() const [with d = int]’: /home/marxin/Programming/testcases/ice.C:24:1: internal compiler error: Segmentation fault f<d>::h () const ^~~~ 0x11ceeee crash_signal ../../gcc/toplev.c:337 0x1524b0b copy_node_stat(tree_node*) ../../gcc/tree.c:1136 0x11f3dc4 create_asan_shadow_var ../../gcc/asan.c:3082 0x11f3fa9 asan_expand_poison_ifn(gimple_stmt_iterator*, bool*, hash_map<tree_node*, tree_node*, simple_hashmap_traits<default_hash_traits<tree_node*>, tree_node*> >&) ../../gcc/asan.c:3116 0x12074f1 execute ../../gcc/sanopt.c:939