]> git.gag.com Git - fw/sdcc/commitdiff
a CPOINTER can be used as a function
authorjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 8 Sep 2001 09:58:45 +0000 (09:58 +0000)
committerjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 8 Sep 2001 09:58:45 +0000 (09:58 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1241 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCicode.c
src/SDCCsymt.h

index 7ffaac40d1d9c231f827a45684ae888fff1ae5c4..cc43b873a255fa2d5e982405d9c99da4cd161d88 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2001-09-08    <johan@FRIJA>
+
+       * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
+
 2001-09-07    <johan@FRIJA>
 
        * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
index c5bc3f15eb8a77665fb0ac47d42c1598531d7ad5..393a6b20e631a84002b5a5dbfb8cdd052ae5e0a7 100644 (file)
@@ -2665,7 +2665,8 @@ geniCodeCall (operand * left, ast * parms,int lvl)
   sym_link *type, *etype;
   int stack = 0;
 
-  if (!IS_FUNC(OP_SYMBOL(left)->type)) {
+  if (!IS_FUNC(OP_SYMBOL(left)->type) && 
+      !IS_CODEPTR(OP_SYMBOL(left)->type)) {
     werror (E_FUNCTION_EXPECTED);
     return NULL;
   }
index fab6ac5cc3e9702f1cde0a1cd9b61f50c0ad599f..02206c009cad0115a83acae1d23d622a94bd0e8a 100644 (file)
@@ -329,6 +329,7 @@ symbol;
                                      DCL_TYPE(x) == UPOINTER  ))
 #define IS_PTR_CONST(x) (IS_PTR(x) && DCL_PTR_CONST(x))
 #define IS_FARPTR(x) (IS_DECL(x) && DCL_TYPE(x) == FPOINTER)
+#define IS_CODEPTR(x) (IS_DECL(x) && DCL_TYPE(x) == CPOINTER)
 #define IS_GENPTR(x) (IS_DECL(x) && DCL_TYPE(x) == GPOINTER)
 #define IS_FUNC(x)   (IS_DECL(x) && DCL_TYPE(x) == FUNCTION)
 #define IS_LONG(x)   (IS_SPEC(x) && x->select.s._long)