[Top][All Lists]
[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)))
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/cscc/c c_lvalue.tc,1.11,1.12,
Rhys Weatherley <address@hidden> <=