- Fixed Clang errors with delayed templates on.

This commit is contained in:
Edoardo Prezioso 2016-11-11 15:22:53 +01:00
parent 5e8c8b80c9
commit 8d01ba7733
2 changed files with 8 additions and 6 deletions

View file

@ -36,6 +36,7 @@
#include <stdlib.h> #include <stdlib.h>
#include "doomtype.h" #include "doomtype.h"
#include "i_system.h"
class PClass; class PClass;
@ -202,8 +203,8 @@ protected: \
PClass *cls::StaticType() const { return RegistrationInfo.MyClass; } PClass *cls::StaticType() const { return RegistrationInfo.MyClass; }
#define IMPLEMENT_CLASS(cls, isabstract, ptrs, fields, vmexport) \ #define IMPLEMENT_CLASS(cls, isabstract, ptrs, fields, vmexport) \
_X_CONSTRUCTOR_##isabstract##(cls) \ _X_CONSTRUCTOR_##isabstract(cls) \
_IMP_PCLASS(cls, _X_POINTERS_##ptrs##(cls), _X_ABSTRACT_##isabstract##(cls), _X_FIELDS_##fields##(cls), _X_VMEXPORT_##vmexport##(cls)) _IMP_PCLASS(cls, _X_POINTERS_##ptrs(cls), _X_ABSTRACT_##isabstract(cls), _X_FIELDS_##fields(cls), _X_VMEXPORT_##vmexport(cls))
// Taking the address of a field in an object at address 1 instead of // Taking the address of a field in an object at address 1 instead of
// address 0 keeps GCC from complaining about possible misuse of offsetof. // address 0 keeps GCC from complaining about possible misuse of offsetof.
@ -644,15 +645,15 @@ private:
public: public:
void Destroy() void Destroy()
{ {
ExportedNatives<T>::Get()->Destroy<void, T>(this); ExportedNatives<T>::Get()->template Destroy<void, T>(this);
} }
void Tick() void Tick()
{ {
ExportedNatives<T>::Get()->Tick<void, T>(this); ExportedNatives<T>::Get()->template Tick<void, T>(this);
} }
AInventory *DropInventory(AInventory *item) AInventory *DropInventory(AInventory *item)
{ {
return ExportedNatives<T>::Get()->DropInventory<AInventory *, T>(this, item); return ExportedNatives<T>::Get()->template DropInventory<AInventory *, T>(this, item);
} }
}; };

View file

@ -2244,8 +2244,9 @@ FxExpression *ZCCCompiler::SetupActionFunction(PClass *cls, ZCC_TreeNode *af)
{ {
if (fc->Parameters == nullptr && !(afd->Variants[0].Flags & VARF_Virtual)) if (fc->Parameters == nullptr && !(afd->Variants[0].Flags & VARF_Virtual))
{ {
FArgumentList argumentlist;
// We can use this function directly without wrapping it in a caller. // We can use this function directly without wrapping it in a caller.
return new FxVMFunctionCall(new FxSelf(*af), afd, FArgumentList(), *af, false); return new FxVMFunctionCall(new FxSelf(*af), afd, argumentlist, *af, false);
} }
} }
else else