[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_grammar.y,1.43,1.44 cs_d
From: |
Gopal.V <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_grammar.y,1.43,1.44 cs_defs.tc,1.9,1.10 cs_misc.tc,1.11,1.12 |
Date: |
Thu, 12 Dec 2002 11:59:57 -0500 |
Update of /cvsroot/dotgnu-pnet/pnet/cscc/csharp
In directory subversions:/tmp/cvs-serv20184/cscc/csharp
Modified Files:
cs_grammar.y cs_defs.tc cs_misc.tc
Log Message:
Filter destructor calls for System.Object
Index: cs_grammar.y
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_grammar.y,v
retrieving revision 1.43
retrieving revision 1.44
diff -C2 -r1.43 -r1.44
*** cs_grammar.y 10 Dec 2002 23:08:59 -0000 1.43
--- cs_grammar.y 12 Dec 2002 16:59:54 -0000 1.44
***************
*** 3274,3279 ****
by wrapping the method body with a try block
whose
finally clause always calls its parent */
! body = ILNode_InvocationExpression_create
!
(ILNode_BaseAccess_create(name), 0);
body = ILNode_Try_create
($6, 0,
ILNode_FinallyClause_create(body));
--- 3274,3282 ----
by wrapping the method body with a try block
whose
finally clause always calls its parent */
! /* Note: BaseDestructor filters out these calls
for
! System.Object class */
! body = ILNode_BaseDestructor_create(
!
ILNode_InvocationExpression_create
!
(ILNode_BaseAccess_create(name), 0));
body = ILNode_Try_create
($6, 0,
ILNode_FinallyClause_create(body));
Index: cs_defs.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_defs.tc,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -r1.9 -r1.10
*** cs_defs.tc 10 Dec 2002 23:08:59 -0000 1.9
--- cs_defs.tc 12 Dec 2002 16:59:54 -0000 1.10
***************
*** 146,149 ****
--- 146,153 ----
ILNode *stmt;
}
+ %node ILNode_BaseDestructor ILNode_Dummy =
+ {
+ ILNode *destructor;
+ }
/*
Index: cs_misc.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_misc.tc,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -r1.11 -r1.12
*** cs_misc.tc 10 Dec 2002 00:16:04 -0000 1.11
--- cs_misc.tc 12 Dec 2002 16:59:54 -0000 1.12
***************
*** 613,615 ****
--- 613,639 ----
return value;
}
+ ILNode_SemAnalysis(ILNode_BaseDestructor)
+ {
+ ILNode_MethodDeclaration *caller;
+ ILType *type;
+
+ caller= info->currentMethod;
+ if(!caller)
+ {
+ CCErrorOnLine(yygetfilename(node), yygetlinenum(node),
+ "cannot call base destructors outside a method ");
+ return CSSemValueDefault;
+ }
+
+ type = ILType_FromClass(ILMethod_Owner(caller->methodInfo));
+ if(ILTypeIsObjectClass(type))
+ {
+ return CSSemValueDefault;
+ }
+ return ILNode_SemAnalysis(node->destructor,info,&(node->destructor));
+ }
+ ILNode_GenDiscard(ILNode_BaseDestructor)
+ {
+ ILNode_GenDiscard(node->destructor,info);
+ }
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_grammar.y,1.43,1.44 cs_defs.tc,1.9,1.10 cs_misc.tc,1.11,1.12,
Gopal.V <address@hidden> <=