dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnet/cscc/c c_lvalue.tc,1.11,1.12


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/cscc/c c_lvalue.tc,1.11,1.12
Date: Wed, 25 Jun 2003 03:07:08 -0400

Update of /cvsroot/dotgnu-pnet/pnet/cscc/c
In directory subversions:/tmp/cvs-serv23528/cscc/c

Modified Files:
        c_lvalue.tc 
Log Message:


ILNode_CDeref: remove the '*' dereference layer if the argument
is a function pointer, so that "(*f)()" works.


Index: c_lvalue.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/c/c_lvalue.tc,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -r1.11 -r1.12
*** c_lvalue.tc 5 Nov 2002 23:58:27 -0000       1.11
--- c_lvalue.tc 25 Jun 2003 07:07:06 -0000      1.12
***************
*** 1287,1290 ****
--- 1287,1296 ----
        /* Perform semantic analysis on the pointer value */
        value = ILNode_CSemAnalysis(node->expr, info, &(node->expr), stmtLevel);
+       if(CSemIsRValue(value) && CTypeIsFunctionPtr(CSemGetType(value)))
+       {
+               /* Remove the dereference from a function pointer expression */
+               *parent = node->expr;
+               return value;
+       }
        if(!CSemIsRValue(value) || !CTypeIsPointer(CSemGetType(value)))
        {





reply via email to

[Prev in Thread] Current Thread [Next in Thread]