https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80150
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- The ICE started with r233108, before that: /home/brq/mpolacek/l.cc: In function ‘int main()’: /home/brq/mpolacek/l.cc:16:37: error: no matching function for call to ‘compare_functions(<unresolved overloaded function type>, <unresolved overloaded function type>, int&)’ compare_functions<int>(foo, foo, a); ^ /home/brq/mpolacek/l.cc:2:6: note: candidate: template<class R, class ... Args> bool compare_functions(R (*)(Args ...), R (*)(Args ...), Args ...) bool compare_functions(R(*funcA)(Args...), R(*funcB)(Args...), Args... args) { ^~~~~~~~~~~~~~~~~ /home/brq/mpolacek/l.cc:2:6: note: template argument deduction/substitution failed: /home/brq/mpolacek/l.cc:16:37: note: mismatched types ‘int’ and ‘float’ compare_functions<int>(foo, foo, a); ^ /home/brq/mpolacek/l.cc:16:37: note: could not resolve address from overloaded function ‘foo’ which I'm unsure about; clang++ compiles it fine.