diff --git a/src/ca65/expr.c b/src/ca65/expr.c index 42b1a369b..33984610d 100644 --- a/src/ca65/expr.c +++ b/src/ca65/expr.c @@ -61,6 +61,7 @@ #include "studyexpr.h" #include "symbol.h" #include "symtab.h" +#include "target.h" #include "toklist.h" #include "ulabel.h" #include "macro.h" @@ -445,7 +446,7 @@ static ExprNode* FuncCapability (void) /* The pseudo function result is the logical AND of all capabilities ** given. */ - if (!CPUHasCap (Cap)) { + if (!CPUHasCap (Cap) && !TargetHasCap (Cap)) { Result = 0; } } diff --git a/src/common/target.c b/src/common/target.c index a12f69bf9..bb67ddf9a 100644 --- a/src/common/target.c +++ b/src/common/target.c @@ -37,6 +37,7 @@ #include /* common */ +#include "attrib.h" #include "chartype.h" #include "check.h" #include "target.h" @@ -302,3 +303,12 @@ const char* GetTargetName (target_t Target) /* Return the array entry */ return GetTargetProperties (Target)->Name; } + + + +int TargetHasCap (capability_t Cap attribute((unused))) +/* Check if the current target has the given capability */ +{ + /* Currently unused */ + return 0; +} diff --git a/src/common/target.h b/src/common/target.h index c5c8455a0..1dfa66ac7 100644 --- a/src/common/target.h +++ b/src/common/target.h @@ -39,6 +39,7 @@ /* common */ +#include "capability.h" #include "cpu.h" @@ -131,6 +132,9 @@ const TargetProperties* GetTargetProperties (target_t Target); const char* GetTargetName (target_t Target); /* Return the name of a target */ +int TargetHasCap (capability_t Cap); +/* Check if the current target has the given capability */ + /* End of target.h */