https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67529
Paolo Carlini changed:
What|Removed |Added
Severity|critical|normal
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67529
DJ Delorie changed:
What|Removed |Added
CC||dj at redhat dot com
--- Comment #5 from DJ
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67529
--- Comment #4 from Eric ---
Okay, I think I've figured out what I'm looking at here.
The inheritance has to do with the use of virtual functions - so the JSR vs BSR
argument in here is a red herring, overridden virtual functions use JSR because
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67529
--- Comment #3 from Eric ---
Further clarifying, creating a whole new function "void check2(void)" inside
MyTemplate which did *not* exist as a virtual function inside MyTemplateParent
produces correct code when begin(uint8_t) tries to call it:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67529
--- Comment #2 from Eric ---
A little more sleuthing, using --save-temps -dP...
The "inherited", bug-ridden case has the following before JSR R10:
;(call_insn 16 15 19 (parallel [
;(call (mem:QI (reg/f:SI 10 r10 [orig:25 D.2187 ]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67529
Eric changed:
What|Removed |Added
Attachment #36313|0 |1
is obsolete|