Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ericns1 at spirilis dot net
Target Milestone: ---
Created attachment 36313
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36313&action=edit
Files needed to reproduce t
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67529
Eric changed:
What|Removed |Added
Attachment #36313|0 |1
is obsolete|
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
--- 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 #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