reverted back because of side effects


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@716 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1parser/asn1p_list.h b/libasn1parser/asn1p_list.h
index 9d5748c..d6a669a 100644
--- a/libasn1parser/asn1p_list.h
+++ b/libasn1parser/asn1p_list.h
@@ -39,9 +39,10 @@
 
 /* MSVC does not have typeof(), cannot prevent side effects! */
 #define	TQ_ADD(head, xel, field) do {			\
-	assert(TQ_NEXT((xel), field) == 0);		\
-        *(head)->tq_tail = (xel);			\
-        (head)->tq_tail = &TQ_NEXT((xel), field);	\
+	typeof(xel) __el = (xel);			\
+	assert(TQ_NEXT((__el), field) == 0);		\
+        *(head)->tq_tail = (__el);			\
+        (head)->tq_tail = &TQ_NEXT((__el), field);	\
 	} while(0)
 
 /*