Fix some GCC ODR warnings

struct GekkoOPTemplate was implemented differently in different
compilation units, which breaks the ODR and could end up causing issues
as symbols exported from one compilation unit could end up being used by
another even if they have different implementations.

This puts them in an anonymous namespace, restricting any generated
symbols to the single compilation unit.
This commit is contained in:
Jonathan Hamilton 2017-06-29 12:21:32 -07:00
parent c29c1f92af
commit e66e034419
3 changed files with 9 additions and 0 deletions

View File

@ -8,12 +8,15 @@
#include "Core/PowerPC/Interpreter/Interpreter.h"
#include "Core/PowerPC/PPCTables.h"
namespace
{
struct GekkoOPTemplate
{
int opcode;
Interpreter::Instruction Inst;
GekkoOPInfo opinfo;
};
}
// clang-format off
static GekkoOPInfo unknownopinfo = { "unknown_instruction", OPTYPE_UNKNOWN, FL_ENDBLOCK, 0, 0, 0, 0 };

View File

@ -32,11 +32,14 @@ void Jit64::DynaRunTable63(UGeckoInstruction _inst)
(this->*dynaOpTable63[_inst.SUBOP10])(_inst);
}
namespace
{
struct GekkoOPTemplate
{
int opcode;
Jit64::Instruction Inst;
};
}
const GekkoOPTemplate primarytable[] = {
{4, &Jit64::DynaRunTable4}, // RunTable4

View File

@ -39,12 +39,15 @@ void JitArm64::DynaRunTable63(UGeckoInstruction inst)
(this->*dynaOpTable63[inst.SUBOP10])(inst);
}
namespace
{
struct GekkoOPTemplate
{
int opcode;
_Instruction Inst;
// GekkoOPInfo opinfo; // Doesn't need opinfo, Interpreter fills it out
};
}
constexpr GekkoOPTemplate primarytable[] = {
{4, &JitArm64::DynaRunTable4}, // RunTable4