# HG changeset patch
# User laurent
# Date 1323421417 -3600
# Node ID 8a04e93f9ef2e1429ce40eb9e392721488f8a5da
# Parent  f09a5ffe1edce10c700ccddbfd645f0cd562389c
Fixing bug in generated code for complex type external variable

diff -r f09a5ffe1edc -r 8a04e93f9ef2 lib/accessor.h
--- a/lib/accessor.h	Fri Dec 09 10:01:48 2011 +0100
+++ b/lib/accessor.h	Fri Dec 09 10:03:37 2011 +0100
@@ -73,15 +73,15 @@
 #define __GET_VAR(name, ...)\
 	name.value __VA_ARGS__
 #define __GET_EXTERNAL(name, ...)\
-	((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : *(name.value) __VA_ARGS__)
+	((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : (*(name.value)) __VA_ARGS__)
 #define __GET_LOCATED(name, ...)\
-	((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : *(name.value) __VA_ARGS__)
+	((name.flags & __IEC_FORCE_FLAG) ? name.fvalue __VA_ARGS__ : (*(name.value)) __VA_ARGS__)
 #define __GET_VAR_BY_REF(name, ...)\
 	((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &(name.value __VA_ARGS__))
 #define __GET_EXTERNAL_BY_REF(name, ...)\
-	((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &(*(name.value) __VA_ARGS__))
+	((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &((*(name.value)) __VA_ARGS__))
 #define __GET_LOCATED_BY_REF(name, ...)\
-	((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &(*(name.value) __VA_ARGS__))
+	((name.flags & __IEC_FORCE_FLAG) ? &(name.fvalue __VA_ARGS__) : &((*(name.value)) __VA_ARGS__))
 
 // variable setting macros
 #define __SET_VAR(prefix, name, new_value, ...)\
diff -r f09a5ffe1edc -r 8a04e93f9ef2 lib/iec_types_all.h
--- a/lib/iec_types_all.h	Fri Dec 09 10:01:48 2011 +0100
+++ b/lib/iec_types_all.h	Fri Dec 09 10:03:37 2011 +0100
@@ -97,6 +97,7 @@
 typedef struct {\
   type *value;\
   IEC_BYTE flags;\
+  type fvalue;\
 } __IEC_##type##_p;
 
 #define __DECLARE_ENUMERATED_TYPE(type, ...)\