https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95311
David Binderman <dcb314 at hotmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dcb314 at hotmail dot com --- Comment #2 from David Binderman <dcb314 at hotmail dot com> --- This C++ code seems to do something similar: class a { virtual long b() const; }; class c : a { public: long b() const; }; class d : c { long e(); }; long d::e() { b(); } $ /home/dcb/gcc/results/bin/g++ -c -w -fsanitize=undefined -std=c++11 bug616.cc bug616.cc: In member function ‘long int d::e()’: bug616.cc:11:20: internal compiler error: tree check: expected class ‘expression ’, have ‘declaration’ (parm_decl) in tree_operand_check, at tree.h:3794 11 | long d::e() { b(); } | ^ 0x124fe0a tree_class_check_failed(tree_node const*, tree_code_class, char const* , int, char const*) ../../trunk.git/gcc/tree.c:9755 0x6b915d cp_ubsan_maybe_instrument_member_call(tree_node*) ../../trunk.git/gcc/cp/cp-ubsan.c:0