summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaEra2.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-10-10 08:58:18 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-10-10 08:58:18 -0700
commitccb5bb34d73f34461abe180f36b3c2b9e45cc933 (patch)
tree74342a3dc5291fa48cff9a792df8c6791833dd46 /src/aig/gia/giaEra2.c
parentca9eca3b227ae3f8a60038ba9c295f5383a6826d (diff)
downloadabc-ccb5bb34d73f34461abe180f36b3c2b9e45cc933.tar.gz
abc-ccb5bb34d73f34461abe180f36b3c2b9e45cc933.tar.bz2
abc-ccb5bb34d73f34461abe180f36b3c2b9e45cc933.zip
Suggested patch for type-punned warnings
Diffstat (limited to 'src/aig/gia/giaEra2.c')
-rw-r--r--src/aig/gia/giaEra2.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/aig/gia/giaEra2.c b/src/aig/gia/giaEra2.c
index 82c1c22f..9a9547b4 100644
--- a/src/aig/gia/giaEra2.c
+++ b/src/aig/gia/giaEra2.c
@@ -50,6 +50,13 @@ struct Gia_PtrAre_t_
unsigned fMark : 1; // user mark
};
+typedef union Gia_PtrAreInt_t_ Gia_PtrAreInt_t;
+union Gia_PtrAreInt_t_
+{
+ Gia_PtrAre_t iGia;
+ unsigned iInt;
+};
+
// tree nodes
typedef struct Gia_ObjAre_t_ Gia_ObjAre_t;
struct Gia_ObjAre_t_
@@ -118,8 +125,8 @@ struct Gia_ManAre_t_
int timeCube; // cube checking time
};
-static inline Gia_PtrAre_t Gia_Int2Ptr( unsigned n ) { return *(Gia_PtrAre_t *)(&n); }
-static inline unsigned Gia_Ptr2Int( Gia_PtrAre_t n ) { return (*(int *)(&n)) & 0x7fffffff; }
+static inline Gia_PtrAre_t Gia_Int2Ptr( unsigned n ) { Gia_PtrAreInt_t g; g.iInt = n; return g.iGia; }
+static inline unsigned Gia_Ptr2Int( Gia_PtrAre_t n ) { Gia_PtrAreInt_t g = { n }; return g.iInt & 0x7fffffff; }
static inline int Gia_ObjHasBranch0( Gia_ObjAre_t * q ) { return !q->nStas0 && (q->F[0].nPage || q->F[0].nItem); }
static inline int Gia_ObjHasBranch1( Gia_ObjAre_t * q ) { return !q->nStas1 && (q->F[1].nPage || q->F[1].nItem); }