diff options
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/regfile.hh | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/sparc/regfile.hh b/arch/sparc/regfile.hh index 744d51771..5169a332f 100644 --- a/arch/sparc/regfile.hh +++ b/arch/sparc/regfile.hh @@ -140,7 +140,16 @@ namespace SparcISA DPRINTF(Sparc, "Now using %s globals", useAlt ? "alternate" : "regular"); regView[Globals] = useAlt ? altGlobals : regGlobals; - offset[Globals] = useAlt ? AltGlobalOffset : RegGlobalOffset; + + // You have not included an out-of-class definition of your static + // members. See [9.4.2]/4 and about a billion gcc bug reports. If + // statements get around the problem through some magic, and than + // seems nicer that putting a definition of them in a c file + // somewhere. + if (useAlt) + offset[Globals] = AltGlobalOffset; + else + offset[Globals] = RegGlobalOffset; } void serialize(std::ostream &os); |