https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78208
Bug ID: 78208 Summary: Compile-time hog with -fsanitize=null with operator overloading Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: mpolacek 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: --- // { dg-do compile } // { dg-options "-fsanitize=null" } class S { virtual void foo () = 0; }; struct T { T &operator << (const char *s); }; T t; void S::foo () { t << "a" << "b" << "c" << "d" << "e" << "f" << "g" << "h" << "i" << "j" << "k" << "l" << "m" << "n" << "o" << "p" << "q" << "r" << "s" << "t" << "u" << "v" << "w" << "z"; } generates insane amount of expressions in quadratic fashion. I think we shouldn't instrument CALL_EXPR_OPERATOR_SYNTAX.