diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2014-10-10 08:58:18 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2014-10-10 08:58:18 -0700 |
commit | ccb5bb34d73f34461abe180f36b3c2b9e45cc933 (patch) | |
tree | 74342a3dc5291fa48cff9a792df8c6791833dd46 /src/aig/gia/giaEra2.c | |
parent | ca9eca3b227ae3f8a60038ba9c295f5383a6826d (diff) | |
download | abc-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.c | 11 |
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); } |