compiler/libec: Fixed deletion of class:struct where value being deleted is modified...
[sdk] / compiler / bootstrap / libec / bootstrap / expression.c
index c2429e0..8a564ea 100644 (file)
@@ -4866,7 +4866,11 @@ case 229:
 {
 PopContext((*yyvaluep).context);
 FreeContext((*yyvaluep).context);
-(((*yyvaluep).context ? (__ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)(*yyvaluep).context) : 0, __ecereNameSpace__ecere__com__eSystem_Delete((*yyvaluep).context)) : 0), (*yyvaluep).context = 0);
+(((*yyvaluep).context ? __extension__ ({
+void * __ecerePtrToDelete = ((*yyvaluep).context);
+
+__ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
+}) : 0), (*yyvaluep).context = 0);
 }
 ;
 break;